Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Crystal报表中创建销售发票报表(将数据绑定到两个表中)_C#_Wpf_Crystal Reports 2010 - Fatal编程技术网

C# 如何在Crystal报表中创建销售发票报表(将数据绑定到两个表中)

C# 如何在Crystal报表中创建销售发票报表(将数据绑定到两个表中),c#,wpf,crystal-reports-2010,C#,Wpf,Crystal Reports 2010,我需要创建一个水晶报表,在两个表中显示数据(即,销售发票和销售发票项)。销售发票项与销售发票项之间有一个外来项。我需要这样显示报表 我创建了一个水晶报表来显示这样的数据。销售发票表中的数据已根据发票号正确分组。但它将显示每个销售发票行中销售发票项目表中的所有数据。我需要显示销售发票项目数据,该数据与销售发票的国外销售发票项目相关 然后我用下面的代码绑定它 private DataSet getData() { DataSetSalesReport ds = ne

我需要创建一个水晶报表,在两个表中显示数据(即,销售发票和销售发票项)。销售发票项与销售发票项之间有一个外来项。我需要这样显示报表

我创建了一个水晶报表来显示这样的数据。销售发票表中的数据已根据发票号正确分组。但它将显示每个销售发票行中销售发票项目表中的所有数据。我需要显示销售发票项目数据,该数据与销售发票的国外销售发票项目相关

然后我用下面的代码绑定它

   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_加载事件中调用上述方法

     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;
    }
我的数据集如下所示

运行之后,我得到了以下结果

在上述结果中;它在每个销售发票数据中显示以下所有销售发票项目数据

我需要显示与其销售发票项目数据相关的销售发票数据(销售发票项目包含销售发票的外键)。我需要您的帮助


谢谢

使用子报表解决此问题