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

VB Crystal Reports :hacer subreportes

Estas en el tema de VB Crystal Reports :hacer subreportes en el foro de Visual Basic clásico en Foros del Web. Hola Trabjo con VB 6.0 y CR 11.5 Estoy tratando de sacar un reporte y dentro de este hay 3 subreportes. Mi problema es que ...
  #1 (permalink)  
Antiguo 29/11/2007, 13:06
 
Fecha de Ingreso: diciembre-2001
Ubicación: Peru
Mensajes: 376
Antigüedad: 22 años, 5 meses
Puntos: 0
VB Crystal Reports :hacer subreportes

Hola Trabjo con VB 6.0 y CR 11.5
Estoy tratando de sacar un reporte y dentro de este hay 3 subreportes.
Mi problema es que no logro hacer que los subreportes se visualizen.
Les doy el codigo que lanza el reporte.

Public Function Imprimir(ByVal objOp As Integer) As Boolean
Dim Vista As frmVista
Set Vista = New frmVista
Dim Sentencia As String
Dim crSecs As CRAXDRT.Sections
Dim crSec As CRAXDRT.Section
Dim crRepObjs As CRAXDRT.ReportObjects
Dim crSubRepObj As CRAXDRT.SubreportObject
Dim CrSubreport As CRAXDRT.Report
Dim CrSubreport2 As CRAXDRT.Report
Dim CrSubreport3 As CRAXDRT.Report
Dim CrTextObject As CRAXDRT.TextObject
Dim objCrystalReportsApp As CRAXDRT.Application
Set objCrystalReportsApp = New CRAXDRT.Application
Dim objConnection As ADODB.Connection
Dim objComando As VBGDAC.Command
Dim objRecordset As New ADODB.Recordset
Dim RsSR1 As New ADODB.Recordset
Dim RsSR2 As New ADODB.Recordset
Dim RsSR3 As New ADODB.Recordset
Dim crpDatabase As CRAXDRT.Database ' Variable para la Base de Datos
Dim crpTables As CRAXDRT.DatabaseTables ' Variable para tablas de la base de datos
Dim crpTable As CRAXDRT.DatabaseTable ' Variable para una tabla
Dim X As Integer
Dim i As Integer
Dim nosubrep As Integer
Set objConnection = New ADODB.Connection
objConnection.CursorLocation = adUseClient
objConnection.ConnectionString = m_strCadenaDeConexion
objConnection.ConnectionTimeout = objConnection.ConnectionTimeout * 3
objConnection.CommandTimeout = objConnection.CommandTimeout * 3
objConnection.Open

Set objComando = New VBGDAC.Command
Set objComando.ActiveConnection = objConnection
objComando.CommandTimeout = 0
objComando.CommandType = adCmdStoredProc
objComando.CommandText = "spMP0053"
objComando.Parameters("@ID_OrdenProduccion").Value = m_OP
Set objRecordset = objComando.Execute

' 'Recordset 1
objComando.CommandText = "spMP0054"
objComando.Parameters("@ID_OrdenProduccion").Value = m_OP
Set RsSR1 = objComando.Execute

' 'Recordset 2
objComando.CommandText = "spMP0055"
objComando.Parameters("@ID_OrdenProduccion").Value = m_OP
Set RsSR2 = objComando.Execute

' 'Recordset 3
objComando.CommandText = "spMP0056"
objComando.Parameters("@ID_OrdenProduccion").Value = m_OP
Set RsSR3 = objComando.Execute

Screen.MousePointer = vbHourglass
Set m_objDiseñoDelDocumento = objCrystalReportsApp.OpenReport(App.Path & "\spMP0053.rpt")
m_objDiseñoDelDocumento.DiscardSavedData
Set crpDatabase = m_objDiseñoDelDocumento.Database
Set crpTables = crpDatabase.Tables
m_objDiseñoDelDocumento.Database.SetDataSource objRecordset
Set crSecs = m_objDiseñoDelDocumento.Sections

' Esto para los subreportes
For i = 1 To crSecs.Count
Set crSec = crSecs.Item(i)
Set crRepObjs = crSec.ReportObjects
For X = 1 To crRepObjs.Count
If crRepObjs.Item(X).Kind = crSubreportObject Then
Set CrSubreport = m_objDiseñoDelDocumento.OpenSubreport(crRepObjs.It em(X).SubreportName)
If nosubrep = 0 Then
CrSubreport.Database.SetDataSource RsSR1
nosubrep = 1
Else
If nosubrep = 1 Then
Set CrSubreport2 = m_objDiseñoDelDocumento.OpenSubreport(crRepObjs.It em(X).SubreportName)
CrSubreport2.Database.SetDataSource RsSR2
nosubrep = 2
Else
If nosubrep = 2 Then
Set CrSubreport3 = m_objDiseñoDelDocumento.OpenSubreport(crRepObjs.It em(X).SubreportName)
CrSubreport3.Database.SetDataSource RsSR3
End If
End If
End If
End If
Next
Next
Vista.VerReporte m_objDiseñoDelDocumento
Vista.Show
Screen.MousePointer = vbNormal
End Function



GRACIAS
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 16:54.