使用WPF CrystalReportsViewer和CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument我可以通过在相应的部分调用ImportPicture来动态地将图像添加到rpt中的所有页面。但是,我想为每个页面添加不同的图像。
我已经知道有多少页需要图像(请参阅How do I get the number of rendered pages from a CrystalReportsViewer?),但无法在每页上获得不同的图像。
我可以访问“已呈现”报告的数据模型吗?我可以在每页添加不同的图像吗?
答案 0 :(得分:1)
我不确定在VS中以编程方式执行此操作,但您可以在Crystal Report本身中执行此操作。
select pagenumber
case 1 : "C:\picture1.bmp"
case 2 : "C:\picture2.bmp"
...
default : "C:\warning.bmp"
答案 1 :(得分:1)
将所有图像添加到所需的部分,然后将EnableSuppress设置为隐藏,当它不在所需的页面上时隐藏。
CrystalDecisions.ReportAppServer.ReportDefModel.PictureObject pic=ctl.ReportObjectController.ImportPicture(tempImagePath, s, 0, 0);
if (pic != null)
{
var picNew = pic.Clone();
picNew.Format.EnableSuppress = true;
CrystalDecisions.ReportAppServer.ReportDefModel.ConditionFormula f = roNew.Format.ConditionFormulas[CrObjectFormatConditionFormulaTypeEnum.crObjectFormatConditionFormulaTypeEnableSuppress];
if (f != null)
{
f.Syntax = CrFormulaSyntaxEnum.crFormulaSyntaxCrystal;
f.Text = string.Format("PageNumber <> {0}", ri.PageNumber);
}
ctl.ReportObjectController.Modify(pic, picNew);
}