Crystal reports con varias tablas...

lestatab

Bovino maduro
#1
Alguien sabe como hacer un reporte con crystal reports usando varias tablas dentro de un dataset?... En un dataset tengo varios tableadapter que los lleno cada uno según un parámetro, pero al mandarlos al mandarlo al reporte no me muestra nada, pero sí hai datos en las tablas... Saludos y gracias de antemano!. :vientos:
 

lestatab

Bovino maduro
#2
Veo que no hay mucha ayuda, me explico un poco más haber si me ayudan... Y disculpen el tamaño, con opera no más le dan Ajustar Anchura...
Medio resumido.... tengo pacientes, a cada paciente se le realiza algún tipo de tratamiento a sus dientes, esto lo muestro i almaceno por medio del clásico odontograma, lo guardo junto con otros datos más que se ven en las otras pestañas, obviamente, estas operaciones fueron realizadas por algún médico...

Imagen 1


Al final, necesito imprimir una nota de venta (entre otras impresiones), existen diversos casos, uno de ellos es que al paciente se le aplicó un tratamiento con un precio x, se le vendió un medicamento y algún artículo...

Imagen 2


Ahora bien, para imprimir esto debo sacar la info de varias tablas, pude hacer algo que llamé 'megaconsulta' (q´ original ¬¬) donde consulta todas las tablas y me da el resultado, para esto tuve que hacer varios inner joins outer joins y full outers join, para obtener resultados a pesar de q no estuvieran otros... en fin, para mejor 'comprensión' hice, en este caso de medicamento, tratamientos y artículos, esto...

Imagen 3


Bueno, leyendo por ahí ví que como q esto ponerlo en un reporte esta complicado, leí sobre tablas vinculadas, tipo maestro-detalle, pero no quiero algo así.... las consultas de las tablas anteriores son similares a esta...

Imagen 4


Igual créditos, tratamientos, artículos, pacientes, de todos hago consultas de acuerdo a la venta... En fin, esto lo quiero meter en un reporte, perooo... siempre hay un pero y qué raro que en este punto no se hayan aburrido.... no me da nada al imprimir... primero no mandaba nada, hice algunas cosas raras, entre ellas ligar esas tablas con datagridviews y despues de todo agarró pero sólo con el caso de un medicamento, un tratamiento y un articulo, si pongo más me hace las conbinaciones que ya mencioné.... por ejemplo...

Imagen 5


Esa venta imprime esto (lo demás del reporte es el relleno)...

Imagen 6


Pero si elijo dos o mas cosas de lo q sea, me da esto...

Imagen 7


Y da esto...

Imagen 8


Espero haberme explicado....Alguna idea pa ayudarme?
Saludos y gracias...
 

fespanagt

Bovino adolescente
#3
Si usas SQl server, hace un stored procedure, que te retorne el dato que necesitas y usa ese stored procedure como origen de datos del informe
 

lestatab

Bovino maduro
#4
ok....

El procedimiento almacenado lo hago de igual manera sobre cada tema? O sea, que al final voi a tener el origen de datos en vez de un dataset directamente de la base de datos, pero será q el resultado sea el mismo.
En este caso, si le mando la clave a cada tabla (q en realidad son consultas de otras tablas) me da el resultado correcto, cada tabla individualmente, pero si pido más de una cosa en cada uno, igual, cada tabla me da su resultado, pero al momento de pasarlo al informe me imprime convinaciones a pesar de tener todo separado... justo como está en las figuras 2 y 5, los resultados almacenados en cada tabla está bien, si paso esas consultas en un procedimiento almacenado, no sería lo mismo? A menos que no haya entendido exactamente tu idea, si me pudieras explicar...
Muchas gracias! :)
 
#5
Yo te recomiendo que generes el query que necesitas y lo agregues mediante un command asi tu realizas los joins como tu los necesites y no tienes que hacer ligas a las tablas. En el asistente de base de datos donde tienes tu conexion al principio de todas las tablas esta la opcuion que te comento.

si no me di a explicar mandame un correa a la cuenta eraso01@hotmail.com y te mando una explicacion mas detallada!!!

Saludos y suerte
 

lestatab

Bovino maduro
#6
No pos sí...

Pues como q no te entendí, ya te agregué a mi correo, estamos en contacto, espero puedas ayudarme...
Saludos a todos, gracias!
 

lestatab

Bovino maduro
#7
Ahora un poco más de explicación... Creo q está medio revuelto...

Es q el problema no creo q sea la consulta, si imprimo las tablas por separado están bien. El problema es al meterlas juntas al reporte. La imagen 4 es una consulta de ejemplo de las tablas que tendo dentro del dataset. Ven la imagen donde están todas las tablas? La imagen 3, esa consulta es de ejemplo, esa consulta q puse sólo es para la tabla de medicamentos...Bueno… ahí donde están todas las tablas, no son tablas, son consultas, cada tabla es una consulta 'similar' a la consulta q puse.

Cada tabla tiene campos, a cada tabla le puse nombre, tablaTratamientos, tablaMedicamentos, tablaCreditos… debajo de ellos, está algo q llamé métodos, métodosTratamientos, métodosMedicamentos, métodosCŕeditos...
En esos métodos hai un Fill,GetData,… todas las tablas,,, estan contenidas en un archivo llamado dsImprimirVenta.xsd

Para llenar esas tablas (q son consultas) las instancio de esta menera: dim ds as new dsImprimirVenta()… tengo un objeto ds q puede usar todo lo q tengo en dsImprimirVenta. Ahora bien, para llenarlo digo, por ejemplo en este caso.... ds.metodosArtículos.Fill(ds.tablaArticulos, miClaveABuscar)… digo: llena a tablaArticulos q está en ds con el parámetro miClaveABuscar... entonces... se ejecuta la consulta sql q tiene esa tabla... donde pide esa @id q está dentro de GetData.... y q ya le envié con miClaveABuscar...
Entonces hace la consulta, q es la imagen de la consulta, donde está la relación y abajo el sql (imagen 4).

Bueno, así lleno tooodas esas tablas, con una clave q le mando, ahora, después de llenarlas, se las mando al reporte, tal i como están... no hago otra consulta ni nada, sólo mando las tablas al reporte, y debe imprimir los datos q se encontraron...

A a mí sí me salen bien algunos reportes, pero sólo cuando tengo un solo dato de cada uno, por ejemplo…. si tomo 10 tratamientos y sólo mando a imprimir los 10 tratamientos, esos tratamientos se imprimen, también si sólo son ‘x’ medicamentos o artículos. Si pido un tratamiento y un artículo, imprime bien si sólo es uno de cada uno.

Pero.... si combino entre ellos... si encuentra 2 o más de alguno, los combina,,,, (imagen 8)
Saludos y gracias!
 

jlrmdevil

Bovino maduro
#9
OOOOOOOOK.... y yo que pensaba que era pesimo programando...si mal no recuerdo en el crystal habia un asistente que podias crear la consulta al vuelo, ahi fui donde me hice master en left joins y/o group by.... Intenta cambiando los inner join's con left joins.
 
Arriba