2017-05-04 4 views
0

私はcrystal reportを使ってデータベースから値をプリントしようとしています。私はテーブルに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にのみ利用可能な2つのレコードがあります。しかし、それは4レコードをフェッチします。なぜ?? は親切にあなたが使用することもできクリスタルレポートで

+0

請求101にはtblBillsubに2つの同じレコードがあり、内部結合 – maSTAShuFu

+0

okを使用しています。何をするか正確な結果を得る – Veera

+0

多分あなたは 'left join'を試すことができます –

答えて

0

...私をサポートしています。

suppress if duplicate 
0

あなたが参加するため、内側の4つのレコードを取得します。両方のテーブルのデカルト積です。

いくつかの商品フィールドでレポートをグループ化し、グループヘッダーを使用して商品フィールドを表示したいと思っています。

詳細セクションを空白のままにすると、2つのレコードしか表示されません。しかし、詳細セクションを使用して請求フィールドを表示することができます。

関連する問題