2015-12-30 60 views
2

我需要創建一個水晶報表來顯示兩個表中的數據(即Sales_Invoice和Sales_Invoice_Items).Sales_Invoice_Items有一個來自Sales_Invoice.I的外國需要像這樣的報告顯示,如何在Crystal Report中創建銷售發票報表(將數據綁定到兩個表中)

enter image description here

我創建了一個水晶報表中顯示這樣的數據。 Sales_Invoice表中的數據相對於invoice_no進行了適當分組。但其顯示在每個Sales_Invoice row.I Sales_Invoice_Items表中的所有數據需要Sales_Invoice_Items

enter image description here

然後我把它綁定與下面的代碼相對於顯示Sales_Invoice_Items數據Sales_Invoice的外交。

private DataSet getData() 
    { 
     DataSetSalesReport ds = new DataSetSalesReport(); 
     try 
     { 
      using (SqlConnection con = new SqlConnection(DBCon.conStr)) 
      { 
       con.Open(); 
       SqlCommand cmd = new SqlCommand(AppConstraints.GET_SALES_REPORT); 
       cmd.Connection = con; 
       cmd.CommandType = CommandType.StoredProcedure; 

       SqlDataReader rd = cmd.ExecuteReader(); 
       decimal slno = 1; 
       while (rd.Read()) 
       { 
        DataRow dr = ds.Tables["DataTable1"].NewRow(); 
        dr["Id"] = rd["Id"].ToString(); 
        dr["invoiceno"] = rd["invoiceno"].ToString(); 
        dr["invoice_date"] = rd["invoice_date"].ToString(); 
        dr["delivery_date"] = rd["delivery_date"].ToString(); 
        dr["account"] = rd["account"].ToString(); 
        dr["customer"] = rd["customer"].ToString(); 
        dr["gross_amount"] = rd["gross_amount"].ToString(); 
        dr["discount"] = rd["discount"].ToString(); 
        dr["total_tax"] = rd["total_tax"].ToString(); 
        dr["net_amount"] = rd["net_amount"].ToString(); 
        dr["cash_discount"] = rd["cash_discount"].ToString(); 
        dr["freight_charge"] = rd["freight_charge"].ToString(); 
        dr["additional"] = rd["additional"].ToString(); 
        dr["paid"] = rd["paid"].ToString(); 
        dr["balance"] = rd["balance"].ToString(); 
        dr["balancepaid_date"] = rd["balancepaid_date"].ToString(); 
        dr["note"] = rd["note"].ToString(); 
        dr["total_amount"] = rd["total_amount"].ToString(); 
        dr["payment_mode"] = rd["payment_mode"].ToString(); 
        dr["ac"] = rd["ac"].ToString(); 
        dr["reg_date"] = rd["reg_date"].ToString(); 
        dr["last_update"] = rd["last_update"].ToString(); 
        dr["invoice_note"] = rd["invoice_note"].ToString(); 
        dr["slno"] = slno++.ToString(); 
        ds.Tables["DataTable1"].Rows.Add(dr); 

        using (SqlConnection con1 = new SqlConnection(DBCon.conStr)) 
        { 
         con1.Open(); 
         SqlCommand cmd1 = new SqlCommand(AppConstraints.GET_SALES_ITEMS_REPORT); 
         cmd1.Connection = con1; 
         cmd1.CommandType = CommandType.StoredProcedure; 
         cmd1.Parameters.AddWithValue("@Id", rd["Id"].ToString()); 
         SqlDataReader rd1 = cmd1.ExecuteReader(); 
         decimal j = 1; 
         while(rd1.Read()) 
         { 
          DataRow dr1 = ds.Tables["DataTable2"].NewRow(); 
          dr1["Id"] = rd1["Id"].ToString(); 
          dr1["invoice_id"] = rd["Id"].ToString(); 
          dr1["item_name"] = rd1["item_name"].ToString(); 
          dr1["barcode"] = rd1["barcode"].ToString(); 
          dr1["rate"] = rd1["rate"].ToString(); 
          dr1["discount"] = rd1["discount"].ToString(); 
          dr1["qty"] = rd1["qty"].ToString(); 
          dr1["unit"] = rd1["unit"].ToString(); 
          dr1["tax"] = rd1["tax"].ToString(); 
          dr1["net"] = rd1["net"].ToString(); 
          dr1["mrp"] = rd1["mrp"].ToString(); 
          dr1["slno"] = j++.ToString(); 

          ds.Tables["DataTable2"].Rows.Add(dr1); 
         } 
        } 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 

     return ds; 
    } 

的我在WPF窗口中Window_Loaded事件致電上述方法

 private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     ReportDocument report = new ReportDocument(); 
     report.Load("rptSalesReport.rpt"); 
     report.SetDataSource(getData()); 
     PrintSalesReport.ViewerCore.ReportSource = report; 
     PrintSalesReport.ToggleSidePanel = SAPBusinessObjects.WPF.Viewer.Constants.SidePanelKind.None; 
    } 

我的數據集如下所示

enter image description here

它運行後我得到了以下結果

enter image description here

以上結果;它在每個Sales_Invoice數據中顯示下面的所有Sales_invoice_Items數據。

我需要顯示與Sales_Invoice_Items數據相關的Sales_Invoice數據(Sales_Invoice_Items包含Sales_Invoice的外鍵)。我需要您的幫助來執行此操作。

謝謝

回答

0

使用Sub報表來解決這個問題enter image description here

相關問題