如何使用Windows应用程序的ReportViewer控件创建报表
本文关键字:控件 创建 报表 ReportViewer 何使用 Windows 应用程序 | 更新日期: 2023-09-27 18:01:45
我在Microsoft Access 2007中有2个表
表名"BillDetail"answers"BillMaster"
BillMaster包含的字段有:BillNO, BillType, Dt, PartyName
BillDetail表中包含的字段有:BillNo(Ref) Serial No。Desc HSNCode数量率。
我需要从两个表中获取数据。主记录应显示在标题中,所有相关项目应以表格形式显示。最后,我想把这些信息打印成一张钞票。
我的基本需求是不使用水晶报告。我在互联网上搜索了很多,找到了一个使用ReportViewer控件的解决方案。但不幸的是,我不知道如何使用此控件构建报告。请帮助我生成报告或张贴一些教程链接。
请帮助。我对Windows应用程序开发完全是新手。
报表查看器控件能够呈现在rdl
或rdlc
文件中定义的报表。
rdl
表示"报告定义语言","C"表示"客户端报告",即vs。"服务器报告"
因此,如果您没有安装报表服务器,您可能最好使用rdlc
并将Access 2007 DB附加为报表的数据源。
rdlc
报表文件和使用报表查看器控件的教程:
CodeProject -如何连接一个报告,即rdlc文件与项目表单。
使用ssrs创建独立.rdlc报告的初学者指南
在这里你可以找到一个例子,如何在c#中生成RDLC报告的代码示例…
http://www.dotnetsharepoint.com/2013/08/how-to-create-rdlc-report-in-c-windows.html .UgCO6pKfjwg
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;
using Microsoft.Reporting.WinForms;
namespace RDLC
{
public partial class RD : Form
{
public RD()
{
InitializeComponent();
}
private void RD_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt = GetData("select * from tbl_Admission_Form");
ReportDataSource datasource = new ReportDataSource("DataSet1", dt);
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.ProcessingMode = ProcessingMode.Local;
reportViewer1.LocalReport.ReportEmbeddedResource = "RDLC.Report1.rdlc";
reportViewer1.LocalReport.DataSources.Add(datasource);
//this.reportViewer1.RefreshReport();
this.reportViewer1.RefreshReport();
}
private DataTable GetData(string query)
{
string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
SqlConnection con = new SqlConnection(conString);
con.Open();
SqlCommand cmd = new SqlCommand(query);
cmd.Connection = con;
cmd.ExecuteNonQuery();
cmd.Dispose();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable ds = new DataTable();
sda.Fill(ds);
return ds;
}
}
}