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
Respuesta de miraestemar
1
1
miraestemar, Desarrollo de Sistemas en Visual Fox Pro
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.