如何使用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应用程序开发完全是新手。

如何使用Windows应用程序的ReportViewer控件创建报表

报表查看器控件能够呈现在rdlrdlc文件中定义的报表。

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;
        }
    }
}