[英]Difficulty in displaying a report
I'm developing for the first time in layers (Data, Business, Presentation), before I was doing it directly, now I want to show a report, these are the codes:我是第一次分层开发(数据、业务、演示),在我直接进行之前,现在我想显示一个报告,这些是代码:
//DATA
//================
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
namespace CapaDatos
{
public class DCategorias
{
public int IDCategoria { get; set; }
public string Categoria { get; set; }
public string Notas { get; set; }
public DataTable Mostrar()
{
DataTable TablaDatos = new DataTable("Categorias");
using (OleDbConnection OleDbConexion = new OleDbConnection())
{
try
{
OleDbConexion.ConnectionString = DConexion.ChronusBD;
OleDbConexion.Open();
OleDbCommand OleDbComando = new OleDbCommand
{
Connection = OleDbConexion,
CommandText = @"SELECT Categoria, Notas
FROM Categorias
ORDER BY Categoria",
CommandType = CommandType.Text
};
OleDbDataAdapter OleDbAdaptadorDatos = new OleDbDataAdapter(OleDbComando);
OleDbAdaptadorDatos.Fill(TablaDatos);
}
catch (Exception ex)
{
throw new Exception("Error al intentar ejecutar la instrucción. " + ex.Message, ex);
}
finally
{
OleDbConexion.Close();
}
}
return TablaDatos;
}
public List<DCategorias> Reporte()
{
DataTable tablaDatos = Mostrar();
List<DCategorias> categorias = new List<DCategorias>();
foreach (DataRow row in tablaDatos.Rows)
{
DCategorias categoria = new DCategorias();
categoria.Categoria = row["Categoria"].ToString();
categoria.Notas = row["Notas"].ToString();
categorias.Add(categoria);
}
return categorias;
}
}
//BUSINESS
//================
using System;
using System.Collections.Generic;
using System.Data;
using CapaDatos;
namespace CapaNegocio
{
public class NCategorias
{
public string Categoria { get; set; }
public string Notas { get; set; }
public static DataTable Mostrar()
{
return new DCategorias().Mostrar();
}
public static List<NCategorias> ReporteCategorias()
{
List<DCategorias> categoriasDatos = new DCategorias().Reporte();
List<NCategorias> categoriasNegocio = new List<NCategorias>();
foreach (DCategorias categoriaDatos in categoriasDatos)
{
NCategorias categoriaNegocio = new NCategorias();
//categoriaNegocio.IDCategoria = categoriaDatos.IDCategoria;
categoriaNegocio.Categoria = categoriaDatos.Categoria;
categoriaNegocio.Notas = categoriaDatos.Notas;
categoriasNegocio.Add(categoriaNegocio);
}
return categoriasNegocio;
}
}
//PRESENTATION
//================
//Form with ReportViewer and button BtnPrint
using Microsoft.Reporting.WinForms;
using CapaNegocio;
namespace CapaPresentacion.Formularios
{
public partial class FormReportes : Form
{
public List<NCategorias> reporte = new List<NCategorias>();
public FormReportes()
{
InitializeComponent();
}
private void BtnImprimir_Click(object sender, EventArgs e)
{
// ReportViewer => AreaReporte
AreaReporte.LocalReport.DataSources.Clear();
List<NCategorias> categorias = NCategorias.ReporteCategorias();
DataTable tablaCategorias = new DataTable("Categorias");
tablaCategorias.Columns.Add("Categoria", typeof(string));
tablaCategorias.Columns.Add("Notas", typeof(string));
foreach (NCategorias categoria in categorias)
{
DataRow fila = tablaCategorias.NewRow();
fila["Categoria"] = categoria.Categoria;
fila["Notas"] = categoria.Notas;
tablaCategorias.Rows.Add(fila);
}
AreaReporte.LocalReport.DataSources.Clear();
AreaReporte.LocalReport.DataSources.Add(new ReportDataSource("CategoriasDS", tablaCategorias));
AreaReporte.LocalReport.ReportEmbeddedResource = "ChronusFutsal.CapaPresentacion.Reportes.RepCategorias.rdlc";
// Hacemos un refresh al reportViewer
AreaReporte.RefreshReport();
}
}
I have the report named RepCategorias.rdlc with data source Object and Dataset named CategoriaDS from CapaNegocio.NCategorias with the fields Categoria and Notas.我的报告名为 RepCategorias.rdlc,数据源为 Object,数据集名为 CategoriaDS,来自 CapaNegocio.NCategorias,字段为 Categoria 和 Notas。 I get error in the AreaReporte.RefreshReport() System.NullReferenceException Please could someone tell me the error?我在 AreaReporte.RefreshReport() System.NullReferenceException 中出错 请有人能告诉我错误吗?
I found the error.. I just had to change the version of SqlServer.Type and it worked.我发现了错误。我只需要更改 SqlServer.Type 的版本就可以了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.