我保存了报告模板:
report.Save("C:\\kk.mrt");
然后我加载已保存的报告并将其BusinessObjects
指定为Dictionaries
StiReport rptLoad = new StiReport();
rptLoad.RegBusinessObject("Company", repository.GetAll<Company>());
rptLoad.Load("C:\\kk.mrt");
rptLoad.BusinessObjectsStore
包含已注册的BusinessObjects
Watched
RunTime
}但是:
rptLoad.Show();
如果已保存的报告中包含Bindings
(例如:Components.Add(new StiText{Text="{Company.Name}"}
):那么
让我:error CS0103: The name 'Company' does not exist in the current context
如果我在保存的报告中没有Bindings
:那么
rptLoad.Show();
会显示报告,但没有注册Dictionaries
(因为我在显示报告后进入设计模式,我在词典中看不到BusinessObjects
。
如果我在rptLoad.Design();
之前致电rptLoad.Show();
:那么
报告显示且Bindings
没问题,我可以在显示的报告中看到BusinessObjects
(在设计和预览模式下)。
答案 0 :(得分:1)
找到原因:
rptLoad.Dictionary.Synchronize();
应在rptLoad.RegBusinessObject("Company", repository.GetAll<Company>());