5

WPF CrystalReportsViewer と CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument を使用して、適切なセクションで ImportPicture を呼び出すことにより、rpt 内のすべてのページに画像を動的に追加できます。ただし、各ページに異なる画像を追加したい。

画像が必要なページ数はわかりましたが ( CrystalReportsViewer からレンダリングされたページ数を取得するにはどうすればよいですか? を参照)、各ページで異なる画像を取得できませんでした。

アクセスできる "レンダリングされた" レポートのデータ モデルはありますか? ページごとに異なる画像を追加できますか?

4

2 に答える 2

1

I'm not sure about doing this programmatically in VS, but you can do this in the Crystal Report itself.

  1. Put a placeholder image in the desired section, location.
  2. Right click the image -> go to "Format Graphic" -> select the "Picture" tab
  3. You should see a button that will allow you to enter a formula for the "Graphic Location"
  4. Use a formula to resolve to a valid image file path via the "pagenumber" keyword:
select pagenumber
case 1 : "C:\picture1.bmp"
case 2 : "C:\picture2.bmp"
...
default : "C:\warning.bmp"
于 2012-12-12T16:48:27.587 に答える
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);
                        }
于 2012-12-12T18:52:22.373 に答える