关于asp.net:如何在水晶或rdlc报表中绑定c#的业务对象?

how can i bind business object of c# in crystal or rdlc report?

首先让我告诉你一件事,我还没有处理过任何类型的报告。我已阅读有关此主题的所有相关问题和答案。但找不到任何具体的解决方案。

我的问题是我有一个非常简单的报告,我必须从数据库的视图中显示一行。为了获得该行,我创建了一个业务对象(实体)。那个实体完美地支撑着我的行。我也尝试过水晶报告和rdlc报告。但最后我只会选择一个。所以我的解决方案中有一份水晶报告。在我的 aspx 表单中,我使用了一个报告查看器。但我不知道如何使这三件事协同工作,即报表、报表查看器和保存信息的对象或实体。

现在代码放在这里

水晶报表的名称是 FormSaleMoneyReceipt.rpt

我的 aspx 页面是

1
2
3
4
5
6
7
8
9
10
11
12
<form id="form1" runat="server">
</asp:SqlDataSource>

    <label for ="">Candidate ID:</label></asp:TextBox>
    <label for ="">Form SL#:</label></asp:TextBox>
    <asp:Button runat ="server" ID ="btnShowReport" Text ="Show Report"
        onclick="btnShowReport_Click" />


    <CR:CrystalReportViewer ID="CrystalReportViewerMRN" runat="server" AutoDataBind="true" />

</form>

我的文件后面的代码是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
protected void Page_Load(object sender, EventArgs e)
{
}

protected void btnShowReport_Click(object sender, EventArgs e)
{
    int candidateId = 0;

    string formSl = txtFormSl.Text;
    ViewFormSaleMoneyReceiptEntity formSaleMoneyReceiptEntity = new ViewFormSaleMoneyReceiptEntity();
    if(txtCandidateId.Text !="")
    {
        candidateId = Convert.ToInt32(candidateId);
        formSaleMoneyReceiptEntity = ViewFormSaleMoneyReceipt_DAO.GetMoneyReceiptByID(candidateId);
        //CrystalReportViewerMRN.ReportSource = formSaleMoneyReceiptEntity;
    }
    if(txtFormSl.Text!="")
    {
        formSaleMoneyReceiptEntity = ViewFormSaleMoneyReceipt_DAO.GetMoneyReceiptByFormSL(formSl);
        //CrystalReportViewerMRN.ReportSource = formSaleMoneyReceiptEntity;
    }
}

拜托,请给我一个解决方案,我迫切需要解决方案。提前感谢所有智能技术极客。


您必须创建一个 ReportSource 对象并将其分配给您的报告,如此处所述。

CrystalReportViewerMRN.ReportSource = myReportSource;