Additem de un grid y hacer focus en el control TEXTBOX

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
Ismach
Posts: 161
Joined: Wed Nov 28, 2012 5:55 pm
DBs Used: DBF, mySQL, Mariadb, postgreSQL, Oracle, Db2, Interbase, Firebird, and SQLite
Location: Buenos Aires - Argentina

Additem de un grid y hacer focus en el control TEXTBOX

Post by Ismach »

Hola mis chichipios, estimados minigueros o estimados HMGueros, tengo un dilema que ya llevado del dolor de cabeza a los dolores de panza :lol:
resulta que tengo definido asi :arrow: :

Code: Select all

    DEFINE WINDOW vnmain AT 00, 00 ;
           WIDTH nWidth HEIGHT nHeight ;
           TITLE SISTEMA ;
           ICON 'MAINICO'  ;
           MAIN ;
           ON INIT Nil

           bla bla bla

           ON KEY CONTROL+INSERT    OF vnmain ACTION Noe_AddItemPedir()

           bla bla bla

            @050,003 GRID gdPed  ;
                     WIDTH 640 HEIGHT nHeight-105 ;
                     FONT "Consolas" SIZE 10 ;
                     HEADERS aPedGrid ;
                     WIDTHS { 250, 200, 200, 300 } ;
                     VALUE 1 ;
                     COLUMNCONTROLS { {'TEXTBOX','CHARACTER'}, ;
                                      {'TEXTBOX','CHARACTER'}, ;
                                      {'TEXTBOX','CHARACTER'}, ;
                                      {'TEXTBOX','CHARACTER'} };
                     DYNAMICFORECOLOR { fColor , fColor, fColor, fColor} ;
                     ON DBLCLICK  Nil ;
                     ON GOTFOCUS  Nil

           bla bla bla
           bla bla bla
y la funcion que inserta

Code: Select all

FUNCTION Noe_AddItemPedir()

       LOCAL aNuevo := { 'nombre', 'dir', '000', '?' }
       LOCAL nNumIt := 0
       vnmain.gdPed.AddItem( aNuevo )
       vnmain.gdPed.SetFocus()

RETURN NIL
Lo que quiero hacer es que al presionar CONTROL+INSERT
no solo me agregue la fila nueva en la grilla sino que
1) el cursor o focus se posicione en la FILA INSERTADA
2) haga Setfocus en el 1er control 'TEXTBOX' de la primera columna para poder modificar el nombre
3) que al dar enter despues de cambiar el nombre pase al segundo control 'TEXTBOX' y asi ahsta el cuarto control TEXTBOX

Les mando un Saludo desde Salta - Argentina :D
Alepts
Posts: 9
Joined: Thu Feb 18, 2016 5:01 am

Re: Additem de un grid y hacer focus en el control TEXTBOX

Post by Alepts »

Creo que el 1 y 2 es lo mismo, lo harías con esto

Code: Select all

vnmain.gdPed.Value := {vnmain.gdPed.ItemCount, 1}
y no se si para el 3 funcione el SET NAVIGATION EXTENDED hoy lo vi en la guia pero no he experimentado con el :P
User avatar
Ismach
Posts: 161
Joined: Wed Nov 28, 2012 5:55 pm
DBs Used: DBF, mySQL, Mariadb, postgreSQL, Oracle, Db2, Interbase, Firebird, and SQLite
Location: Buenos Aires - Argentina

Re: Additem de un grid y hacer focus en el control TEXTBOX

Post by Ismach »

Ok, No funciona en su totalidad, es decir, agrega la fila al grid y pone en Setfocus sobre la fila insertada, pero no sobre el control TEXTBOX de la primera CELDA, yo quisiera que la celda de la primera columna quedara ya en TEXTBOX, lista para empezar a modificar el contenido de la CELDA.
El SET NAVIGATION EXTENDED, ya lo se habia agregado pero eso es para saltar entre los controles al ENTER,
Gracias
User avatar
Ismach
Posts: 161
Joined: Wed Nov 28, 2012 5:55 pm
DBs Used: DBF, mySQL, Mariadb, postgreSQL, Oracle, Db2, Interbase, Firebird, and SQLite
Location: Buenos Aires - Argentina

Re: Additem de un grid y hacer focus en el control TEXTBOX

Post by Ismach »

Lo resolvi asi, defini el grid de esta manera:

Code: Select all

            @050,003 GRID gdPed  ;
                     WIDTH 640 HEIGHT nHeight-105 ;
                     FONT "Consolas" SIZE 10 ;
                     HEADERS aPedGrid ;
                     WIDTHS { 250, 200, 200, 300 } ;
                     VALUE 1 ;
                     EDIT INPLACE { {'TEXTBOX','CHARACTER'}, ;
                                    {'TEXTBOX','CHARACTER'}, ;
                                    {'TEXTBOX','CHARACTER'}, ;
                                    {'TEXTBOX','CHARACTER'} };
                     COLUMNWHEN {   { || This.CellValue >= ' ' } , ;
                                    { || This.CellValue >= ' ' } , ;
                                    { || This.CellValue >= ' ' } , ;
                                    { || This.CellValue >= ' ' } } ;
                     DYNAMICFORECOLOR { fColor , fColor, fColor, fColor} ;
                     ON DBLCLICK  Nil ;
                     ON GOTFOCUS  Nil
y cuando el usuario presione CONTROL+INSERT , se generará una fila en la grilla, con el focus sobre la misma y luego con un ENTER
edita la celda y salta entre celda con ENTER....
chas gracias y les mando un abrazo.
Post Reply