Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/05/2013, 09:26
KenMasters
 
Fecha de Ingreso: abril-2005
Ubicación: Piura - Perú
Mensajes: 189
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: Problema Crystal report 11r2

He estado buscando, limitando las referencias a las mismas usadas por el ejemplo, pero no encuentro la razón del porque se cierra. Considerando que las referencias son iguales, creo que lo único que cambia es el tipo de DB, adjunto ambos codigos


Codigo problema que se cierra el form pasado unos segundos o por pasar el puntero
Código vb:
Ver original
  1. Option Explicit
  2. Dim crxApp As New CRAXDRT.Application
  3. Dim crxRpt As CRAXDRT.Report
  4. Dim crParamDefs As CRAXDRT.ParameterFieldDefinitions
  5. Dim crParamDef As CRAXDRT.ParameterFieldDefinition
  6.  
  7. Dim cn As Connection
  8. Dim rsREP As Recordset ' se usa para el boton ver report
  9.  
  10. Private Sub Form_Load()
  11. Set cn = New Connection
  12. cn.ConnectionString = "DRIVER={MySQL ODBC 5.2 ANSI Driver}; SERVER=localhost;DATABASE=basedatos;USER=usuario;PASSWORD=pass;port:33006;OPTION=3"
  13. cn.CursorLocation = adUseClient
  14.  
  15. cn.Open
  16.  
  17. 'para el reporte
  18.  
  19. Set rsREP = New Recordset
  20.  
  21. MsgBox SQLquery
  22.  
  23. If SQLquery = "" Then
  24.     Unload Me
  25. Else
  26.     rsREP.Open "" & SQLquery & "", cn, adOpenDynamic, adLockOptimistic
  27. End If
  28.  
  29.  
  30. Set crxApp = New CRAXDRT.Application
  31. Set crxRpt = crxApp.OpenReport(AppPath() & "\Report2.rpt")
  32. crxRpt.EnableParameterPrompting = False
  33. Set crParamDefs = crxRpt.ParameterFields
  34.  
  35. For Each crParamDef In crParamDefs
  36.         Select Case crParamDef.ParameterFieldName
  37.             Case "nombre"
  38.                 crParamDef.SetCurrentValue rsREP.Fields("nombre")
  39.             Case "nacimiento"
  40.                 crParamDef.SetCurrentValue rsREP.Fields("nacimiento")
  41.         End Select
  42. Next
  43.  
  44. CRViewer1.ReportSource = crxRpt
  45. CRViewer1.ViewReport
  46. CRViewer1.Zoom (100)
  47. Show
  48. End Sub
Siendo SQLquery una variable publica tipo string que pasa la consulta al form donde esta el CRViewer1

Codigo de ejemplo que no se cierra
Código vb:
Ver original
  1. <Modulo1.bas>
  2. Option Explicit
  3. Global CN As New ADODB.Connection
  4.  
  5. Sub main()
  6. CN.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & App.Path & "\BD.accdb;Persist Security Info=False;"
  7. Form1.Show
  8.  
  9. End Sub
  10. <fin modulo1>
  11.  
  12.  
  13.  
  14.  
  15. Option Explicit
  16. Dim reporte As New Inventario
  17. Dim rs As New ADODB.Recordset
  18.  
  19. Private Sub cmdCommand1_Click()
  20. rs.Filter = ""
  21. repp
  22. End Sub
  23.  
  24. Private Sub Command1_Click()
  25. Dim rsss
  26. rsss = InputBox("Escriba una letra")
  27. rs.Filter = "nombre like '%" & rsss & "%'"
  28. repp
  29. End Sub
  30.  
  31. Private Sub Form_Load()
  32.  
  33. rs.Open "Select * from Inventario", CN, adOpenDynamic, adLockOptimistic
  34.  
  35. repp
  36.  
  37. End Sub
  38.  
  39. Sub repp()
  40.     With reporte
  41.         .Database.SetDataSource rs
  42.         .PaperOrientation = 1
  43.         .PaperSize = 45
  44.         .DiscardSavedData
  45.     End With
  46.  
  47.     CRViewer1.ReportSource = reporte
  48.     CRViewer1.ViewReport
  49.    
  50. End Sub