Actualizr reporte desde visual basic

Estoy diseñando un software de gestión, el cual genera reportes en el Crystal que trae incluido el Visual Studio 2008. Tengo una base de Datos que tiene 3 tablas asociadas, y al ingresarle los datos manualmente para probar como funcionan los reportes, no hay ningún problema.
El problema es que cuando ejecuto la aplicación y comienzo a llenar las tablas de la Base de Datos(sql 2005 Express), y quiero mostrar los nuevos datos ingresados en tiempo de ejecución, solo me muestra los que añadí manualmente al principio para probar los reportes..
Que se puede hacer en este caso
Este es el código del Reporte!(Los Refresh los añadí para ver si actualizaba datos, pero igual no pasa nada)
PrivateSub CrystalReportViewer1_Load(ByVal sender As System. Object, ByVal e As System. EventArgs) Handles CrystalReportViewer1.Load
'Primero Creamos los objetos que vamos a utilizar para poblar un DataGridView
' El GridView que esta en el formulario se llama "Datos"
' Error "The value's length for key 'data source' exceeds it's limit of '128'"
' Creamos los componenetes para obtener los datos.
ReporteTrabajador1.Refresh()
Dim CadenaConexion AsNew SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\Mac Leopard\Escritorio\Aceros_SOLDESP\Aceros_SOLDESP\B ASE.mdf;Integrated Security=True;User Instance=True")
Dim DatosDS AsNew BASEDataSet
Dim DatosDAC AsNew SqlDataAdapter("SELECT * FROM TB_Trabajadores ", CadenaConexion)
Dim DatosDAP AsNew SqlDataAdapter("SELECT * FROM TB_Horas ", CadenaConexion)
' Utilizamos un TryCatch para capturar un error y asi no pueda afectar a la Base de datos
Try
' Abrimos la conexion y poblamos el DataSet y posteriormente cerramos la conexion
' -NOTA- : Recuedo que estoy usando Adaptadores para realizar consultas a la base de datos
' de forma desconectada, para no consumir recursos.
CadenaConexion. Open()
ReporteTrabajador1. Refresh()
DatosDAC. Fill(DatosDS.TB_Trabajadores)
ReporteTrabajador1. Refresh()
DatosDAP. Fill(DatosDS.TB_Horas)
CadenaConexion. Close()
' Cargamos los datos recolectados en un Crystal Report y lo cargamos al CrystalView
ReporteTrabajador1.Refresh()
Dim miReporte AsNew ReporteTrabajador
MiReporte. SetDataSource(DatosDS)
ReporteTrabajador1. Refresh()
Me.CrystalReportViewer1.ReportSource = miReporte
' Liberamos memoria
DatosDS. Dispose()
DatosDAC. Dispose()
DatosDAP. Dispose()
Catch ex As Exception
MsgBox("Mensaje : " & ex.Message)
EndTry
Endomo puedo actualizar mis reportes desde visual basic(el código).
Necesito el código...
Ejemplo:
crytalreport1.reportfilename = app.path & "\NOMBRE DEL REPORTE.rpt" =LLAMA AL REPORTE
crystalreport1.printreport =imprime el reporte en pantalla
Y COMO ACTUALIZO EL REPORTE CUANDO HAGO MODIFICACIONES EN VISUAL BASIC YA SEA ALTAS BAJAS; ETC.
Espero y me puedan ayudar necesito el código
gracias por su atención.
Atentamente. Evr
NOTA: mis reportes los hice en crystal report

1 Respuesta

Respuesta
1
Si entiendo bien tu código debes al reporte aosicarle a la propiedad DataSource el Dataset en donde tienes los datos que vienen de la base de datos y con eso debe mostrar los datos correctos.
No explicas como creaste los reportes, si lo hiciste arrastrando la tabla directamente sobre el reporte, no te puedo ayudar porqyue yo no hago los reportes de esa manera, sino que creo un dataset en VS con la estructura de los datsoq ue le llegan al reporte y luego en un formulario hago la consulta con al etsructura del dataset y lo paso al datasource del reporte.
CrReport = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
CrReport.Load(Server.MapPath("~/Reportes/crProcesos.rpt")) '<span style="font-weight: bold;">' AQUI VA EL NOMBRE CON LA RUTA DEL REPORTE</span>
CrReport.SetDataSource(dtEncuentros)
CrystalReportViewer1.ReportSource = CrReport
Para crear un reporte cree un form en donde le agregue el crystal report viewer, luego le añadí un reporte que había creado como parte del proyecto. Y después le añadí el código que estaba arriba...
La base de datos guarda los datos que añado pero el reporte no los actualiza.
Lo que coloque es la manera de actualizar los datos
¿Y en que lado coloco ese código?...
Sorry por mi ignorancia, pero es que solo llevo 3 semanas en esto...
Muchas gracias por tu ayuda!
en el load de la forma
Solo una cosa más.. el código que pusite allí va al principio del load, ¿o al final del código que yo puse?...
Y en el código que pusiste:
CrReport = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
CrReport.Load(Server.MapPath("~/Reportes/crProcesos.rpt")) '<span style="font-weight: bold;">' AQUI VA EL NOMBRE CON LA RUTA DEL REPORTE</span>
CrReport.SetDataSource(dtEncuentros)
CrystalReportViewer1.ReportSource = CrReport
Las variables :
¿CrReport es mi Reporte?
Y ademas me dice que en la parte del Server que no se ha declarado... como declaro eso...
Perdón por mi ignorancia.. pero te puntuare con la máxima calificación aunque no halla resuelto mi problema, pero tu disponibilidad es de envidiar...
Gracias!
Dim CrReport As New CrystalDecisions.CrystalReports.Engine.ReportDocument
CrReport = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
CrReport.Load("C:\larutadetudiscoduroendodneestaelreporte\elnombredetureporte.rpt")
CrReport.SetDataSource(dtEncuentros) 
CrystalReportViewer1.ReportSource = CrReport
CrystalReportViewer1= nombre del objeto reportviewer en tu formulario

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas