Por fa ayudame con un ejemplo de un reporte en crystal

Lenguaje de programación:visual basic6
Programa de reportes:crystal report 11
La verdad es que no tengo idea de como hacer un reporte el cual me pida un dato y que con respecto a ese dato lance el reporte. Es decir existen datos de diferentes colegios y necesito sacar datos de un determinado colegio, el usuario digita el código del colegio y el reporte debe lanzar la información solo con respecto a ese colegio.
Necesito que por favor me ayuden con un ejemplo o algo es urgente

2 respuestas

Respuesta
1
Pero nunca use crystal.
Respuesta
1
Si es rapido te paso esto, ahora te recomiendo version de crystal 8 o 9
para vb 6
Parámetros desde Visual Basic a Cristal Reports
Pasos a seguir para desde Visual Basic 6 pasar a Cristal Reports 8 como parámetros dos fechas desde y hasta, para que me filtre el informe por las mismas y también poder decirle que el informe es SELECT tal campos FROM tal tabla WHERE pasa tal cosa y ORDER BY tal otra.
Primero hacemos nuestro archivo en Cristal Reports, en el mismo es importante que vayamos en el menú a la parte de Base de Datos, Mostrar consulta SQL. Y ahí pongamos seguido del SELECT / FROM que lo pone el Cristal Reports, nuestro WHERE y ORDER BY si es que queremos hacer un filtro especial, y después probar refrescar el informe a ver si funciono sin errores.
La consulta SQL completa tal cual figura en Mostrar consulta SQL del Cristal, la voy a copiar y pegar en un archivo de texto (que puede ser el block de notas de Windows) y después voy a borrar todo de Mostrar consulta SQL, el Cristal automáticamente me va a volver a crear sólito el SELECT / FROM.
Segundo paso desde Visual Basic en el menú Proyecto / Componentes en la ventana Diseñadores click en Cristal Reports 8, Aceptar. Después clic en el icono de explorador de proyectos, click botón derecho en diseñadores, click en agregar, click en Más Diseñadores ActiveX, clic en Cristal Repors 8, va a aparecer una ventana Galería de Seagete Cristal Reports y en la parte que dice Crear un nuevo documento de Cristal Reports, vos a elegir A partir de un informe existente, Clic en Aceptar y lo busco con el explorador que me va a abrir y elijo el informe que ya había hecho antes.
Me va a agregar un un diseñador CristalReport1 al cual lo voy a renombrar como dsrNombreInforme y también me agrega un formulario que llamo rptInfos que es desde donde maneja el diseñador, yo uso un solo formulario para todos los diseñadores por lo cual cuando vuelva a agregar un diseñador elimino el formulario que me agrega y modifico la rutina en rptInfos.
Consideraciones a saber: declaro en el modulo dos variables string para las fechas llamadas Desde y Hasta (cuando llame al informe ya voy a tener en las variables Desde y Hasta las respectivas fechas) y una variable string para los informes llamada pInfos (donde pongo el nombre del informe esto lo hago en el click en el menú que llama al informe) entonces en rptInfos tengo esta rutina:
Option Explicit
Dim sSql As String
Private Sub CRViewer_CloseButtonClicked(UseDefault As Boolean)
Unload rptInfos
End Sub
Private Sub Form_Load()
Me.Icon = LoadResPicture("imprimir", vbResIcon)
Me.WindowState = 2 Maximized
Screen.MousePointer = vbHourglass
If pInfos = "NombreInforme" Then
dsrNombreInforme.ReportTitle = "Informe " & Desde & " al " & Hasta
dsrNombreInforme.ReportComments = Aca puedo pasarle un titulo con Variables
dsrNombreInforme.ReportAuthor= Aca puedo pasarle un titulo con Variables
SQL del Cristal Reports desde Visual Basic
sSql = "Aca pego lo que copie del Mostrar consulta SQL del Cristal Reports"
dsrNombreInforme.SQLQueryString = sSql
dsrNombreInforme.DiscardSavedData
Parametros Desde - Hasta desde Visual Basic
dsrNombreInforme.EnableParameterPrompting = False
dsrNombreInforme.RecordSelectionFormula = "{Informe.fecha} In Date (" & Format$(Desde, "yyyy,mm,dd" & " To Date (" & Format$(Hasta, "yyyy,mm,dd" & ""
CRViewer.ReportSource = dsrNombreInforme
End If
rptInfos.Show
CRViewer.ViewReport
Screen.MousePointer = vbDefault
End Sub
Private Sub Form_Resize()
CRViewer.Top = 0
CRViewer.Left = 0
CRViewer.Height = ScaleHeight
CRViewer.Width = ScaleWidth
End Sub
Es una avance...
Me gustaría colocar toda esta sentencia en una variable para luego asignarlo al SQLQueryString. Pero no me deja continuar en la misma linea de comando de modo que le coloco _ y no sirve. ¿Qué puedo hacer?
 SELECT `cantidad_clase_est`.`codigo_est`, `cantidad_clase_est`.`cantidad`, `ESTUDIANTE`.`apellidos`, `ESTUDIANTE`.`nombres`, `cantidad_de_clases_x_grupo`.`sede`, `cantidad_de_clases_x_grupo`.`grupo`, `SEDE`.`nombre`, `cantidad_de_clases_x_grupo`.`Cantidad`, `GRUPO`.`codigo sede`, `GRUPO`.`codigo grupo`
 FROM   ((`GRUPO` `GRUPO` INNER JOIN ((`ESTUDIANTE` `ESTUDIANTE` INNER JOIN `asistprom` `asistprom` ON `ESTUDIANTE`.`codigo`=`asistprom`.`codigo_est`) INNER JOIN `SEDE` `SEDE` ON `ESTUDIANTE`.`codigo sede`=`SEDE`.`codigo sede`) ON `GRUPO`.`codigo sede`=`SEDE`.`codigo sede`) INNER JOIN `cantidad_de_clases_x_grupo` `cantidad_de_clases_x_grupo` ON (`GRUPO`.`codigo grupo`=`cantidad_de_clases_x_grupo`.`grupo`) AND (`SEDE`.`codigo sede`=`cantidad_de_clases_x_grupo`.`sede`)) INNER JOIN `cantidad_clase_est` `cantidad_clase_est` ON `asistprom`.`codigo_est`=`cantidad_clase_est`.`codigo_est`
 ORDER BY `GRUPO`.`codigo grupo`, `GRUPO`.`codigo sede`, `cantidad_clase_est`.`codigo_est`
 WHERE (((cantidad_de_clases_x_grupo.grupo)='" & txtcodsede.Text & "')AND ((SEDE.[codigo sede])='" & txtcodsede.Text & "'));"
Quiero disculparme contigo, ya que no te di las gracias por el dato anterior creelo ha sido la única información valida que he encontrado hasta el momento.
Gracias
¿Trabajas con sql?
Porque lo que yo hago es, al crystal le paso los parámetros y después el crystal lo vinculo con un procedimiento almac. O stored del sql.
De esa manera si hay un cambio, lo hago en el sql y no en el crystal.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas