Portada
Banner
Portada Foros Manuales Enlaces Email
clear1x1.gif clear1x1.gif clear1x1.gif
clear1x1.gif
clear1x1.gif

Portada
Foros
Manuales
Enlaces
Distribuidores
Precios
Sugerencias

Contacto

 

clear1x1.gif clear1x1.gif
 GuiBuilder - Manual del Usuario (Parte 51/55)
Primero Previo Próximo Último

Poniendo el grid en el modo de edición de eventos

En el botón de Lista de Object seleccione Form 101 frmgrid
En el Botón de Lista de Control seleccione Grid 204 grdmaestroGrid
En el Botón de Lista de Eventos seleccione Grid Edit Mode
En el área de edición del Guibuilder digite el siguiente código:

while add_in_progress
   rem muestra y edita valor en columna 0 (llave primaria)
      add_in_progress=0
      if gb__notice.col = 0 then gosub crear_nueva_llave;
:        trash$=sendmsg(gb__sysgui,gb__notice.id,gridSetEdit,0,newkey$);
:        trash$=sendmsg(gb__sysgui,gb__notice.id,gridEndEdit,0,$$);
:        desc$="mask:c(1*=0),restore:c(1*=0),initstr:c(1*=0),";
:        desc$=desc$+"key:u(2),col:u(2),row:u(4)";
:        dim editparams$:desc$;
:        editparams.key = 0;
:        editparams.col = gb__notice.col+1;
:        editparams.row = gb__notice.row;
:        trash$=sendmsg(gb__sysgui,gb__notice.id,gridStartEdit,0,editparams$)
wend

Creando la Subrutina de creación de nueva Llave

En el Botón de Lista de Object seleccione New Subroutine/Function
De el Nombre Crear Nueva Llave y OK
Seguido de las marcas de Encabezado en una nueva línea digite lo siguiente:

Crear_nueva_llave:
rem asigna un nuevo número
     trash$=fattr(datarec$,"código")
     keylen = dec(trash$(10,2))
     keymask$ = fill(keylen,"0")
     newkey$=keyl(alt_chan,err=no_keyl)
     done=0
bump_it:
   while !(done)
      newkey$=str(num(newkey$)+1:keymask$)
      done=1
      read(alt_chan,key=newkey$,dom=got_it)
      done=0
      got_it:
wend
return
no_keyl:
     rem esto maneja el caso de que no exista ningún registro 
     newkey$=str(0:keymask$)  
     goto bump_it

Borrando un registro

En el Botón de Lista de Object seleccione Form 101 frmgrid
En el Botón de Lista de Control seleccione Push Button 202 btnBorrar
En el Botón de Lista de Eventos seleccione Button Pushed
En el área de edición del GuiBuilder digite lo siguiente

gosub Borrar_fila_actual

En el Botón de Lista de Object seleccione New Subroutine/Function

Y digite el nombre Borrar Fila actual y OK

Seguidamente a las marcas de encabezado en una nueva línea digite lo siguiente:

Borrar_fila_actual:
rem obtiene la columna actual
     grid_id=num(fattr(datagrid_temp$,"grdmaestroGrid","ID"))  
     row$=sendmsg(gb__sysgui,grid_id,gridGetSelectedRow,0,"")
     row = dec($00$+row$)
rem crea un template temporal para tener el contenido de la fila
     dim tmp_datarec$:datarec_desc$
rem obtiene los datos de la fila actual
     tmp_datarec$=sendmsg(gb__sysgui,grid_id,gridDataAwareFunctions,row,gridRetrieveRow$)
rem confirma el borrado
     msg$="Esta seguro que desea Borrar el código "+tmp_datarec.código$+"?"
     style = msgboxYesNo+msgboxInfo+msgboxSecond
     title$="Confirma Exclusión"
     resp = msgbox(msg$,style,title$)
rem si la respuesta es afirmativa entonces se envía el mensaje de borrar
     if resp<>msgboxYes then
:           return
rem borra la fila
     trash$=sendmsg(gb__sysgui,grid_id,gridDataAwareFunctions,row,gridDeleteRo
:     w$)
rem desconecta el grid
     trash$=sendmsg(gb__sysgui,grid_id,gridSetDataAware,0,$$)
rem resetea el puntero del archivo
     read(data_chan,key="",err=dr_continue)
     dr_continue:
rem reconecta el grid
     trash$=sendmsg(gb__sysgui,grid_id,gridSetDataAware,data_chan,datarec_desc$)
     return
Primero Previo Próximo Último

Portada -- Foros -- Manuales -- Enlaces-- Sugerencias
Para comentarios: webmaster@essnet.com

clear1x1.gif
clear1x1.gif
clear1x1.gif
Portada Email Foros