linyimin 发表于 2023-12-27 11:09:55

加载报表暴机

public void ReLoadReport(String strTemplateName)
      {

            m_strReportName = strTemplateName;
            // m_strCurReport = System.Windows.Forms.Application.StartupPath + "\\Report\\ReportTemplate\\" + strTemplateName;
            m_strCurReport = m_strTemplatePath + strTemplateName;
            if (!System.IO.File.Exists(m_strCurReport))
            {
                //MessageBox.Show(m_strCurReport + "文件不存在");
                m_strCurReport = m_strTemplatePath + "EmptyView.rdlx";
            }
            //是否单页显示
         // this.m_pageReportViewer.GalleyMode = true;
            this.m_pageReportViewer.ReportViewer.GalleyMode = true;



            this.Dispatcher.Invoke(
                new Action(
                  delegate
                  {
                        FileInfo info = new System.IO.FileInfo(m_strCurReport);
                        this.m_curPage = new GrapeCity.ActiveReports.PageReport(info);
                        this.m_curPage.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(locateData);
                        this.m_pageReportViewer.LoadDocument(m_curPage.Document);
                  }
                )
            );
      }

private void locateData(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
{
            args.Data = new DataTable();
}



12版本.net报表,使用上面方法加载报表,第一次正常显示,第二次暴机


Felix.Li 发表于 2023-12-27 11:09:56

问题描述:

报错NullReferenceException

问题回答:
目前从报错来看,只能知道是第二次运行的时候,
this.m_pageReportViewer.LoadDocument(m_curPage.Document);
这个里面有一个对象是null。

这个目前只能打断点您可以先试一下。主要是看第二次运行的时候,
m_pageReportViewer是null还是m_curPage.Document是null。主要还是排查。
页面viewer对象没有加载出来还是pagereport对象没有加载好。别的目前也确实不好排查。
页: [1]
查看完整版本: 加载报表暴机