我尝试使用水晶报告打印数据库中的值。
我的代码在这里。
private void frmPrintBill_Load(object sender, EventArgs e)
{
try
{
SqlCon = objDB.DBConnection();
Query = "Select p.billno, p.productid, p.productname, p.customerrate, p.quantity, p.amount, p.alert, s.noofitems, s.totamount from tblBill as p inner join tblBillsub as s on p.billno = s. billno where p.billno= '101' ";
StrPath = AppDomain.CurrentDomain.BaseDirectory + "\\Reports\\CrystalReport1.rpt";
ReportDocument ObjRepDoc = new ReportDocument();
SqlDa = new SqlDataAdapter(Query, SqlCon);
DataTable dt = new DataTable();
dt.Clear();
SqlDa.Fill(dt);
CrystalReport1 rep1 = new CrystalReport1();
ObjRepDoc.Load(StrPath);
ObjRepDoc.SetDataSource(dt);
crystalReportViewer1.ReportSource = ObjRepDoc;
crystalReportViewer1.Refresh();
}
catch (Exception ex)
{ MessageBox.Show(ex.ToString()); }
}
在我的数据库表中,有两个记录仅适用于特定的billno。但它取得4条记录。为什么?? 请支持我..
答案 0 :(得分:0)
在水晶报告中,您还可以使用:
suppress if duplicate
答案 1 :(得分:0)
由于内部联接,您获得了4条记录。它是两个表格的笛卡尔积。
我了解您希望按某些产品字段对报告进行分组,并使用组标题显示产品字段。
如果您将详细信息部分留空,您将只看到两条记录。但您可以使用详细信息部分显示帐单字段。