Crystal Report - Ayuda con Recordset y VB

 
Vista:

Ayuda con Recordset y VB

Publicado por Albina (1 intervención) el 22/11/2005 13:40:21
Hola el problema que tengo es el siguiente, tengo una Bd en SQLSERVER, y tengo el programa en vb6, los reportes en crystal9, el problema es que necesito pasarle un recordset, porque puede ser que mas de una persona ejecute el reporte a la vez, y no pueden pisarse la información.
El código que tengo es el siguiente, pero no me escribe en el reporte, si alguien me puede decir que está mal se lo agradezco, por las dudas yo tengo conectado el crystal con un file definition only, talvez tenga que conectarlo por otro lado. Lo que no puedo hacer es tener una tabla en la bd y escribir en ella, porque todos se pisarian la información.

Private Sub InfoListadoGeneral2(sArchivo As String, sconsulta As String, sNombreCampos As String, ruta As String, Optional SinParametros As Boolean = False, Optional arbol As Boolean = False, Optional sconsulta1 As String)

Dim vNombreCampos() As String
Private omRecordset As ADODB.Recordset
Dim Crystal As New CRAXDRT.Application 'MANAGES REPORTS
Dim Report As New CRAXDRT.Report

If VerificarArchivo(sArchivo) Then

omRecordset.CursorLocation = adUseClient
omRecordset.CursorType = adOpenDynamic
If opCn.Connection.State = 0 Then opCn.Connection.Open
omRecordset.ActiveConnection = opCn.Connection
omRecordset.Open sconsulta
If Not SinParametros Then
'Se pasan los titulos de los campos
vNombreCampos = Split(sNombreCampos, ";")
For i = 0 To UBound(vNombreCampos)
If vNombreCampos(i) <> "" Then
Report.ParameterFields(i + 1).AddCurrentValue vNombreCampos(i)
End If
Next
End If
Set Report = Crystal.OpenReport(App.Path & ruta) '****
Report.Database.SetDataSource omRecordset
crShow.ReportSource = Report
If arbol = True Then
crShow.EnableGroupTree = True
Else
crShow.EnableGroupTree = False
End If
crShow.ViewReport
Screen.MousePointer = vbArrow
If omRecordset.State <> 0 Then omRecordset.Close
Else
MsgBox "SE HAN ALTERADO ARCHIVOS DEL SISTEMA. POR FAVOR COMUNIQUESE CON EL SERVICIO TECNICO", vbCritical + vbOKOnly, "Error de sisema"
End If

End Sub
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 Recordset y VB

Publicado por Luis Hansel (109 intervenciones) el 15/12/2005 17:01:59
La solución quizás no se encuentre en Crystal Reports. Yo resolvería este problema a través de VBA.

No eres la única que se ha tropezado con esto. Yo ya lo tuve en mis manos y lo solucioné aprendiendo Visual Basic para Aplicaciones (VBA). Hice una rutina - dentro del programa principal - que escribe los datos en Excel a partir de un recordset y eso lo presenté como reporte. (Después de "maquillar" la hoja de Excel y poner los datos presentables.)

Al hacerlo así, ningún usuario interfiere con la información del otro porque emplearían el Excel que tienen localmente y cada cual con un recordset diferente.
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