none
No salen algunos registros en mi informe RRS feed

  • Pregunta

  • Hola, ¿que tal?

    Tengo un informe con el crystal report que incorpora visual basic 2008 y me ocurre una cosa curiosa:

    Tengo tres tablas vinculadas Empresas, Clientes y Departamentos. Al sacar un informe de clientes de cierta empresa:

    En la tabla Clientes tengo NombreCliente - String y IdDepartamento - Numerico

    En la tabla Departamentos tengo IdDepartamento - Numerico y DetalleDepartamento - String

    En el detalle del informe tengo Nombre del cliente y DetalleDepartamento, el cual lo cojo de la tabla departamentos correctamente vinculada.

    El informe sale bien excepto:

    Cuando el cliente no tiene Departamento asociado (Valor 0, el cual no existe en departamentos), en lugar de que en departamento no imprima nada (que es lo que quiero) no me saca el cliente.

    Gracias

    Juan Carlos

     

    • Cambiado Enrique M. Montejo lunes, 25 de julio de 2011 16:56 Crystal Reports (De:Lenguaje VB.NET)
    miércoles, 7 de abril de 2010 16:33

Todas las respuestas

  • hola

    en lugar de usar un INNER JOIN en la relacion, cuando armas la consulta, usa el LEFT o RIGHT JOIN

    de esta forma podrias indicar en la relacion que mueste todos los registros de clientes sin departamento, igualmente cuando sucede esto se definir el campo para que permita nulos, esto lo comento porque has dicho qeu usabas un cero en la relacion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 7 de abril de 2010 16:49
  • es que no uso nada de eso.

    Lo he hecho con el asistente de crystal (vinculos) y luego en el boton de imprimir cargo la tabla de la siguiente forma:

    Dim

     

    Seleccion As String = "SELECT * FROM Clientes WHERE Empresa='" & VarCif.ToString & "'"

    ¿tengo que meterme en la consulta que me ha hecho el asistente o puedo hacerlo por cógido?

    Gracias Leandro

    Juan Carlos

     

     

    miércoles, 7 de abril de 2010 18:14
  • hola

    el reporte lo conectas directo a las tabvlas de la db, o usas dataset tipado ?

     

    si usas dataset tipado, podrias cargar tu mismo cada datatable, por ahi la consulta podrias hacerla

    SELECT C.* FROM Clientes C LEFT JOIN Empresas E
     ON C.Empresa = E.Empresa
    WHERE E.Empresa = @empresa

     

    lo que no se es como cargas cada datatable, lo ahces por medio de tablaadapters ?

    si el query anterio no funciona, puedes probar

    SELECT * FROM Clientes WHERE ((Empresa= @empresa) OR (Empresa IS NULL))

    aqui te devuelve las que tienen la empresa y las que no tienen valor asociado tambien

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 7 de abril de 2010 18:24
  • ¡Hola!

    ¿Fue posible solucionar su problema?

    ¡Gracias!
    Rafael Fagundes - Marque la respuesta como correcta si te ha sido de utilidad!
    lunes, 19 de abril de 2010 2:56