0

我在 Microsoft Access 2007 中有 2 个表。

表名“BillDetail”和“BillMaster”

BillMaster 中包含的字段为:BillNO、BillType、Dt、PartyName

BillDetail 表中包含的字段为:BillNo(Ref) Serial No. Desc HSNCode Qty Rate。

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

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

请帮忙。我对 Windows 应用程序开发完全陌生。

4

3 回答 3

2

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

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

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

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

CodeProject - 如何将报告(即 rdlc 文件)与项目表单连接起来。

使用 ssrs 创建独立 .rdlc 报告的初学者指南

于 2013-03-01T06:59:11.720 回答
0

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

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

于 2013-08-06T05:51:50.727 回答
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;
        }
    }
}
于 2018-07-17T15:23:32.647 回答