2017-05-04 51 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條內的,因爲加入。它是兩張表的笛卡爾積。

我知道您希望按某個產品字段對報告進行分組,並使用組標題顯示產品字段。

如果您將詳細信息部分留空,則只會看到兩條記錄。但是您可以使用詳細信息部分顯示帳單字段。

相關問題