Visual Basic Foro
Programación => Bases de Datos => Mensaje iniciado por: Jose en Junio 10, 2010, 05:02:16 pm
-
He tratado por todos los medios hacer un reporte, pero no he podido.
intente en crystal report pero el sistema operativo que estoy utilizando es windows 7 y no me da chance de nada alguien me puede dar alguna solucion a este problema
-
Este es mi Form y de aqui tengo que sacar el reporte si se dan cuenta esta en Crystal Report
Private Sub BtMonitoreo_Click()
If grid.Rows = 1 Then
MsgBox ("No hay informacion para mostrar")
Else
If vUsuario = "SYSTEM" Then
With RptDiversos
.ReportFileName = App.Path & "\Reportes\REP_MONITOREOS.rpt"
.Destination = 0
.WindowBorderStyle = 3
.WindowControlBox = True
.WindowMaxButton = False
.WindowMinButton = False
cadena = ""
For n = 1 To grid.Rows - 1
grid.Row = n
grid.Col = 1
cadena = cadena & grid.Text & ","
Next
If Trim(cadena) <> "" Then
cadena = left(Trim(cadena), Len(Trim(cadena)) - 1)
End If
RANGODATOS = "{MONITOREO.noMONITOREO} in [" & cadena & "]"
.ReplaceSelectionFormula RANGODATOS
.WindowTitle = "[ Reporte de Monitoreos ]"
.WindowHeight = MDIPrincipal.ScaleHeight / Screen.TwipsPerPixelY
.WindowWidth = MDIPrincipal.ScaleWidth / Screen.TwipsPerPixelX
.WindowLeft = MDIPrincipal.left / Screen.TwipsPerPixelX + 5
.WindowTop = (MDIPrincipal.Top + (MDIPrincipal.Height - (MDIPrincipal.ScaleHeight + MDIPrincipal.StatusBar1.Height)) * 2 / 2) / Screen.TwipsPerPixelY - 5
End With
RptDiversos.Action = 1
Else
If AccesoA("REPORTE MONITOREOS") Then
With RptDiversos
.ReportFileName = App.Path & "\Reportes\REP_MONITOREOS.rpt"
.Destination = 0
.WindowBorderStyle = 3
.WindowControlBox = True
.WindowMaxButton = False
.WindowMinButton = False
cadena = ""
For n = 1 To grid.Rows - 1
grid.Row = n
grid.Col = 1
cadena = cadena & grid.Text & ","
Next
If Trim(cadena) <> "" Then
cadena = left(Trim(cadena), Len(Trim(cadena)) - 1)
End If
RANGODATOS = "{MONITOREO.noMONITOREO} in [" & cadena & "]"
.ReplaceSelectionFormula RANGODATOS
.WindowTitle = "[ Reporte de Monitoreos ]"
.WindowHeight = MDIPrincipal.ScaleHeight / Screen.TwipsPerPixelY
.WindowWidth = MDIPrincipal.ScaleWidth / Screen.TwipsPerPixelX
.WindowLeft = MDIPrincipal.left / Screen.TwipsPerPixelX + 5
.WindowTop = (MDIPrincipal.Top + (MDIPrincipal.Height - (MDIPrincipal.ScaleHeight + MDIPrincipal.StatusBar1.Height)) * 2 / 2) / Screen.TwipsPerPixelY - 5
End With
RptDiversos.Action = 1
End If
End If
End If
End Sub
-
Asi no se puede pues!, danos mas info
Que version de crystal report utilizas?
Que error te sale?
Hubo algun problema al instalar crystalreports en w7?
-
Me da un error ´20572´en tiempo de ejecucion
error en file ...\Rep_Compañias.rpt (este es el nombre del archivo de Crystal Report)
Invalid negative value.
Tengo el Crystal Report Version 7, pero acabo de comprar la version 9 no se si puedo hacer algo con ese
-
No soy experto en crystal report pero parece que tu error es por tipo de dato, seguro que antes si te funcionaba, intenta ejecutar el reporte solo con valores positivos por que parece que el campo del reporte que has creado no acepta valores negativos.
En que linea de codigo te salta el error?
-
A ver, estoy metido en el tema de reportes, sin embargo, prefiero usar un modulo para realizar el llamado del reporte y no de la manera en que tu lo haces, seria excelente que subas el source para estudiar el error y asi poderte dar mejores respuestas. Por otro lado te dejo unos manuales para que te guies y aprendas mas del tema..
http://www.recursosvisualbasic.com.ar/htm/tutoriales/zip/crystal-reports-manual-2.zip
http://www.recursosvisualbasic.com.ar/htm/tutoriales/zip/manual-de-crystal-reports-version-11.rar
Ejemplo:
http://www.recursosvisualbasic.com.ar/htm/tutoriales/zip/crystal-report-11-vb-ejemplo.zip
-
El error me lo da en esta linea (linea roja) a la hora de solicitar el reporte
Private Sub BtMonitoreo_Click()
If grid.Rows = 1 Then
MsgBox ("No hay informacion para mostrar")
Else
If vUsuario = "SYSTEM" Then
With RptDiversos
.ReportFileName = App.Path & "\Reportes\REP_MONITOREOS.rpt"
.Destination = 0
.WindowBorderStyle = 3
.WindowControlBox = True
.WindowMaxButton = False
.WindowMinButton = False
cadena = ""
For n = 1 To grid.Rows - 1
grid.Row = n
grid.Col = 1
cadena = cadena & grid.Text & ","
Next
If Trim(cadena) <> "" Then
cadena = left(Trim(cadena), Len(Trim(cadena)) - 1)
End If
RANGODATOS = "{MONITOREO.noMONITOREO} in [" & cadena & "]"
.ReplaceSelectionFormula RANGODATOS
.WindowTitle = "[ Reporte de Monitoreos ]"
.WindowHeight = MDIPrincipal.ScaleHeight / Screen.TwipsPerPixelY
.WindowWidth = MDIPrincipal.ScaleWidth / Screen.TwipsPerPixelX
.WindowLeft = MDIPrincipal.left / Screen.TwipsPerPixelX + 5
.WindowTop = (MDIPrincipal.Top + (MDIPrincipal.Height - (MDIPrincipal.ScaleHeight + MDIPrincipal.StatusBar1.Height)) * 2 / 2) / Screen.TwipsPerPixelY - 5
End With
RptDiversos.Action = 1
Else
If AccesoA("REPORTE MONITOREOS") Then
-
No veo errores en el codigo, por tal motivo te sugiero que armes un proyecto nuevo con un solo form, conectandote a la BD y haciendo la ejecucion del reporte, subelo a un host y postealo... y asi podemos estudiarlo, de otra forma no creo que podamos ayudarte....!