Ayuda con grid por favor

Hola bueno haber si alguien me puede ayudar creo que es sencillo lo que quiero hacer solo que como soy nuevo en esto de fox pues no encuentro la forma.
Mi problema es que tengo dos grid juntos en un formulario pero lo que quiero hacer es que cuando le de click en un botón de comandos me mende el registro que esta seleccionado en el grid1 al grid 2 pero solo el que este seleccionado en el grid 1 y que se valla llenando el grid 2 con los registros que valla seleccionando del grid 1 solo eso necesito saber cual sria el código para ese botón

1 Respuesta

Respuesta
1
Creo que esto te puede ayudar.
Los controles "Grid" tienen una propiedad llamada <RecordSource> en la cual se especifica la fuente de datos que se usa para llenar el Control, otra propiedad importante es la de <RecordSourceType> en la que especificas que tipo de fuente de datos usar, por predeterminado esta en "1 - Alias".
Para lograr lo que tu quieres, hay varias formas, pero creo que una fácil y rápida sería la siguiente:
Según entiendo tu tienes dos "Grids", Grid1 y Grid2, supongo que el Grid1 (el que tiene los datos) obtiene la información de una tabla (Tabla1), si es así, lo que puedes hacer es crear un cursor (una tabla temporal), por ejemplo Cursor1.
CREATE CURSOR Cursor1 (Campo1 c(10), campo2 n(3), ... )
Este cursor debe tener los mismo campos que la Tabla1. Después solo configuras la propiedad <RecordSource> del Grid2 para que lea los datos del Cursor1.
ThisForm.Grid2.RecordSource = "Cursor1"
Ahora el código para el botón seria algo así:
SELECT Cursor1
    APPEND BLANK
    REPLACE ;
        Campo1 WITH Tabla1.Campo1, ;
        Campo2 WITH Tabla1.Campo2, ;
        Campo3 WITH Tabla1.Campo3, ;
        ...
ThisForm. Refresh()
Con esto, cada vez que le des Click a ese botón, se agregará un registro en el Cursor1 y se mostrará en el Grid2..
¿Eso es exactamente lo que buscaba gracias por la respuesta pero tengo un gran pero en que lugar dek formulario pongo ese código para el cusor y que significa eso de c(10)?
Pues yo creo que sería una buena idea ponerlo en el evento de tu formulario, así cada que abras esa ventana se creará la tabla temporal para que la puedes usar. También sería apropiado que cerraras el cursor al cerrar esa ventana, yo te recomiendo que lo hagas en el evento de la forma.
En cuanto a lo de "c(10)", un Cursor es igual que un tabla cualquiera, la diferencia es que es de tipo temporal. Tal vez todavía no conozcas el comando para crear tablas o cursores pero son muy simples.
En el ejemplo que escribí el "c(10)" significa que el campo Campo1 es de tipo Carácter (c), y que tiene un ancho de 10 caracteres, es decir, que puede guardar hasta 10 caracteres por cada registro. En el caso del Campo2, dice "n(3)" lo cual indica que es de tipo Numérico y puede guardar números de hasta 3 dígitos, es decir, hasta el 999 en este caso. Así puedes crear tablas o cursores utilizando comandos, aquí unos ejemplos:
Para crear una Tabla
CREATE TABLE Tabla1 (Caracter c(10), Numerico n(4), Decimal n(7, 2), Fecha d, Logico l)
Para crear un Cursor
CREATE CURSOR Cursor1 (Caracter c(10), Numerico n(4), Decimal n(7, 2), Fecha d, Logico l)
Copia y pega estos comandos en Visual Fox, ejecútalos y utiliza el comando "MODIFY STRUCTURE" para ver la estructura de la tabla, así entenderás como funcionan...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas