在查看报表时,我想用新的rdlc文件替换当前的rdlc文件并刷新报表而不关闭包含报表查看器的报表.
我已经检查过以确保正确生成文件.如果我使用报表查看器关闭表单并将其打开备份,则会显示新的文件信息.我只是无法弄清楚如何在不关闭父表单的情况下重新加载报表查看器.
以下是我已经尝试过的.我没有收到任何错误消息.该报告似乎更新了,但它实际上只是告诉我我已经在看什么.未加载新的RDLC文件.
private voID BtnRefreshRpt_Click(object sender,EventArgs e) { try { GenerateNewRDLC GN = new GenerateNewRDLC(); GN.generatefile(); /*this part definitely works*/ sqlConnection conReport = new sqlConnection (ConfigurationManager.ConnectionStrings["Connection String Info"].ConnectionString); sqlCommand cmdReport = new sqlCommand(); sqlDataReader drReport; DataSet dsReport = new AdvEdgeDataSet(); conReport.open(); cmdReport.CommandType = CommandType.Text; cmdReport.Connection = conReport; cmdReport.CommandText = strRptCriteria; drReport = cmdReport.ExecuteReader(); dsReport.tables[0].Load(drReport); drReport.Close(); conReport.Close(); reportVIEwer1.LocalReport.ReportPath = strRptResource.ToString(); ReportDataSource rds = new ReportDataSource(); rds.name = strRptDataSource; rds.Value = dsReport.tables[0]; reportVIEwer1.LocalReport.DataSources.Add(rds); reportVIEwer1.RefreshReport(); reportVIEwer1.SetdisplayMode(displayMode.PrintLayout); //this.reportVIEwer1.RefreshReport(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }解决方法 尝试在加载新报告文件之前调用ReportVIEwer.reset().
我目前正在我的ReportVIEwer控件中执行此 *** 作,但是,源代码正在运行.如果重置不起作用,我将在周一早上在此处发布我的代码.绝对可以做到.
总结以上是内存溢出为你收集整理的c# – 基于新RDLC文件重新加载和刷新报表查看器全部内容,希望文章能够帮你解决c# – 基于新RDLC文件重新加载和刷新报表查看器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)