在指定位置找不到子报表“子报表” RDLC 子报告

问题描述

我正在研究 WPF RDLC 子报告部分。我在子报告中遇到问题。这是问题

在指定位置找不到子报表“子报表” F:\Upwork\Backup 21.01.09\RDLC_Subreport_WPF \NewSubreportWPF\SubReport.rdlc。请确认子报表有 已发布且名称正确。

这是问题的截图.... Report issue screenshot

这是可以获取所有文件的存储库--https://github.com/izzathali/RDLC_Subreport_WPF

这是主窗口 Main Window

这是MainReport1的截图 MainReport1

这是子报告 SubReport

这是数据集1 DataSet1

参数子报告 Parameter SubReport

子报表属性 enter image description here

这是MainWindow.xaml.cs的代码

    private void btnExport_Click(object sender,RoutedEventArgs e)
    {
        ShowReport();
    }
    private void ShowReport()
    {
        DataTable dtOrders = MainReport(Convert.ToInt32(txtSearch.Text));
        ReportViewer viewer = new ReportViewer();
        viewer.Reset();
        viewer.LocalReport.ReportPath = @"F:\Upwork\Backup 21.01.09\RDLC_Subreport_WPF\NewSubreportWPF\MainReport1.rdlc";
        ReportDataSource ds = new ReportDataSource("DataSet1",dtOrders);
        viewer.LocalReport.DataSources.Add(ds);
        viewer.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(OrderDetailsSubreportProcessing);
        viewer.LocalReport.Refresh();

        string[] streamIds;
        Warning[] warnings;

        string mimeType = string.Empty;
        string encoding = string.Empty;
        string extension = string.Empty;

        string fileName = @"E:\Report.pdf";
        byte[] bytes = viewer.LocalReport.Render("PDF",null,out mimeType,out encoding,out extension,out streamIds,out warnings);
        using (FileStream stream = new FileStream(fileName,FileMode.Create))
        {
            stream.Write(bytes,bytes.Length);
        }
        File.WriteallBytes(fileName,bytes);
        System.Diagnostics.Process.Start(fileName);
    }

    private DataTable MainReport(int OrderID)
    {
        
        DataTable dt = new DataTable();
        string conStr = @"Data Source=IZZATH-BIN-IBRA\sqlEXPRESS2019;Initial Catalog=POS1;Integrated Security=True;Pooling=False";
        using (sqlConnection cn = new sqlConnection(conStr))
        {
            string query = @"SELECT * FROM [dbo].[Order] WHERE OrderId ='" + OrderID + "'";
            sqlCommand cmd = new sqlCommand(query,cn);
            cn.open();
            sqlDataReader reader = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                dt.Load(reader);
            }
        }

        return dt;

    }

    void OrderDetailsSubreportProcessing(object sender,SubreportProcessingEventArgs e)
    {
        int orderID = int.Parse(e.Parameters["OrderId"].Values[0].ToString());
        DataTable dtOrderDetails = Subreport(orderID);
        ReportDataSource ds = new ReportDataSource("DataSet1",dtOrderDetails);
        e.DataSources.Add(ds);
    }

    private DataTable Subreport(int OrderID)
    {
        
        DataTable dt = new DataTable();
        string conStr = @"Data Source=IZZATH-BIN-IBRA\sqlEXPRESS2019;Initial Catalog=POS1;Integrated Security=True;Pooling=False";
        using (sqlConnection cn = new sqlConnection(conStr))
        {
            string query = @"SELECT * FROM [dbo].[OrderDetail] WHERE OrderId ='" + OrderID + "'";
            sqlCommand cmd = new sqlCommand(query,cn);
            cn.open();
            sqlDataReader reader = cmd.ExecuteReader();
            if (reader.HasRows)
            {
                dt.Load(reader);
            }
        }

        return dt;
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)