FoxPro/Visual FoxPro - Seleccion Multiple en una grilla

 
Vista:

Seleccion Multiple en una grilla

Publicado por es_binario (757 intervenciones) el 02/04/2012 19:53:53
Saludos al foro.

Estoy haciendo un programita que emite una factura, bueno el caso que la hoja carta que es la factura solo soporta un maximo de 12 lineas, la factura se emite a partir de las ventas del dia, el caso es el siguiente.

Quiero que el usuario pueda seleccionar mas de un registro de la grilla que muestra el detalle de la factura como si fuese excel, que al mantener la tecla presionada Shiff, seleccione mas de un registro, con la intencion de borrarlos todos despues.

La grilla tiene en su control source un cursor que es el que consultaria, si se puede hacer tal operacion, tambien como sabria yo que registros selecciono el usuario.

Gracias de antemano.
Saludos de México.

P.D. espero se entienda mi planteamiento.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Seleccion Multiple en una grilla

Publicado por Cesar Diez - Canseco (65 intervenciones) el 03/04/2012 01:10:06
Hola Es_binario,
Yo tengo lo que tu planteas. Lo uso en una grilla que muestra los clientes con saldo deudor y el usuario hace click en una columna que se llama Escoge en la que se pinta una X en el cliente escogido y asi el usuario puede mandar a imprimr los cliente que a el le interesan.

Voy copiar parte del codigo para que sea mas didactico.
Es como sigue:

Creo un cursor
CREATE cursor RES_CTACTECLTES_DEUDORES ( cod_clte n(7), cliente c(50), saldo n(14,2), escoge c(1) ) <--- Este es el campo que utlizo para que el usuario escoja el cliente o los clientes que desee.

creo una grilla con los campos del cursor y en el l control source escribo el nombre del cursor

Armo un select para extraer de las tablas los datos que necesito:

SELECT Ctactecltes.cod_clte, Clientes.cliente,;
SUM(Ctactecltes.importe) as saldo;
FROM asepsis!Ctactecltes INNER JOIN asepsis!Clientes ;
ON Ctactecltes.cod_clte = Clientes.cod_clte;
GROUP BY Ctactecltes.cod_clte;
ORDER BY Clientes.cliente;
INTO CURSOR cursor1

SELECT * FROM cursor1;
WHERE cursor1.saldo>0;
INTO CURSOR cursor2

Luego grabo el resultado del cursor2 en el cursor RES_CTACTECLTES_DEUDORES

SELE cursor2
GO top
SCAN WHILE !EOF()
INSERT INTO RES_CTACTECLTES_DEUDORES (cod_clte, cliente, saldo, escoge);
VALUES (cursor2.cod_clte, cursor2.cliente, cursor2.saldo, ' ')
ENDSCAN

Todo esto va en el evento Load del formulario.
Se muestra la grilla con los datos y el usuario puede dar click en la columna Escoge el cual pinta una X indicando que el usuario a escogido un cliente. Puede darle en la misma X de nuevo deseleccionarla.

Este es el codigo en el evento click de la columna que se llama Escoge de la grilla

IF empty(escoge)
REPL escoge with 'X'
ELSE
REPL escoge with ' '
ENDIF
thisform.refresh

Saludos desde Peru,
Cesar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Seleccion Multiple en una grilla

Publicado por eduardo cubillan (2 intervenciones) el 16/04/2012 21:24:32
disculpen la ignorancia pero despues como paso eso a un reporte???, me explico que el reporte tengo los registros marcados con la x??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar