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

Cargar Imagen Crystal y Visual Basic

Estas en el tema de Cargar Imagen Crystal y Visual Basic en el foro de Visual Basic clásico en Foros del Web. Hola a todos. ¿Alguien sabría como hacer para cargar una imagen dinámicamente en cristal reports? El parámetro (la ruta en donde se encuentra la foto) ...
  #1 (permalink)  
Antiguo 09/09/2007, 12:12
 
Fecha de Ingreso: abril-2004
Ubicación: Cdoro. Rivadavia
Mensajes: 83
Antigüedad: 20 años
Puntos: 0
Cargar Imagen Crystal y Visual Basic

Hola a todos.
¿Alguien sabría como hacer para cargar una imagen dinámicamente en cristal reports? El parámetro (la ruta en donde se encuentra la foto) se lo paso desde visual basic.
Estoy usando Visual Basic 6 y Crystal Reports 9
Desde ya muchas gracias
  #2 (permalink)  
Antiguo 10/09/2007, 00:00
 
Fecha de Ingreso: abril-2004
Ubicación: Cdoro. Rivadavia
Mensajes: 83
Antigüedad: 20 años
Puntos: 0
Re: Cargar Imagen Crystal y Visual Basic

Hola de nuevo.Ya pude solucionarlo. Es algo que me costó sus buenas horas y es por eso que quiero compartir el código con uds. Quizás a alguien pueda servirle. Saludos !!


'Variables globales del formulario.

'Cabe mencionar que en el formulario se deben declarar
'tantas variables como parámetros tenga el reporte,
'además de las tres primeras variables, que no deberán
'faltar independientemente del número de parámetros.

Private crApp As New CRAXDRT.Application 'Objeto que representa una instancia del programa Crystal Reports.
Private crReport As New CRAXDRT.Report 'Objeto que representa el reporte que deseamos abrir.
Private mflgContinuar As Boolean 'Variable booleana que nos indica si hubo error al tratar de abrir el archivo RPT.

Private paramEmpresa As String 'Variable entera que almacenará el valor que se le pasará al Parametro1 del reporte.
Private sAfiliado, sTipoDoc, sNumeroDoc, sNroAfiliado, sFoto As String



'esto lo agregue de una pagina que muestra como cargar imagenes.
Dim WithEvents Seccion As CRAXDRT.Section

'Procedimientos del formulario.
Public Sub PasarParametros(sParam1 As String)
'Este procedimiento sirve para mandar desde el formulario de parámetros los valores que tendrán los parámetros del reporte.
'Las variables a nivel de formulario sirven para guardar estos valores mientras se abre el reporte.
paramEmpresa = sParam1
'mlngParametro2 = lParam2
End Sub

Public Sub PasarParametrosCarnet(sPNom, sPApe, sPTD, sPNroDoc, sPNroAf, sPFoto)
sAfiliado = sPApe & ", " & sPNom
sTipoDoc = sPTD
sNumeroDoc = sPNroDoc
sNroAfiliado = sPNroAf
sFoto = sPFoto
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Then modFormulario.cerrarForm Me
End Sub

''Eventos del formulario.
Private Sub Form_Resize()
'En este evento hacemos que el control crViewer ocupe toda el área del formulario en el que se encuentra
crVer.Top = 0
crVer.Left = 0
crVer.Height = ScaleHeight
crVer.Width = ScaleWidth
End Sub

Private Sub Form_Unload(Cancel As Integer)
Set crReport = Nothing
Set crApp = Nothing
End Sub


Private Sub Form_Load()
Dim crParamDefs As CRAXDRT.ParameterFieldDefinitions
Dim crParamDef As CRAXDRT.ParameterFieldDefinition
Dim Cadena As String
On Error GoTo ErrHandler
'Abrir el reporte
Screen.MousePointer = vbHourglass
mflgContinuar = True
Select Case GlobalReporte
Case "AfiliadoEmpresa"
Cadena = App.Path & "\reportes\rptAfiliadosEmpresa.rpt"
Set crReport = crApp.OpenReport(Cadena, 1)
' armar la formula en el caso de ser necesario
'Call ArmarFormula
' Parametros del reporte
Set crParamDefs = crReport.ParameterFields
For Each crParamDef In crParamDefs
Select Case crParamDef.ParameterFieldName
Case "paramEmpresa"
crParamDef.AddCurrentValue (paramEmpresa)
End Select
Next
Case "Carnet"
Cadena = App.Path & "\reportes\rptCarnet.rpt"
Set crReport = crApp.OpenReport(Cadena, 1)

'Crea la seccion y asigna la 3.- detalle,
'el nothing es por si se da click en el boton mas de una vez
Set Seccion = Nothing
Set Seccion = crReport.Sections(1)
Set crParamDefs = crReport.ParameterFields

For Each crParamDef In crParamDefs
Select Case crParamDef.ParameterFieldName
Case "paramAfiliado"
crParamDef.AddCurrentValue (sAfiliado)
Case "paramTipodoc"
crParamDef.AddCurrentValue (sTipoDoc)
Case "paramNumerodoc"
crParamDef.AddCurrentValue (sNumeroDoc)
Case "paramNroAf"
crParamDef.AddCurrentValue (sNroAfiliado)
'Case "paramFoto"
' crParamDef.AddCurrentValue (sFoto)
End Select
Next
End Select

'Ahora sí el reporte está listo para ser desplegado en el crViewer.
'Al asignar la variable crReport al miembro ReportSource del control crViewer estamos propiamente asignando el reporte al control, pero no el reporte no será visible hasta que se mande llamar al método ViewReport del crViewer.
crVer.ReportSource = crReport
crVer.DisplayGroupTree = False
crVer.ViewReport
crVer.EnableRefreshButton = False
Screen.MousePointer = vbDefault

'If gbVisualizarReporte Then
' visualizar o imprimir directamente
' crViewer.DisplayGroupTree = False
' crViewer.ViewReport
' mflgContinuar = True
'Else
' crReport.PrintOut
' mflgContinuar = False
'End If
'End Select
Screen.MousePointer = vbDefault
Set crParamDefs = Nothing
Set crParamDef = 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
Else
MsgBox Err.Description, vbCritical + vbOKOnly
End If
mflgContinuar = False
Screen.MousePointer = vbDefault
End Sub


Private Sub Seccion_format(ByVal pFormattingInfo As Object)
'El evento se dispara cada vez que se formatea la seccion
'Como es seccion de detalle, el evento se dispara por cada registro
With Seccion
'Obtiene el ID del registro desde el campo "Id" en el reporte,
' y filtra el Recordset para colocar el cursor en el registro
'Recset.Filter = "ID=" & .ReportObjects("Field1").Value
'Carga la imagen, obteniendo la ruta desde el Recordset
Set Seccion.ReportObjects("foto").FormattedPicture = _
LoadPicture(sFoto)
End With
'Reestablece el filtro del Recordset
'Recset.Filter = adFilterNone

End Sub
  #3 (permalink)  
Antiguo 16/09/2007, 15:49
 
Fecha de Ingreso: septiembre-2007
Mensajes: 1
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Cargar Imagen Crystal y Visual Basic

Muchas gracias mmarti!!...
Me fue muy útil...

Saludo!

Lisandro.
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 03:05.