问题描述
我正在研究 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 (将#修改为@)