Colocando las Celdas en Modo de Edición
En el botón de Lista de Object seleccione Form 101 frmgrid
En el botón de lista de Control seleccione Push Button 201 btnEditar
En el botón de lista de Eventos seleccione Button Pushed
En el área de edición del Guibuilder digite el siguiente código que será ejecutado cada vez que el usuario presione el botón Editar
gosub editar_celda
En el Botón de lista de Control seleccione Grid 204 grdmaestroGrid
En el Botón de lista de eventos seleccione Grid Double Click
Después de las marcas de encabezado en el área de edición digite el siguiente código que será ejecutado
cada vez que el usuario dé doble click en una celda del grid
gosub editar_celda
Escribiendo la Subrutina de Editar celda
En el Botón de lista de Object seleccione New Subroutine/Function y
digite el siguiente nombre Editar Celda y OK
Después de las marcas de encabezado en una nueva línea digite lo siguiente
editar_celda:
rem obtiene la fila actual
grid_id=num(fattr(datagrid_temp$,"grdmaestroGrid","ID"))
row$=sendmsg(gb__sysgui,grid_id,gridGetSelectedRow,0,"")
row = dec($00$+row$)
rem obtiene la columna actual
col$=sendmsg(gb__sysgui,grid_id,gridGetSelectedCol,0,"")
col=dec(col$)
rem prepara la edición
editparams_desc$="mask:c(1*=0),restore:c(1*=0),"+
: "initstr:c(1*=0),key:u(2),col:u(2),row:u(4)"
dim editparams$:editparams_desc$
editparams.key = 0
editparams.col = col
editparams.row = row
rem bloque editando la primera columna la cual es la llave primaria
if col=0 then
: msg$="Usted no puede editar la llave primaria del registro.";
: style = msgboxExclamation;
: title$="No Edit";
: trash=msgbox(msg$,style,title$)
: else
: trash$=sendmsg(gb__sysgui,grid_id,gridStartEdit,0,editparams$)
return
Adicionando un Nuevo Registro
En el Botón de Lista de Object seleccione Form 101 frmgrid
En el Botón de Lista de Control seleccione Push Button 200 btnNuevo
En el Botón de Lista de Eventos seleccione Button Pushed
En el área de edición del Guibuilder digite el siguiente código que
será ejecutado cada vez que el usuario presione el botón Nuevo
Gosub Adicionar_registro
En el Botón de Lista de Object seleccione New Subroutine/Function y
déle el nombre Adicionar registro y OK
En el área de edición de Guibuilder después de las marcas del encabezado
en una nueva línea digite lo siguiente:
Adicionar_registro:
rem envía el mensaje de adicionar filas
grid_id=num(fattr(datagrid_temp$,"grdmaestroGrid","ID"))
trash$=sendmsg(gb__sysgui,grid_id,gridDataAwareFunctions,0,gridAddRow$)
rem esta bandera esta chequeada en el modo de editar del grid
rem para que el valor de la llave primaria sea puesto en el
rem programa cuando empieza a ocurrir el evento de edición
add_in_progress=1
return
|