Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

problema con crystal report

Estas en el tema de problema con crystal report en el foro de Visual Basic clásico en Foros del Web. Hola gente necesito ayuda please!! Quiero hacer que un parámetro del crystal report tome múltiples valores. Para eso en el crsytal declaro un parámetro como ...
  #1 (permalink)  
Antiguo 23/06/2007, 16:04
 
Fecha de Ingreso: junio-2007
Mensajes: 1
Antigüedad: 16 años, 10 meses
Puntos: 0
problema con crystal report

Hola gente necesito ayuda please!!

Quiero hacer que un parámetro del crystal report tome múltiples valores. Para eso en el crsytal declaro un parámetro como para recibir múltiples valores.

Después desde el form del reporte hago algo como:

Dim ParamDefs As CRAXDRT.ParameterFieldDefinitions
Dim ParamFieldLocation As CRAXDRT.ParameterFieldDefinition

...

Set ParamDefs = Report.ParameterFields
For Each Param In ParamDefs
Select Case Param.ParameterFieldName
Case "Maquina"
Param.AddCurrentValue (Maquina)
Case "Fecha"
Param.AddCurrentValue (Fecha)
Case "Turno"
Param.AddCurrentValue (Turno)
Case "Descripcion"
For posicion = 0 To UBound(Resultado.Demoras)
If (Resultado.Demoras(posicion).IdDemora <> 0) Then
Param.ClearCurrentValueAndRange
Param.AddCurrentValue (Str(Resultado.Demoras(posicion).IdDemora))
End If
Next posicion
End Select
Next
....

Por favor si alguien sabe...

Mariela
  #2 (permalink)  
Antiguo 05/07/2007, 02:03
 
Fecha de Ingreso: julio-2007
Mensajes: 1
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: problema con crystal report

Hola. Como estas?

creo que esto te ayudara

Este codigo (VB6) lo coloco donde selecciono los parametros que quiero que me imprima el reporte:

Declaro :
'Declaración del objeto Aplicación para abrir el reporte
Dim crAplicacion As New CRAXDRT.Application
'Declaración del objeto Reporte
Public crReporte As CRAXDRT.Report
'Indica el error al abrir un reporte
Private mflgContinuar As Boolean

luego una vez seleccionada los parametros que quiero que me muestre el reporte:

Private Sub cmdReporte_Click()
If Lista2.ListCount > 0 Then ' esta lista me muestra lo que quiero ver en el reporte
Set crAplicacion = CreateObject("CrystalRuntime.Application")
On Error GoTo ErrHandler
'Abrir el reporte
Screen.MousePointer = vbHourglass
mflgContinuar = True
Set crReporte = crAplicacion.OpenReport(App.Path & "\Reportes\Usuarios del Sistema.rpt", 1) ' direccion del reporte, los almaceno en una carpeta
' preparar para asignar restrinciones
With crReporte
.DiscardSavedData
.ParameterFields(1).ClearCurrentValueAndRange
End With
' asignar restrinciones
If Lista2.ListCount > 1 Then ' si la lista pose mas de un usuario en este caso
crReporte.ParameterFields(1).EnableMultipleValues = True
For i = 0 To Lista2.ListCount - 1
crReporte.ParameterFields(1).AddCurrentValue Left(Lista2.List(i), (InStr(1, Lista2.List(i), " ", 1)) - 1) ' aqui puede colocar el parametro que quieres ver en el reporte
Next i
Else ' si solo es un parametro que quieres ver
crReporte.ParameterFields(1).EnableMultipleValues = False
crReporte.ParameterFields(1).AddCurrentValue Left(Lista2.List(0), (InStr(1, Lista2.List(0), " ", 1)) - 1)
End If
' llamar al preview del reporte
frmCrystalReport.CogeReport = crReporte
frmCrystalReport.Caption = "Reporte : Usuarios del Sistema"
frmCrystalReport.Show
Screen.MousePointer = vbDefault
Else
MsgBox "Debe Seleccionar un Item del Listado", vbInformation, "SoftCtrlObra - Reporte de Usuarios del Sistema"
End If

'Rutina de Error
ErrHandler:
If Err.Number <> 0 Then
If Err.Number = -2147206461 Then
MsgBox "El archivo de reporte no se encuentra, restáurelo de los discos de instalación", vbCritical + vbOKOnly, "SoftCtrlObra - Reporte de Usuarios del Sistema"
Else 'aqui registro los errores en un txt, para ubicar de forma rapid adonde se encuentra el error
MsgBox Chr(13) & " Error : " & Err.Number & Chr(13) & " Info : " & Err.Description, vbCritical, "SoftCtrlObra - Error Crítico"
registrar_error Me.Name & "(cmdReporte ) Error : " & Err.Number & " Info : " & Err.Description
frameUsuario.Enabled = False
cmdReporte.Enabled = False
End If
End If
Screen.MousePointer = vbDefault

End Sub


en la forma donde previsualizo el reporte coloco este codigo y todo funciona bien:

Dim vReport As New CRAXDRT.Report

Property Let CogeReport(rpt As CRAXDRT.Report)
Set vReport = rpt
End Property

Private Sub cmdConfigI_Click()
vReport.PaperSize = crPaperLetter
vReport.PrinterSetup (0)
CRViewer9.ViewReport
End Sub


Private Sub Form_Load()

Dim vReport As New CRAXDRT.Report

Property Let CogeReport(rpt As CRAXDRT.Report)
Set vReport = rpt
End Property

Private Sub cmdConfigI_Click() ' boton que llama configuracion de la impresora
vReport.PaperSize = crPaperLetter
vReport.PrinterSetup (0)
CRViewer9.ViewReport
End Sub


Private Sub Form_Load()

'CentrarFormulario frmCrystalReport
Centrar_Formulario frmCrystalReport, 800
Screen.MousePointer = vbHourglass
'Asigne el objeto report como fuente del reporte para el Crystal Report Viewer
CRViewer9.ReportSource = vReport
CRViewer9.Refresh

' Mostrar el reporte
CRViewer9.ViewReport
CRViewer9.Zoom (100)
Screen.MousePointer = vbDefault

End Sub

Private Sub Form_Resize()
CRViewer9.Top = 0
CRViewer9.Left = 0
CRViewer9.Height = ScaleHeight
CRViewer9.Width = ScaleWidth
End Sub

Espero que te ayude.... ^_^
  #3 (permalink)  
Antiguo 20/07/2007, 15:48
 
Fecha de Ingreso: mayo-2004
Mensajes: 189
Antigüedad: 20 años
Puntos: 1
Re: problema con crystal report

Hola, te hago una pregunta, probe el codigo que esta mas arriba pero cuando me abre el reporte me salta una ventana que dice "enter parameter values" hay alguna forma de saltar esa ventana y que me tome los valores directamente desde el text del VB?
Gracias.
__________________
Nadie nacío sabiendo...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:28.