La Web del Programador: Comunidad de Programadores
 
    Pregunta:  621 - FILTRAR INFORMACION PARA CRYSTAL REPORTS
Autor:  Gerardo Portillo
Ya tengo mi sistema completo, solo me hace falta la generación de reportes, quiero hacerlos con Crystal Reports pero no puedo filtrar la información del usuario que obtengo desde mis formularios. Ya los puedo generar desde el crystal reports pero cuando hago la llamada desde mi sistema me genera el mismo reporte que tengo creado, ya intenté con SQl pero tampoco me hace caso. Quisiera alguna ayuda para poder decirle al control CrystalReport1 que mis cajas de texto y mis dbcombos tienen las especificaciones del reporte a generar. Soy principiante con Crystal reports. Agradezco cualquier ayuda. De antemano Gracias.

  Respuesta:  Cristina Ripoll
Hola,

Las respuestas anteriores son correctas, pero si al grabar el listado de Crystal le has dicho que guarde los datos con el informe, siempre te imprimirá el mismo listado... aunque intentes filtrar con la propiedad "Selectionformula"

La solución es abrir el listado con el crystal reports e irte al menú: "Archivo" --> "Opciones del informe" y desmarcar la opción "Guardar datos con informe"

Bueno, espero que te sirva.

  Respuesta:  Eric Del Valle
Dim dFr As String
´ como seguramente lo vas a copiar y pegar
´ por eso estoy incluyendo los comentarios ya hechos con el apóstrofe

´ crNotas=Control de Crystal Report (CrystalReport1)
´ FechaDeHoy=Función creada por mi devuelve una cadena, ejem: 28 de marzo de 1968

crNotas.WindowTitle = "Notas de fecha: " & FechaDeHoy ´ título de la ventana
crNotas.DiscardSavedData = True ´ no grabar datos

´ txtConsulta.Text = Contiene la información que el
´ usuario va a ir tecleando para armar la consulta interactiva
´ así no lo sometes a tus campos, sino a varios datos
´ dependiendo del campo que seleccionen y evaluando cada acción

dFr = txtConsulta.Text
´ intente hacerlo con CDATE(txtConsulta.Text)
´ pero a la hora de pasarselo a crystal
´ cuando pones una fecha como 12/08/2000
´ si pongo day(cdate(txtConsulta.Text)), me devuelve 8
´ y no como lo maneja Crystal, que es 08
´ por eso el rollo de abajo, right, left y mid mm/dd/aaaa

txtSqlR = txtSqlR & "date(" & Right(dFr, 4) & "," & Left(dFr, 2) & "," & Mid(dFr, 4, 2) & ") "
crNotas.SelectionFormula = Trim(txtSqlR)

crNotas.PrintReport

´Para que entiendas un poquito más, de como quedaría la cadena txtSqlR
´ten mucho cuidado con los espacios.

txtSqlR="{mitabla.nombre}=´ERIC´ AND {mitabla.ciudad}=´XALAPA´ OR {mitabla.fecha}=date(1968,03/28)"
´checa que en la fecha lleva el formato aaaa/mm/dd = 1968,03,28

  Respuesta:  Rodrigo Treviño
Hola: me imagino que para rellenar tus Textbox y DBGrid utilizas una consulta con parametros, si es asi, sobre una consulta igual pero sin parametros crea el reporte, al estar en cristal report te mostrara todos los registros, pero desde VB le suministras los parametros de seleccion algo asi
dim xref as string
xref = "{cr.nref} =" & nref.Text
Menu!crep.SelectionFormula = xref
cr.nref es el nombre del campo de cristal al que quieres que se aplique la seleccion nref.text es el campo en VB que contiene el valor que se utilizara para la seleccion Menu!crep es la ubicacion y el nombre del control de cristal report.
aqui te aclaro que solo es necesario cargar uno en todo el proyecto, ya que esta disponible para cualquier form.

Saludos y si requieres mas informacion mandame un Mail


  Respuesta:  Javier Sepúlveda
Hola para poder imprimir informes con el Crystal Report, pero solo informacion que tu necesitas, tienes que utilizar SelectionFormula. Para filtrar solo aquella informacion que necesitas imprimir.
Informe1.SelectionFormula = "{CLIENTES.CODCLIENTE} = " & CHR$(39) & "999" & CHR$(39)
Informe1.PrintReport
Este ejemplo imprimiria un informe llamado Informe1 cuyo codigo de cliente sea igual a 999.

Si tienes alguna duda o si quieres que esto te lo aclare o te envíe algún ejemplo, mandame un e-mail.


  Respuesta:  Enrique Canellada
Hasta donde yo se, que es poco, si estas trabajando con el Activex de Crystal y un control data de VB5, no se te hara efectiva la migracion de informacion del data (con tu consulta SQL perfecta) si no tienes en tu sistema una serie de DLL´s, en concreto la PDBBND.DLL se encarga de comunicar el data con el crystalreports1