Crystal Report & VB

Hola marcosz, hace ya que programa en Visual Basic, pero los informes siempre los había generado o con Data Report o tratando documentos de Word, pero ahora tengo que realizarlos con Crystal Report y la verdad es que estoy algo pez. Bueno mi problema es el siguiente, tengo que generar un informe que presenta datos de tres tablas distintas de una base de datos, el problema se me presenta porque en la propiedad .SelectionFormula no puedo hacer referencia a las tres tablas para generar el filtro. Gracias por atender mi petición.
Juanolo The Gangrel

1 Respuesta

Respuesta
1
Supongo que ya tienes ligadas las tablas(si no es así dímelo) y solo te falta hacer la selección desde Vb.
En crystal, en el menú llamado "Informe" (o "Report" en inglés) existe la opción llamada "Asistente de selección"("Select Expert") donde te muestra una ventana con todos los campos sobre los cuales puede hacer una selección para tu reporte.
Con él creas tu criterio de selección y la parte inferior derecha hay un botón llamado "mostrar fórmula", el resultado que muesta ahí es exactamente como se debe de colocar en Vb para hacer el llamado al reporte.
Por ejemplo, haciendo una condición en Crystal donde queremos que la fecha sea del 01-Feb-02 y el precio unitario entre 2500 y 5000, con el "mostrar fórmula" nos mostraría lo siguiente
{Invoices.OrderDate} = Date (2002, 02, 01) and Invoices.UnitPrice} in 2500.00 to 5000.00
Ahora en Vb lo colocaríamos así:(usando el DTPicker) para manejar fechas)
crystalreport1.selectionformula = "{Invoices.OrderDate} = Date (" & year(dtpicker1) & ", " & month(dtpicker1) & ", " & day(dtpicker1) & ") and Invoices.UnitPrice} in " & val(txtPrecioDesde) & " to " & val(txtPrecioHasta)
o manejando las fechas con cuadros de texto(TextBox) en formato dd/mm/yy
crystalreport1.selectionformula = "{Invoices.OrderDate} = Date (" & right(txtDesde,2) & ", " & mid(txtDesde,3,2) & ", " & left(txtDesde,2) & ") and Invoices.UnitPrice} in " & val(txtPrecioDesde) & " to " & val(txtPrecioHasta)
Nota importante:
Si vas a manejar desde Vb la selección de tus registros es muy importante que en tu archivo .rpt de crystal no exista ninguna condición de selección de registros en el "asistente de selección" ya que crystal combina las condiciones que ya existen guardadas en el reporte con las que le indicas al llamarlo desde Vb.
Por ejemplo, digamos que se quedó guardada en el reporte la condición "{State.Id} = 2" y tu le envías desde Vb otras condiciones, estás incluirán la guardada en el reporte.
Si tienes alguna duda dímelo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas