Vfp6

Actualmente estoy desarrollando un código dentro de VFP6 en el cuál realizo una conexión a una base de datos con instrucciones parecidas al SQL, y abro una interface para cargar en excel todos los datos consultados en las bases y funciona muy bien, pero unicamente con datos fijos; es decir, si quisiera que existiera una interfaz con el usuario en la cual le pregunte ciertos datos para la realización de la consulta SQL que comando puedo utilizar.
En otras palabras mi pregunta es: "¿Existe un comando como el input en Visual basic o el inputbox en las macros dentro del FoxPro o para SQL para lograr la interacción con el usuario?
Gracias!

1 Respuesta

Respuesta
1
Para mi no me es muy claro lo que me preguntas, sin embargo, acá te pongo un ejemplo de instrucciones sql.
Creo unas variables publicas para los parámetros.
Public var1
En un formulario y mediante textbox, spinners, listbox u otros controles, solicito al usuario los parámetros 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 macrosustitución.
El resultado de la consulta lo envío a un cursor o a una tabla, y esto lo copio como un archivo de excel
O lo actualizo desde una macro del excel (Solución más 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
SE LE 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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas