首先让我告诉你一件事,我从未使用任何报告。我已阅读有关此主题的所有相关问题和答案。但找不到任何具体的解决方案。
我的问题是我有一个非常简单的报告,我必须从数据库的视图中显示一行。为了拥有该行,我创建了一个业务对象(实体)。那个实体完美地抓住了我的排。我也尝试了水晶报告和rdlc报告。但最后我会选择一个。所以我的解决方案中有一份水晶报告。在我的aspx表单中,我采用了一个报表查看器。但我不知道如何让这三件事情协同工作,即报告,报告查看器以及持有信息的对象或实体。
现在代码就在这里
水晶报告的名称是FormSaleMoneyReceipt.rpt
我的aspx页面是
<form id="form1" runat="server">
<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>
<div id = "SearchPlace">
<label for ="">Candidate ID:</label><asp:TextBox runat = "server" ID = "txtCandidateId"></asp:TextBox>
<label for ="">Form SL#:</label><asp:TextBox runat = "server" ID = "txtFormSl"></asp:TextBox>
<asp:Button runat = "server" ID = "btnShowReport" Text = "Show Report"
onclick="btnShowReport_Click" />
</div>
<div id = "ReportViewrHolder">
<CR:CrystalReportViewer ID="CrystalReportViewerMRN" runat="server" AutoDataBind="true" />
</div>
</form>
我的代码隐藏文件是
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;
}
}
请给我一个解决方案,我迫切需要解决方案。提前谢谢所有聪明的技术爱好者。
答案 0 :(得分:1)
您必须创建一个ReportSource
对象并将其分配给您的报告,如here所述。
CrystalReportViewerMRN.ReportSource = myReportSource;