|
Mira, para mi no me es muy claro lo que me preguntas, sinembargo, aca te pongo un ejemplo de instrucciones sql.
creo unas variables publicas para los parametros.
Public var1
En un formulario y mediante textbox, spinners, listbox u otros controles, solicito al usuario los parametros de la consulta.
Luego asigno el valor del control a la variable, ep:
var1=thisform.text1.value
y en las instrucciones sql utilizo las variables o macrosustitucion.
el resultado de la consulta lo envio a un cursor o a una tabla, y esto lo copio como un archivo de excel
O lo actualizo desde una macro del excel (Solucion mas obvia).
ejemplo:
las variables las defino publicas en el init (solo por tener ordenado el programa)
USE destinos IN 0
SET FILTER TO almacen
COUNT TO nalma FOR almacen
GO TOP
DIMENSION desti (nalma, 2)
FOR i=1 TO nalma
desti(i,1)=ALLTRIM(destinos.destino)
desti(i,2)=ALLTRIM(destinos.ruta)+"FORMPAGO"
SKIP
ENDFOR
vinicio=THISFORM.inicio.VALUE
vfinal=THISFORM.final.VALUE
FOR i= 1 TO nalma
SELECT fgrabado,documento,valor,desti(i,1) AS bdg ;
FROM desti(i,2) ;
WHERE (!EMPTY(valor) AND !EMPTY(documento) AND !DELETED()) AND;
BETWEEN(fgrabado,vinicio,vfinal) AND (SUBSTR(documento,1,3)!="RET") ;
ORDER BY documento ;
INTO CURSOR desti(i,1)
ENDFOR
SELE desti(1,1)
SET SAFETY OFF
COPY STRUCT TO consolida
USE consolida EXCL IN 0
vtotal=0
FOR i=1 TO nalma
vfgra=desti(i,1)+".fgrabado"
vdoc=desti(i,1)+".documento"
vval=desti(i,1)+".valor"
vbdg=desti(i,1)+".BDG"
SELE desti(i,1)
SCAN
INSERT INTO consolida (fgrabado,documento,valor,bdg);
VALUES (&vfgra,&vdoc,&vval,&vbdg)
vtotal=vtotal+valor
ENDSCAN
ENDFOR
SELE consolida
INDEX ON fgrabado TAG fgrabado ADDITIVE
INDEX ON documento TAG documento ADDITIVE
SET ORDER TO TAG fgrabado
GO TOP
vinicio=fgrabado
GO BOTT
vfinal=fgrabado
SET ORDER TO TAG documento
REPOR FORM consolida TO PRINTER NOCONSOLE PREVIEW
CLOS DATA
SET SAFETY ON
|