如何使用ReportViewer Control for Windows Application创建报表

时间:2013-03-01 06:52:25

标签: c# winforms

我在Microsoft Access 2007中有2个表。

表名“BillDetail”和“BillMaster”

BillMaster中包含的字段是:BillNO,BillType,Dt,PartyName

BillDetail表中包含的字段是:BillNo(Ref)序列号描述HSNCode数量率。

我需要从两个表中获取数据。主记录应显示在标题中,所有相关项目应以表格形式显示。我最后想把这些信息作为账单打印出来。

我的基本需求是不使用水晶报告。我在互联网上搜索了很多,并找到了一个使用ReportViewer Control的解决方案。但不幸的是,我不知道如何使用此控件构建报告。请帮我生成报告或发布一些教程链接。

请帮忙。我是Windows应用程序开发的新手。

3 个答案:

答案 0 :(得分:2)

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

rdl代表“报告定义语言”,“C”代表“客户报告”,代表“服务器报告”

因此,如果您没有安装报告服务器,最好使用rdlc并将Access 2007数据库作为报告的数据源附加。

这里有几个用于创建rdlc报告文件和使用报告查看器控件的教程:

CodeProject - How to connect a report i.e. rdlc file with the project form.

Beginner's guide for creating standalone .rdlc reports with ssrs

答案 1 :(得分:0)

在这里,您可以找到一个示例,如何使用代码示例在C#中生成RDLC报告...

http://www.dotnetsharepoint.com/2013/08/how-to-create-rdlc-report-in-c-windows.html#.UgCO6pKfjwg

答案 2 :(得分:0)

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