actualizr reporte desde visual basic

Respuesta de
a
Usuario
Hola Amigo de TodoExpertos, 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
Avatar
Experto
Hola
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.
Saludos,
Avatar
Experto
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
Usuario
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.
Avatar
Experto
Lo que coloque es la manera de actualizar los datos
Usuario
¿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!
Avatar
Experto
en el load de la forma
Usuario
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!
Avatar
Experto
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
Usuario
Como te dije... aquí finalizo mi pregunta.. aunque sigo en las mismas condiciones...:(..

Pero no importa muchas gracias por tu ayuda!