FoxPro/Visual FoxPro - Como se utilizan SQL para Report

 
Vista:
sin imagen de perfil

Como se utilizan SQL para Report

Publicado por Jhean Carlos (128 intervenciones) el 01/01/2008 20:47:34
Quetal !!!

Tengo problemas con un reporte, y no se como resolverlo me dicen que engo que utilizar los

SELECT -SQL para extraer los datos. Este tiene la ventana de usar la clausula DISTINCT para no presentar registros duplicados.

************************************************
Pero como no se utilizar esos metodos como se hace el codigo?

******************************************* ******
HABER SI ME AYUDAN ABAJO LES DEJO EL PROBLEMA
-----------------------------------------------------------------------------------------------------------------------------

En la primera tabla solo se tiene que buscar un codigo que no se repite
En la Segunta tabla tengo varios codigos que se repiten.
********************************************ç
el problema es cuando filtro las dos tablas, el que tiene solo un codigo se me repite varias veces, y la segunda tabla sefiltrar los datos correctamente.
********************************************
alguien me puede corregir si mi codigo esta mal?? aqui les muestro un poco de lo que tengo, o quizas tengo que modificar el reporte??.

Porfis haber quien me puede ayudar!!
********************************************
SELECT polizas
SET EXACT ON
LOCATE FOR ALLTRIM(polizas.poliza)=thisform.texto1.Value
IF FOUND()then
MESSAGEBOX("Se encontro datos de la Póliza")
Set filter TO upper(polizas.poliza) = upper(ALLTRIM(Thisform.texto1.value))
******************************************
SELECT anexos
Set filter TO upper(anexos.poli_mad) = UPPER(ALLTRIM(Thisform.texto1.value))

REPORT FORM c:seguros eportinf_anexos2.frx preview
Set filter to
CLOSE DATABASES
ELSE
MESSAGEBOX("No existe esa Póliza")
ENDIF
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

RE:Como se utilizan SQL para Report

Publicado por Ed (28 intervenciones) el 03/01/2008 00:03:00
debes ver la ayuda Select SQL Command, ahi incluso tienes unos ejemplos con la clausula DISTINC
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

RE:Como se utilizan SQL para Report

Publicado por Rodrigo (1 intervención) el 20/03/2008 05:22:02
Aqui te muestro como usar sql para crear una tabla para un repor.

SELECT A.POLISA, B.POLI_MAD (los campos de las tablas que participan)
FROM POLIZAS A, ANEXOS B (las tablas con un alias A, B, C o cuales quieras)
WHERE ALLTRIM(A.poliza)=thisform.texto1.Value AND; (estas son condiciones)
upper(anexos.poli_mad) = UPPER(ALLTRIM(Thisform.texto1.value)) ;
ORDER BY A.POLISA; (este comando ordena por el campo que quieras ordenar)
INTO TABLE auxiliar (este comando guarda los datos en la tabla con nombre auxiliar y tambien lo puedes poner en un cursor con "INTO CURSOR auxiliar")

LA TABLA CREADA SEGURO TENDRA ESTOS DATOS O ALGO PARECIDO Y CREO QUE EL "SELECT DISTICT" TE QUITARA ALGUNOS DATOS AL IGUAL QUE EL "GROUP BY (campo que quieres)"

1..................1
1..................2
1..................3
2..................1
2...................2
2....................3
2...................4
3...................2
3....................3
4...................1
4....................4

TE RECOMIENDO QUE CON ESTA TABLA auxiliar CREES EL REPORT.
EN EL REPORT PONES LA TABLA EN EL ENTORNO DE DATOS Y ARRASTRA LA TABLA AL REPORT.
VERAS LOS CAMPOS EN EL REPORT.
AHORA CON EL BOTON SECUNDARIO PON AGRUPAR DATOS
Y TE PEDIRA EL CAMPO CON EL QUE QUIERES AGRUPAR LOS DATOS.
PON AQUI EL CAMPO auxiliar.poliza.... Y ACEPTA (acuerdate que lo seleccionas con doble clic e incluso podrias realizar un calculo aqui pero eso no es lo que quieres)
VERAS QUE HAY MAS SECCIONES EN EL REPOR... EL CAMPO auxiliar.poliza ES BUENO PONERLO EN EL "ENCABEZADO DE GRUPO auxiliar.poliza"
y los otros campos (auxiliar.poli_mad) en el detalle del grupo auxiliar.poliza

Espero que te sirva che y acordate que si tenes los datos y queres un reporte especial con esos datos, tenes que trabajar en el REPORT y no en otro lado.
El boton que llama al repor deberia tener una condicion luego de la consulta sql que genera la tabla
preguntando si hay datos en la tabla.... EJEMPLO

(consulta sql que genera una tabla o cursor "auxiliar" )
select auxiliar
count to C (este comando cuenta los registros de la tabla y almacena el numero de registros en una variable C,REGISTROS,S, U OTRAS VARIABLES)
if C > 0 then (si C es mayor a cero)
report form c:seguros eportinf_anexos2.frx preview
else
messagebox("no hay datos para mostrar")
endif

Chau y no dejes de preguntar
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