PDA

Ver la Versión Completa : Ayuda con quireckt y Tablas detalles


amell2020
01-12-2011, 14:45:24
hola amigo me gustaria saber como puedo hacer estoy en quickreport, yo tengo una tabla factura que tiene varias tablas detalle relacionada con id de factura, ahora yo kiero mostrar en quickreport como se ve en esta imagen hay presente dos trabas pero seran mas tablas de detalle de factura:

oscarac
01-12-2011, 15:43:22
y que tienes avanzado hasta el momento?

olbeup
01-12-2011, 17:01:09
Hombre lo primero es construir la SQL, que seguramente no la tendrás, ¿o si?, ¿has utilizado alguna vez el QuickReport?, segurametne no, ¿o si?, y como dice el compañero oscarac, ¿que tienes echo?, para poder orientarte en todo lo que se pueda.

Un saludo.

amell2020
01-12-2011, 17:34:20
si tengo la consulta hechas, lo unico que usado quickrepot para cosa sencillas. esta es mi consulta:
SELECT
[RIS PACIENTES].[Id RIS PACIENTE],
[RIS PACIENTES].NOMBRE,
[RIS PACIENTES].NSS,
MEDICOS.[CODIGO MÉDICO],
MEDICOS.NOMBRE as MEDICO,
MEDICOS.ESPECIALIDAD,
[DIAGNOSTICO A].IDCIE10,
[DIAGNOSTICO A].DESCRIPCIÓN,
[TIPO DE SALA].Id,
[TIPO DE SALA].[TIPO DE SALA],
[TIPO DE SALA].[COSTO POR DIA],
HOSPITALIZACIÓN.ID,
HOSPITALIZACIÓN.Fecha_Factura,
HOSPITALIZACIÓN.[FECHA DE HOSPITALIZACIÓN],
HOSPITALIZACIÓN.[FECHA DE ALTA],
HOSPITALIZACIÓN.[DIAS DE HOSPITALIZACIÓN],
MEDICAMENTOS.[Id MEDICAMENTO],
MEDICAMENTOS.MEDICAMENTO,
MEDICAMENTOS.CANTIDAD,
MEDICAMENTOS.[PRECIO UNITARIO],
MEDICAMENTOS.[PRECIO TOTAL],
MEDICAMENTOS.Categoria,
PROCEDIMIENTOS.ID_PROCEDIMIENTO,
PROCEDIMIENTOS.PROCEDIMIENTO,
PROCEDIMIENTOS.CANTIDAD,
PROCEDIMIENTOS.PRECIO,
PROCEDIMIENTOS.PRECIO_TOTAL,
LABORATORIOS.Id,
LABORATORIOS.EXAMEN,
LABORATORIOS.[PRECIO UNITARIO],
LABORATORIOS.TOTAL,
IMAGENES.Id,
IMAGENES.[ESTUDIO DE IMAGEN],
IMAGENES.CANTIDAD,
IMAGENES.PRECIO_UNITARIO,
IMAGENES.[COSTO TOTAL],
HOSPITALIZACIÓN.[COSTO TOTAL DE HOSPITALIZACIÓN]




FROM [RIS PACIENTES]
LEFT OUTER JOIN HOSPITALIZACIÓN ON HOSPITALIZACIÓN.ID = [RIS PACIENTES].[Id RIS PACIENTE]
LEFT OUTER JOIN MEDICOS ON MEDICOS.[Id MEDICOS] = HOSPITALIZACIÓN.[MEDICO DE HOSPITALIZACIÓN]
LEFT OUTER JOIN MEDICAMENTOS ON MEDICAMENTOS.id_hospitalización = HOSPITALIZACIÓN.ID
LEFT OUTER JOIN PROCEDIMIENTOS ON PROCEDIMIENTOS.id_hospitalización = HOSPITALIZACIÓN.ID
LEFT OUTER JOIN LABORATORIOS ON LABORATORIOS.ID_HOSPITALIZACION = HOSPITALIZACIÓN.ID
LEFT OUTER JOIN IMAGENES ON IMAGENES.ID_HOSPITALIZACION = HOSPITALIZACIÓN.ID
LEFT OUTER JOIN [TIPO DE SALA] ON [TIPO DE SALA].Id = HOSPITALIZACIÓN.[TIPO DE SALA]
LEFT OUTER JOIN [DIAGNOSTICO A] ON [DIAGNOSTICO A].ID_HOSPITALIZACION = HOSPITALIZACIÓN.ID

order by NOMBRE

y mira que tengo en quickrepot mi imagen:

olbeup
01-12-2011, 18:01:54
Veo que si tienes la SQL echa, pero, ¿que es lo que quieres imprimir?, y ¿en que orden?, ejemplo:
1. Datos del paciente.
2. Datos del Médico
3. Medicamentos que se ha suministrado
4. etc..
Lo primero que tienes que diseñar es, no hace falta que lo realices en QuickReport, simplemente en hoja de cálculo en que orden y de donde saldrán los campos y de que base de datos, una vez construido pasamos al QuickReport poniendo QRBand, QRGroup, QRDetail, QRSubDetail, porque lo quieres desglosado por paciente y todo lo que se le ha realizado, ya lo del diseño te lo dejo a ti.

Un saludo

amell2020
01-12-2011, 21:23:47
si eso es lo que yo quiero mostrar todo lo que se le a realizado a un paciente unico en el quickrepot, esa consulta que le pase cuando yo la ejecuto, solo me muestra los datos del paciente pero las otras tablas me salen en blanco me pueden decir porque pasa eso??

bueno y en otra parte ya tengo todo lo componente que dice olbeup solo que QRBand le puse title porque ese es que se pone por defecto.

olbeup
02-12-2011, 10:10:39
Cuando dices que salen en blanco las demás base de datos y sólo te sale la del paciente, quizás la relación que pones no es la correcta o no tienen ninguna relación entre ellas.

Para saber si hay datos en las demás base de datos relacionadas con la del paciente, visualiza por pantalla manualmente las demás base de datos individualmente, elige Hospitalizacion, Medicos, Medicamentos, etc, para ver el resultado.

por cierto ¿con que motor trabajas?, ¿puede ser SQL SERVER?, si es así, buen motor de base de datos, ¿admites consejos en la construcción de base de datos y de SQL?

Un saludo.

amell2020
02-12-2011, 13:43:46
si estoy trabajando el sql server, ya consulte cada tablas donde están relacionada con el paciente y cada una tiene datos, ahora le muestro el diagrama de vista de mi base de datos:

amell2020
02-12-2011, 13:45:10
aqui esta la imagen

amell2020
09-12-2011, 13:08:38
Ayuda como pongo mas detalle porque si pongo QRDBText se repite varias veces en mi tabla, favor ayuda??

oscarac
09-12-2011, 15:00:58
Ayuda como pongo mas detalle porque si pongo QRDBText se repite varias veces en mi tabla, favor ayuda??
que significa eso??
al principio decias que no se mostraba informacion... ahora que se repite?
coloca toda la instruccion SQL para ver mas o menos que sale

olbeup
09-12-2011, 20:10:26
Hola amell2020

Sobre la SQL que pusistes hay campos que están con acentos y otros sin ellos.

¿por que utilizas campos con acentos?, ¿porque utilizas campos super largos?, ¿cual es el motivo?, te puede llevar a confusión y a la desesperación y mucho dolor de cabeza, hay campos en mayúsculas otras en minúsculas, es una u otra pero las dos NO.

Sobre que se repiten los datos, ya lo se, la SQL que has puesto mezclado con otras bases de datos y se inclinan a la repetición, si el paciente ha consumido 5 medicamentos distintos, a tí te saldrán 5 pacientes iguales.

Cómo te dije después de la SQL:
QRBand, QRGroup, QRDetail, QRSubDetail

Pienso que las repeticiones que tienes sean del paciente, utiliza el QRGroup y en Expression = ADOQuery1.NOMBRE

En el QRSubDetail en el DataSet lo dejas en blanco, hay le pones los medicamentos o lo que tú quieras.

Bueno ya nos dirás como te va.

Un saludo.