2012-12-12 20 views
5

WPF CrystalReportsViewerとCrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocumentを使用して、適切なセクションでImportPictureを呼び出すことによって、イメージをrptのすべてのページに動的に追加できます。しかし、私は各ページに別のイメージを追加したい。Crystal Reports VS2010の異なるページで異なるイメージを取得する方法

イメージが必要なページ数(How do I get the number of rendered pages from a CrystalReportsViewer?)はわかっていますが、各ページで異なるイメージを取得することはできませんでした。

私がアクセスできる「レンダリング済み」レポートのデータモデルはありますか?ページごとに異なる画像を追加できますか?

答えて

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); 
         } 
1

私はVSでこれをプログラムで行うことについてはわかりませんが、Crystal Report自体でこれを行うことができます。

  1. 目的のセクション、場所にプレースホルダ画像を配置します。
  2. は右の画像をクリックしてください - >「グラフィックをフォーマット」に進んでください -
  3. あなたは「グラフィック場所」
  4. 使用するための式を入力することができますボタンが表示されるはずです>「画像」タブを選択します「ページ番号」のキーワードを経由して、有効なイメージファイルパスに解決する式:
select pagenumber 
case 1 : "C:\picture1.bmp" 
case 2 : "C:\picture2.bmp" 
... 
default : "C:\warning.bmp"
関連する問題