• Lunes 29 de Abril de 2024, 15:23

Autor Tema:  Varias Dudas  (Leído 3936 veces)

paulaaa

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Varias Dudas
« en: Jueves 16 de Noviembre de 2006, 12:31 »
0
Hola a todos!

Soy nueva en esto de generar informes con crystal reports y tengo varias preguntas. Espero que alguien me las sepa contextar. Gracias de antemano. Os cuento:

1)¿Hay alguna forma de asignar a los campos del formulario los valores que te de la gana?Es decir, si yo tengo un campo que quiero cubrir en el informe con un dato introducido por teclado, se lo puedo asignar a una variable que luego me lo muestre en el informe?

2) Por otro lado tengo otro problema que voy a explicar con un ejemplo porque es un poco lioso. Quiero generar un informe con los datos de tres tablas relacionadas (persona, hijo, prueba). El informe quiero que lleve los datos de la persona (1 sola vez) y que me liste el nombre de los hijos y las pruebas en las que participa la persona. Es decir, que si una persona participa en un partido de fultbol y en un partido de baloncesto y ademas tiene dos hijos (pepito y juanito) me salga:

Persona:  nombre .. datos


         pepito
         juanito

         futbol
        baloncesto

¿Sabe alguien como puedo hacer esto?Mi problema es que tal y como lo estoy haciendo me salen los dos hijos por cada prueba, es decir, me sale una cosa así:

Persona:  nombre .. datos


         pepito
         futbol
         baloncesto
       
         juanito
         futbol
         baloncesto

Y claro, esto no me vale

Gracias!

Un saludo

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Varias Dudas
« Respuesta #1 en: Jueves 16 de Noviembre de 2006, 14:31 »
0
Citar
1)¿Hay alguna forma de asignar a los campos del formulario los valores que te de la gana?Es decir, si yo tengo un campo que quiero cubrir en el informe con un dato introducido por teclado, se lo puedo asignar a una variable que luego me lo muestre en el informe?

El uso de parametros.

Citar
2) Por otro lado tengo otro problema que voy a explicar con un ejemplo porque es un poco lioso. Quiero generar un informe con los datos de tres tablas relacionadas (persona, hijo, prueba). El informe quiero que lleve los datos de la persona (1 sola vez) y que me liste el nombre de los hijos y las pruebas en las que participa la persona. Es decir, que si una persona participa en un partido de fultbol y en un partido de baloncesto y ademas tiene dos hijos (pepito y juanito) me salga:

Quieres que te salga asi ???

Código: Text
  1.  
  2. persona                hijo                                prueba
  3. ____________________________________________
  4. persona                hijo1                               Futbol
  5.                             hijo2                               futsal
  6.                             hijo3                               natacion
  7.  
  8.  
ummmm, dejame pensarlo.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Varias Dudas
« Respuesta #2 en: Jueves 16 de Noviembre de 2006, 14:35 »
0
prueba viendo la relacion que tienen las tablas que intervienen, ya que crystal siempre mal interpreta las relaciones, asignandolas por el nombre identico del campo en distintas tablas.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

paulaaa

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Varias Dudas
« Respuesta #3 en: Jueves 16 de Noviembre de 2006, 14:44 »
0
Ante todo muchas gracias por la contestación.

Perdona mi ignorancia pero, podrías explicarme un poco mejor lo de los prámetros?. En cuanto a la segunda pregunta, a qué te refieres con que crystal malinterpreta las relaciones?Es que las he revisado y están bien (una persona puede tener 0-n hijos y por otro lado puede estar apuntada en 0-n pruebas).

Muchas gracias de nuevo.

:-)

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Varias Dudas
« Respuesta #4 en: Jueves 16 de Noviembre de 2006, 14:59 »
0
Los parametros solicitan al usuario de un informe que inrese cierta informacion. Piense en un parametro como una pregunta que el usuario necesita responder antes de que se genere el informe. La informacion que el usuario ingresa, o la forma en que responde, determina lo que aparece en el informe. Por ejemplo, un informe usado por vendedores, puede existir un parametro que pida al usuario que elija una region. El informe devuelve los resultados de la region especifica en vez de devolver los resultado de todas las regiones.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Varias Dudas
« Respuesta #5 en: Jueves 16 de Noviembre de 2006, 15:16 »
0
Citar
En cuanto a la segunda pregunta, a qué te refieres con que crystal malinterpreta las relaciones?

Cuando uno utiliza el asistente para crear informes, al agregar las tablas, los vinculos que coloca crystal por defecto no siempre son los verdaderos que existen en la BD.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Varias Dudas
« Respuesta #6 en: Jueves 16 de Noviembre de 2006, 15:19 »
0
y no respondiste, si querias que se vea asi .

Citar
Quieres que te salga asi ???

CODE

persona                hijo                                prueba
____________________________________________
persona                hijo1                               Futbol
                           hijo2                               futsal
                           hijo3                               natacion


BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

paulaaa

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Varias Dudas
« Respuesta #7 en: Jueves 16 de Noviembre de 2006, 19:31 »
0
Hola otra vez :-)

Lo que realmente quiero que me ponga es lo siguiente:

PARTICIPANTE
Nombre: nombre del participante.

HIJOS

Hijo1
Hijo2
Hijo3

PRUEBAS EN LAS QUE PARTICIPA

Natación
Fútbol
Baloncesto

En cuanto a lo de los parámetros (ya con vergüenza lo pregunto), lo que me gustaría sabes es como se hace desxde código c# para asignar el valor de una variable var (por ejemplo) a un campo de informe. Por ejemplo, en un formulario, para mostrar el dato en el formulario se pone campo.text=variable.¿Existe algo similar para informes?

Gracias, gracias y gracias :-)

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Varias Dudas
« Respuesta #8 en: Viernes 17 de Noviembre de 2006, 00:28 »
0
Citar
Lo que realmente quiero que me ponga es lo siguiente:

PARTICIPANTE
Nombre: nombre del participante.

HIJOS

Hijo1
Hijo2
Hijo3

PRUEBAS EN LAS QUE PARTICIPA

Natación
Fútbol
Baloncesto

Es exactamente esto:

Citar
Quieres que te salga asi ???

CODE

persona                hijo                                prueba
____________________________________________
persona                hijo1                               Futbol
                           hijo2                               futsal
                           hijo3                               natacion

Solo varia en la forma que colocas los objetos en crystal.

Solucion
Una vez diseñado el informe selecciona el objeto persona dale click derecho y selecciona dar formato al campo, y luego selecciona la pestaña Comun, dentro de este hay un check Suprimir si se duplica. seleccionalo.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Varias Dudas
« Respuesta #9 en: Viernes 17 de Noviembre de 2006, 00:31 »
0
Citar
En cuanto a lo de los parámetros (ya con vergüenza lo pregunto), lo que me gustaría sabes es como se hace desxde código c# para asignar el valor de una variable var (por ejemplo) a un campo de informe.
No se C#. que pena no poder ayudarte en eso. Pero tratare de verlo, haber si no resulta dificil.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

paulaaa

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Varias Dudas
« Respuesta #10 en: Viernes 17 de Noviembre de 2006, 08:25 »
0
Vale, voy a probar todo esto y ya te cuento como me ha ido.

Gracias.

Un saludo

paulaaa

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Varias Dudas
« Respuesta #11 en: Viernes 17 de Noviembre de 2006, 08:42 »
0
No te preocupes por lo de c#. Solo era para intentar hacer las cosas de manera distinta sin tener que usar el asistente. En cuanto a lo de la presentación de los datos, he solucionado solo parte del problema. En el caso de los hijos, al quitar los duplicados si hace caso, pero en el caso de las pruebas no, es decir, me salen dos veces las pruebas (una por hijo que tiene) así:

Nombre: datoNombre

Pruebas:                       hijos:

Natación                       hijo1
Fútbol                          
Baloncesto

Natación                       hijo2
Fútbol                          
Baloncesto

El campo prueba no hace caso al suprimir si se repite.

¿Alguna idea?

La verdad es que pensé que esto del crystal reports iba a ser más sencillo. Es que no doy una. Menudo quebraderos de cabeza me está dando el formulario de marras...

Un saludo y gracias por vigesimocuarta vez!

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Varias Dudas
« Respuesta #12 en: Viernes 17 de Noviembre de 2006, 17:05 »
0
umm, si puedes mandame el script de la BD para verla y tambien el rpt.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Varias Dudas
« Respuesta #13 en: Jueves 23 de Noviembre de 2006, 05:52 »
0
Si es que no haz hecho ninguna seleccion aparte de las que pone crystal, la consulta generada por crystal a partir de la seleccinoes de las tablas que hiciste es la siguiente.
Código: Text
  1. Select p.Nombre as 'paciente' ,h.Nombre as 'Hijos', pr.NombrePrueba as 'Prueba'
  2. From Hijos as h
  3.   inner join paciente as p on p.idPaciente = h.idP
  4.   inner join prueba as pr on p.idPaciente = pr.idP
  5.  
  6.  

lo cual muestra
Código: Text
  1.  
  2. paciente                    Hijos                      Prueba
  3. ---------------------------------------------------------------------
  4. david                        Juan                       General
  5. david                        Jose                       General
  6. david                        Juan                       Sencillo
  7. david                        Jose                       Sencillo
  8.  
  9.  
Pa mi, esto esta bien.

No se si me estoy confundiendo con las relaciones
Yo lo tomo asi:
1 paciente puede tener 0 o muchas pruebas
1 paciente puede tener 0 o muchos hijos

Y Creo que tu lo tomas asi:
1 paciente puede tener 0 o muchas pruebas
1 hijo puede tener 0 o muchos pruebas.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

paulaaa

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Varias Dudas
« Respuesta #14 en: Jueves 23 de Noviembre de 2006, 08:47 »
0
Hola de nuevo!

Todo eso está perfecto. La consulta saca lo que tiene que sacar. El problema es que no sé como mostrar esos datos en el formulario sin que salgan los valores repetidos. Con la propiedad "Suprimir si se duplican" solo consigo eliminar los hijos repetidos, pero no las pruebas repetidas, con lo que en el informe salen las pruebas una vez por cada hijo.Se me ocurrió entonces hacer dos consultas distintas, una para obtener los hijos y otra para obtener las pruebas, por eso pregunté lo de los parámetros, para poder enviar al formulario los valores de ambas consultas, y ahí me he quedado estancada  :(  :(  porque en prime lugar no se si eso es una buena forma de hacerlo y en segundo lugas porque no me sale en visual studio 2005 y con c# y llevo casi un mes con este problema!! :angry:  :angry:  (es que no se puede ser más negado que yo en esto)

Un saludo!!

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Varias Dudas
« Respuesta #15 en: Jueves 23 de Noviembre de 2006, 16:15 »
0
Citar
Con la propiedad "Suprimir si se duplican" solo consigo eliminar los hijos repetidos,
, No es que se eliminen, lo que pasa es que con la propiedad que te dije suprimir si se duplica, hace que cuando el valor es repetido no se muestre.
Olvidemonos del suprimir si se duplica.

Código: Text
  1.  
  2. paciente                    Hijos                      Prueba
  3. ---------------------------------------------------------------------
  4. david                        Juan                       General
  5.                                 Jose                       Normal
  6.                                                              Especal
  7.                                                              Sencillo
  8.  
  9.  
No le veo sentido a esto que tu quieres ver, por que la cantidad de pruebas que se muestre depende del paciente, osea que si hay 1 paciente y ese paciente tiene 4 pruebas entonces mostrara 4 registros
Por otro lado la cantidad de hijos que se muestre depende del paciente, osea que si hay 1 paciente y ese paciente tiene 2 hijos entonces mostrara 2 registros.

En total mostrara 4 * 2 = 8 registros, y cada registro necesariamente con los 3 datos paciente, hijo y prueba.
Espero no estar equivocado, y si lo estoy que alguien me corrija.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

paulaaa

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Varias Dudas
« Respuesta #16 en: Jueves 23 de Noviembre de 2006, 19:41 »
0
Lo que estás diciendo es perfecto. El ejemplo que has puesto:

paciente                    Hijos                      Prueba
---------------------------------------------------------------------
david                        Juan                       General
                               Jose                       Normal
                                                            Especal
                                                            Sencillo

Está perfecto y es exactamente lo que quiero que salga. El problema es que no sale. El paciente y las pruebas los pone bien pero los hijos no (1 vez por cada prueba = 4 veces repetido cada hijo). Lo que sale es:

paciente                    Hijos                      Prueba
---------------------------------------------------------------------
david                        Juan                       General
                               Juan                        Normal
                               Juan                        Especal
                               Juan                        Sencillo
                               Jose                        General
                               Jose                        Normal
                               Jose                        Especal
                               Jose                        Sencillo

El problema se solucionaría si al activar la casilla no mostrar si se repite efectivamente no repitiera los nombres de los hijos y las pruebas, pero no sé por qué razón no lo hace... :huh:

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Varias Dudas
« Respuesta #17 en: Viernes 24 de Noviembre de 2006, 14:21 »
0
Citar
El problema se solucionaría si al activar la casilla no mostrar si se repite efectivamente no repitiera los nombres de los hijos y las pruebas, pero no sé por qué razón no lo hace... huh.gif
Suprimir si se duplica, lo que hace es no mostrar el objeto si es que se repite (de forma contigua).

Por que el paciente muestra bien ??. Por que es solo un paciente.
Por que las los hijos muestra bien ???. Por que esta ordenado por HIJOS, asi que si se repite no se muestra.
Solo queda la columna Pruebas la cual nunca estaran repetidos contiguos.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"