Crystal Report - Ayuda con visual 6.0 y cristal

 
Vista:

Ayuda con visual 6.0 y cristal

Publicado por Marco (3 intervenciones) el 17/07/2005 23:30:25
Una pregunta amigos desarrolladores:
tengo una aplicacion con cristal report, los reportes ya ls tengo creados, entonces desde un ListBox los mando llamar, pero el reporte aparece porque tengo unos reportes en una carpeta local en mi maquina pero no me deja hacerles nada cuando me pide la fecha de inicio y de fin me aparece en blanco mi reporte mi codigo es el siguiente

Public Sub lst_reportes_DblClick()
On Error GoTo error
With ctr_calidad
.Connect = "DSN=cc"
.ReportFileName = App.Path & lst_ruta.List(lst_reportes.ListIndex)
.WindowTitle = "Calidad [Reportes]"
.WindowMaxButton = False
.WindowShowRefreshBtn = True
.WindowState = crptMaximized
.Destination = crptToWindow
.Action = 1
.Connect = "DSN=CALL_FASST_SQL"
.DiscardSavedData = 1
End With
error:
End Sub
Si alguien sabe como puedo hacerlo se lo agradeceria por su atencio mil gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con visual 6.0 y cristal

Publicado por Gerardo (571 intervenciones) el 19/07/2005 00:36:52
Ke tal Marco.

1.- Xq tienes dos veces Connect?, pero sobre todo, xq existe un Connect después de Action?.

2.- El DiscardSavedData tambien, xq después del Action?

3.- En ke momento envias al reporte los parámetros de la fecha de inicio y final?

Te sugiero revices en el foro las instrucciones para llamar a un reporte y enviarle parámetros para filtrar a través de una condición. En lo personal no me gusta hacer conexión a través de ODBC, Te sugiero ke cambies a OLEDB.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con visual 6.0 y cristal

Publicado por Marco (3 intervenciones) el 19/07/2005 01:47:05
Lo que pasa es que en mi vida avia usado el cristal, y lo que pasa es que quiero mostrar unos reportes que ya estan echos pero no tengo idea como con el codigo anterior los muestra pero cuando aprieto el boton refresh no me aparece nada , me pide la fecha de inicio y la fecha de finalisacion, pero despues de eso no sale nada. Sialguien sabe que puedo hacer se lo agradeceria , o si me pudieran decir otra manera de hacerlo .

Gracias por el comentario Esquivel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con visual 6.0 y cristal

Publicado por Belén (37 intervenciones) el 19/07/2005 10:18:42
Yo estuve peleandome varios dias con esto......

Comprueba que parametros son los que necesitas pasar al informe... y pasaselos de la siguiente manera. Te paso un ejemplo de mi código para que lo compruebes.

Dim crpParamDefs As CRAXDRT.ParameterFieldDefinitions
Dim crpParamdef As CRAXDRT.ParameterFieldDefinition
Dim streport As String
Dim strDate As String

'Abrir el reporte
'Screen.MousePointer = vbHourglass
On Error GoTo ErrHandler
streport = App.Path & "\rpt\" & frmInformes.Text1.Text
Set crReport = crApp.OpenReport(App.Path & "\rpt\" & frmInformes.Text1.Text, 1)
'crReport.SQLQueryString = "Tu consulta SQL" ' esta
'consulta es opcional

crReport.EnableParameterPrompting = False

' **Calcula el párametro Fecha Parte
If (Day(frmInformes.dtIntervaloInicial.Value) = 1) And (frmInformes.dtIntervaloFinal.Value = DateAdd("m", 1, frmInformes.dtIntervaloInicial.Value) - 1) Then
'*** Si es un mes completo, Fecha del tipo : Septiembre de 1999. ***
strDate = Format(frmInformes.dtIntervaloInicial.Value, "mmmm")
strDate = strDate & " de " & Format(frmInformes.dtIntervaloInicial.Value, "yyyy") & vbNullChar
Else
'*** Si es un año completo, fecha tipo: Año 1999. ***
If (Day(frmInformes.dtIntervaloInicial.Value) = 1) And (frmInformes.dtIntervaloFinal.Value = DateAdd("yyyy", 1, frmInformes.dtIntervaloInicial.Value) - 1) Then
strDate = "Año " & Year(frmInformes.dtIntervaloInicial.Value)
Else
If frmInformes.dtIntervaloInicial.Value = frmInformes.dtIntervaloFinal.Value Then
strDate = frmInformes.dtIntervaloFinal.Value
Else
'*** Otro caso, del tipo: Del 12/12/98 al 10/10/99 ***
strDate = "Del " & frmInformes.dtIntervaloInicial.Value & " al " & frmInformes.dtIntervaloFinal.Value
End If
End If
End If

Dim i As Integer
Dim strCapitulos As String
strCapitulos = ""
For i = 1 To frmInformes.lvCapitulos.ListItems.Count
strCapitulos = strCapitulos & " " & frmInformes.lvCapitulos.ListItems.Item(i).Text
Next

Set crpParamDefs = crReport.ParameterFields

For Each crpParamdef In crpParamDefs
With crpParamdef

Select Case .ParameterFieldName
Case "FechaParte"
crpParamdef.AddCurrentValue (strDate & vbNullChar)
Case "FechaImpresion"
crpParamdef.AddCurrentValue (frmInformes.dtFechaImpresion.Value & vbNullChar)
Case "FechaInicial"
crpParamdef.AddCurrentValue (frmInformes.dtIntervaloInicial.Value)

Case "FechaFinal"
crpParamdef.AddCurrentValue (frmInformes.dtIntervaloFinal.Value)

Case "Param1"
If Right(streport, 14) = "Accidentes.rpt" Or Right(streport, 17) = "AccidentesCar.rpt" Then
crpParamdef.AddCurrentValue (frmInformes.MortalesCheck.Value & frmInformes.GravesCheck.Value _
& frmInformes.GravesCheck.Value & frmInformes.LevesCheck.Value _
& frmInformes.IlesosCheck.Value)
Else
crpParamdef.AddCurrentValue (Val(frmInformes.OrdenacionCombo.ListIndex + 1) & vbNullChar)
End If
Case "Param2"
crpParamdef.AddCurrentValue (frmInformes.AgrupaciónText.Text & vbNullChar)
Case "Capitulo"
If Right(streport, 26) = "MaterialesListadoFecha.rpt" Then
crpParamdef.AddCurrentValue (strCapitulos & vbNullChar)
Else
crpParamdef.AddCurrentValue (frmInformes.GrupoCombo.Text & vbNullChar)
End If
Case "Operacion"
If Right(streport, 16) = "OperacionCar.rpt" Or Right(streport, 24) = "OperacionDescripcion.rpt" _
Then
crpParamdef.AddCurrentValue (frmInformes.cmoOperaciones.ItemData(frmInformes.cmoOperaciones.ListIndex) & vbNullChar)
End If
Case "Grupo"
If Right(streport, 14) = "PersonalOp.rpt" Or Right(streport, 18) = "CategoriaGrupo.rpt" Or Right(streport, 19) = "MaquinariaGrupo.rpt" Then
crpParamdef.AddCurrentValue (frmInformes.GrupoCombo.ItemData(frmInformes.GrupoCombo.ListIndex))
End If
If Right(streport, 17) = "PersonalOpThr.rpt" Or _
Right(streport, 21) = "CategoriaGrupoThr.rpt" Or _
Right(streport, 22) = "MaquinariaGrupoThr.rpt" Then
crpParamdef.AddCurrentValue (frmInformes.GrupoCombo.ItemData(frmInformes.GrupoCombo.ListIndex))
End If

Case Else
Call infPanel.InformationOutput(vbCritical, _
"Error en informe. Nombre de parámetro desconocido")
Exit Sub
End Select
End With
Next

CrystalActiveXReportViewer1.ReportSource = crReport
CrystalActiveXReportViewer1.DisplayGroupTree = False
CrystalActiveXReportViewer1.ViewReport
Set crpParamDefs = Nothing
Set crpParamdef = Nothing
Exit Sub

ErrHandler:
If Err.Number = -2147206461 Then
MsgBox "El archivo de reporte no se encuentra, restáurelo de los discos de instalación", _
vbCritical + vbOKOnly
End If

Screen.MousePointer = vbDefault

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar