RDLC 收集和呈现数据

RDLC gathering and presenting data

最近在中断几年后重新开始编程,并且正在构建一个 POS(销售点)软件应用程序供我自己使用。我虽然该应用程序非常接近第 1 版 Beta 版本.....直到我 运行 进入报告方面。

通过大量的教程和演练,我几乎none更清楚如何实现我需要报告做的事情。

我想要实现的是 EOD(日终)报告,而我 运行 遇到的问题是如何呈现来自 4 个不同查询的数据。

我已经尝试过业务对象方法,这适用于在设计时设置的第一个级别,但其余部分 return 没有。

有没有更好的方法(更容易理解)来实现这个目标? 有人可以推荐 tutorial/Walkthrough 使用来自不同对象或表格的数据对报告建模吗? 从代码中提取 带有停靠报告查看器的报告查看器表单

 public partial class ReportViewer : Form
{

    private List<VO.TotSalesByDept> deptSales = new List<VO.TotSalesByDept>();
    private VO.TotalSales daySales = new VO.TotalSales();
    private List<VO.TotSalesByTender> tendSales = new List<VO.TotSalesByTender>();
    private List<VO.TotSalesByGroup> grpSales = new List<VO.TotSalesByGroup>();

    private BUS.UserBUS _userBUS = new BUS.UserBUS();

    public ReportViewer()
    {
        InitializeComponent();
        //daySales = _userBUS.getSalesTot(DateTime.Now);

        deptSales = _userBUS.getDeptSales(DateTime.Now);
        //tendSales = _userBUS.getTendSales(DateTime.Now);
        //grpSales = _userBUS.getGroupSales(DateTime.Now);
    }

    private void ReportViewer_Load(object sender, EventArgs e)
    {
        //reportViewer1.LocalReport.SubreportProcessing += new Microsoft.Reporting.WinForms.SubreportProcessingEventHandler(LocalReport_SubreportProcessing);

        //this.TotalSalesBindingSource.DataSource = daySales ;
        //this.TotSalesByGrp.DataSource = grpSales;
        //this.TotSalesByTender.DataSource = tendSales;
        this.TotSalesByDeptBindingSource.DataSource = deptSales;
        this.reportViewer1.RefreshReport();
    }

    //private void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)
    //{
    //    e.DataSources.Clear();
    //    e.DataSources.Add(new ReportDataSource());
    //}


}

表单调用的业务层

 public List<VO.TotSalesByDept> getDeptSales(DateTime _now)
    {
        List<VO.TotSalesByDept> deptSales = new List<VO.TotSalesByDept>();
        DataTable dataTable = new DataTable();
        dataTable = _userDAO.getTSalesByDept(_now.Date);

        foreach (DataRow dr in dataTable.Rows)
        {
            VO.TotSalesByDept deptSale = new VO.TotSalesByDept();
            deptSale.Dept = dr["Department"].ToString();
            deptSale.RepQty = Int32.Parse(dr["Total QTY"].ToString());
            deptSale.RGSales = decimal.Round(decimal.Parse(dr["TotItemSales"].ToString()),2,MidpointRounding.AwayFromZero);

            deptSales.Add(deptSale);
        }
        return deptSales;
    }

不确定您还需要看什么? 提前谢谢了 史蒂夫

以下 link 使我能够开始研究解决方案

http://www.c-sharpcorner.com/UploadFile/robo60/StandaloneRDLCReports11142007183516PM/StandaloneRDLCReports.aspx

谢谢 史蒂夫