Consultas de grid

Estimado Martin:
Antes que nada un saludo cordial y los mejores deseos de prosperidad para este año 2008 que comienza y logres tus grandes objetivos.
Quiero me ayudes en lo siguiente:
-Como bloqueo una determinada tecla (por ejemplo Barra Especiadora o Esc dentro de un Formulario
-No quiero utilizar el Entorno de Datos para abrir un archivo, quiero hacerlo con Use datos\Movdatos, porque en un momento quiero abrir sin exclusive y en otro momento abrir, pero exclusivo, el problema es que cuando abro con use (no me funciona el recorsoource="Movdatos" en el Grid.
-Cuando proceso con un DELETE o PACK, se me pierde el enfoque en el Grid, es decir se pierde la cuadricula, pese a que le doy thisform.pageframe1.page6.refresh. Como soluciono.
Gracias por tu colaboración
atentamente,
Johnny

1 respuesta

Respuesta
1
Perdón por la demora estaba muy ocupado, paso a responder sobre tus preguntas:
1. La primer consulta donde me pedís bloquear las teclas de la barra espaciadora y la tecla escape, lo podes hacer de la siguiente manera, en el INIT del formulario pones lo siguiente:
&& Para deshabilitar teclas
On key label spacebar *
On key label esc *
&& Para habilitar poner:
On key label spacebar
On key label esc
2. El segundo problema, no pongas ninguna tabla en el entorno de datos, y cuando vayas a abrir las tablas lo haces de 2 maneras:
SET EXCLUSIVE ON
USE "C:\ruta_donde_esta_la_tabla\nombre_tabla" IN 0
La otra manera es:
USE "C:\ruta_donde_esta_la_tabla\nombre_tabla" IN 0 EXCLUSIVE
Con respecto al problema del GRID, me sucedió lo mismo que a vos, cuando quiero abrir una tabla con el comando USE y esa tabla esta relacionada a un GRID, los datos del GRID no se muestran o el GRID se pone en blanco y no muestra ninguna columna.
Para resolver este problema use un código para volver a armar todo el GRID, el código lo puse en el INIT del formulario, este es el ejemplo:
&& selecciono la tabla donde están los datos que quiero mostrar en el grid
sele auditoria_alumnos_3
go top
&& propiedades del grid
thisform.grid1.allowheadersizing = .f.
thisform.grid1.allowrowsizing = .f.
thisform.grid1.columncount = 4 && cantidad de columnas
thisform.grid1.deletemark = .f.
thisform.grid1.fontname = "ms sans serif"
thisform.grid1.headerheight = 24
thisform.grid1.recordmark = .t.
thisform.grid1.scrollbars = 2
thisform.grid1.recordsourcetype = 1 && tipo de datos para llenar el grid
thisform.grid1.recordsource = "auditoria_alumnos_3" && nombre de la tabla a abrir en el grid
&& propiedades de la primer columna
thisform.grid1.column1.width = 230
thisform.grid1.column1.movable = .f.
thisform.grid1.column1.readonly = .t.
thisform.grid1.column1.resizable = .f.
thisform.grid1.column1.header1.alignment = 2
thisform.grid1.column1.header1.backcolor = rgb(192,192,192)
thisform.grid1.column1.header1.caption = "apellido y nombre del usuario"
thisform.grid1.column1.header1.fontbold = .t.
thisform.grid1.column1.text1.readonly = .t.
thisform.grid1.column1.text1.enabled = .f.
&& propiedades de la segunda columna
thisform.grid1.column2.width = 105
thisform.grid1.column2.movable = .f.
thisform.grid1.column2.readonly = .t.
thisform.grid1.column2.resizable = .f.
thisform.grid1.column2.alignment = 2
thisform.grid1.column2.header1.alignment = 2
thisform.grid1.column2.header1.backcolor = rgb(192,192,192)
thisform.grid1.column2.header1.caption = "primer registro"
thisform.grid1.column2.header1.fontbold = .t.
thisform.grid1.column2.text1.readonly = .t.
thisform.grid1.column2.text1.enabled = .f.
thisform.grid1.column2.text1.alignment = 2
&& propiedades de la tercer columna
thisform.grid1.column3.width = 105
thisform.grid1.column3.movable = .f.
thisform.grid1.column3.readonly = .t.
thisform.grid1.column3.resizable = .f.
thisform.grid1.column3.alignment = 2
thisform.grid1.column3.header1.alignment = 2
thisform.grid1.column3.header1.backcolor = rgb(192,192,192)
thisform.grid1.column3.header1.caption = "ultimo registro"
thisform.grid1.column3.header1.fontbold = .t.
thisform.grid1.column3.text1.readonly = .t.
thisform.grid1.column3.text1.enabled = .f.
thisform.grid1.column3.text1.alignment = 2
&& propiedades de la cuarta columna
thisform.grid1.column4.width = 80
thisform.grid1.column4.movable = .f.
thisform.grid1.column4.readonly = .t.
thisform.grid1.column4.resizable = .f.
thisform.grid1.column4.alignment = 2
thisform.grid1.column4.header1.alignment = 2
thisform.grid1.column4.header1.backcolor = rgb(192,192,192)
thisform.grid1.column4.header1.caption = "hs. trabajo"
thisform.grid1.column4.header1.fontbold = .t.
thisform.grid1.column4.text1.readonly = .t.
thisform.grid1.column4.text1.enabled = .f.
thisform.grid1.column4.text1.alignment = 2
&& refresco el grid y le doy el foco
Thisform. Grid1. Refresh
Thisform. Grid1. Setfocus
Si tu GRID tiene más columnas, tendrías que modificar la cantidad de columnas en la parte del código donde dice: thisform. Grid1. Columncount y además vas a tener que agregar todas las propiedades para cada columna, la idea es volver a armar todo el GRID pero a través de código, así como esta arriba en el ejemplo que te pase.
3. Con respecto a tu tercer problema, que al hacer el DELETE o el PACK se pierde la cuadricula, este problema también se soluciona con la respuesta del punto anterior el 2. Tienes que copiar todo el código para armar tu GRID, el mismo que armes para poner en el INIT y cada vez que borres la tabla con el DELETE o el PACK luego de eso pones el código para volver a armar el GRID.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas