Paso como origen de datos datatable al crystal report y reporte en blanco.
-
Friday, June 01, 2012 10:08 AM
Buenas,
no se por que me sale el reporte en blanco solo con los campos de cabecera. Tenemos esto:
Public Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click Dim rpt As New reporte Try Dim idEmpresa As Integer If RadioButton1.Checked Then idEmpresa = 1 Else idEmpresa = 2 End If ' Obtenemos el objeto DataTable. ' Dim dt As DataTable = Me.GetDataTable(idEmpresa) DataGridView1.DataSource = dt Dim formulario As New generar_reporte rpt.SetDataSource(dt) formulario.CrystalReportViewer1.ReportSource = rpt formulario.CrystalReportViewer1.Dock = DockStyle.Fill Dim frmreport As New Form() With frmreport .Controls.Add(formulario.CrystalReportViewer1) .Text = "Generar Reporte" .WindowState = FormWindowState.Maximized .ShowDialog() End With Catch ex As Exception MessageBox.Show(ex.Message) End Try
El datatable(dt) esta correcto ya que el grid me lo carga correctamente. Luego le paso este dt al crystal report y no me carga nada.
Que puede ocurrir?
Gracias
All Replies
-
Tuesday, June 05, 2012 8:42 AM
Buenas el boton que me genera el reporte tiene este codigo:
Public Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click Dim rpt As New reporte Try Dim fechadesde As String Dim idEmpresa As Integer Dim fechahasta As String If RadioButton1.Checked Then idEmpresa = 1 Else idEmpresa = 2 End If If txtdesde.Text = "" Then fechadesde = Convert.ToString("2012/01/01") Else fechadesde = txtdesde.Text End If If txthasta.Text = "" Then fechahasta = Convert.ToString("2099/01/01") Else fechahasta = txthasta.Text End If ' Obtenemos el objeto DataTable. ' Dim dt As DataTable = Me.GetDataTable(idEmpresa, fechadesde, fechahasta) DataGridView1.DataSource = dt Dim ds As New DataSet ds.Tables.Add(dt) Dim formulario As New generar_reporte rpt.SetDataSource(dt) formulario.CrystalReportViewer1.ReportSource = rpt formulario.CrystalReportViewer1.Dock = DockStyle.Fill Dim frmreport As New Form() With frmreport .Controls.Add(formulario.CrystalReportViewer1) .Text = "Generar Reporte" .WindowState = FormWindowState.Maximized .ShowDialog() End With Catch ex As Exception MessageBox.Show(ex.Message) End Try
Y aqui la funcion que obtiene los datos:
Private Function GetDataTable(ByVal idEmpresa As Integer, ByVal fechadesde As String, ByVal fechahasta As String) As DataTable Try Using cnn As New MySqlConnection("Server=localhost;Database=grupomontes;Uid=root;Pwd=;") Dim cmd As MySqlCommand = cnn.CreateCommand() cmd.CommandText = _ "SELECT a.Fecha AS fecha, a.Num_Albaran AS Num_Albaran," & _ "e.Razon_social_empresa AS Razon_Social_Empresa, c.Razon_Social AS Razon_Social, p.Nombre AS Nombre, a.neto AS Neto " & _ "FROM Productos AS p INNER JOIN (Empresas AS e " & _ "INNER JOIN (Clientes AS c INNER JOIN Albaranes AS a " & _ "ON c.Id_Clientes = a.Id_Cliente) ON e.Id_Empresa = a.Id_Empresa) " & _ "ON p.Id_Producto = a.Id_Producto " & _ "WHERE e.Id_Empresa=@idEmpresa and a.fecha >= @fechadesde and a.fecha <= @fechahasta;" cmd.Parameters.AddWithValue("@idEmpresa", idEmpresa) cmd.Parameters.AddWithValue("@fechadesde", fechadesde) cmd.Parameters.AddWithValue("@fechahasta", fechahasta) Dim da As New MySqlDataAdapter(cmd) Dim dt As New DataTable("albaranes") da.Fill(dt) Return dt End Using Catch ' Devolvemos la excepción al procedimiento llamador Throw End Try End Function
Somo me carga los datos que no estan relacionados con otras tablas. El resto de campos me aparecen vacios en el reporte. Los unicos campos no relacionados con ninguna otra tabla son fecha, id_albaran y neto.
Para razon_social empresa (relacionado con la tabla empresa), razon_social (relacionado con la tabla clientes), nombre (relacionado con la tabla produttos) me aparece esos campos del reporte vacios.
Que puede ser?
-
Friday, June 29, 2012 2:49 PMla consulta te trae todos los datos? por que desde alli puede ser el error depura tu codigo

