2017-05-04 52 views
0

我试图用数据库打印水晶报表的值。我在我的表中只有2条记录,但它从数据库中提取4条记录

我的代码在这里。

 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

bill 101在tblBillsub中有两个相同的记录,您正在使用内部连接 – maSTAShuFu

+0

ok。做什么得到确切的结果 – Veera

+0

也许你可以尝试'左加入' –

回答

0

在水晶报表,您还可以使用:

suppress if duplicate 
0

你得到4条内的,因为加入。它是两张表的笛卡尔积。

我知道您希望按某个产品字段对报告进行分组,并使用组标题显示产品字段。

如果您将详细信息部分留空,则只会看到两条记录。但是您可以使用详细信息部分显示帐单字段。

相关问题