1

我正在使用 Visual Studio 2010 和 C# 构建一个查询两个数据库的应用程序,然后生成一个也有一个子报表的报表。主报表将三个参数传递给子报表。子报告在主报告的每条记录上都是空白的。因此,我将 NoRowsMessage 设置为“未返回任何内容”以确保子报表确实在显示。现在,子报告不是空白,而是返回我的消息。我已经通过预览数据和输入参数值来测试 tableadapter。结果显示很好。我的猜测是,由于某种原因,参数没有正确传递给子报表。我尝试将参数设置为允许空值并允许空值。没有什么变化。我已经设置了LocalReport。SubreportProcessing 到一个新的 SubreportProcessingEventHandler。我在该事件处理程序中为子报表设置了数据源。我不知道我错过了什么。任何建议都会有所帮助。

这是来自主窗体的代码

private void JointAgreement_Load(object sender, EventArgs e) { // TODO:这行代码将数据加载到“termLookup.ACADEMICCALENDAR”表中。您可以根据需要移动或移除它。this.aCADEMICCALENDARTableAdapter1.Fill(this.termLookup.ACADEMICCALENDAR); // TODO: 这行代码将数据加载到“yearLookup.ACADEMICCALENDAR”表中。您可以根据需要移动或移除它。this.aCADEMICCALENDARTableAdapter.Fill(this.yearLookup.ACADEMICCALENDAR); }

    private void button1_Click(object sender, EventArgs e)
    {
        string year = comboBox1.Text;
        string term = comboBox2.Text;
        Classes.Functions.GetStudentList(year, term);
        List<ReportParameter> paramList = new List<ReportParameter>();
        paramList.Add(new ReportParameter("Year", year, false));
        paramList.Add(new ReportParameter("Term", term, false));
        reportViewer1.LocalReport.SetParameters(paramList);
        reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(SetSubDataSource);
        this.joint_Agreement_InfoTableAdapter.Fill(this.jointAgreementInfo.Joint_Agreement_Info);
        this.reportViewer1.RefreshReport();
    }

    public void SetSubDataSource(object sender, SubreportProcessingEventArgs e)
    {

        e.DataSources.Add(new ReportDataSource("StudentDetail", tRANSCRIPTDETAILBindingSource));

    }
4

1 回答 1

0

我实际上已经找到了我自己问题的答案。我不知道出了什么问题,所以我不知道要问什么问题。我在以下链接的 stackoverflow 上找到了答案。 在 VS 2010 RDLC 中将报表参数传递给子报表 谢谢大家谁试图帮助。

于 2013-08-02T14:39:20.700 回答