2012-12-12 38 views
5

Sử dụng WPF CrystalReportsViewer và CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument Tôi có thể tự động thêm hình ảnh vào TẤT CẢ các trang trong rpt bằng cách gọi ImportPicture trên phần thích hợp . Tuy nhiên, tôi muốn thêm một hình ảnh khác nhau cho mỗi trang.Làm thế nào để tôi có được hình ảnh khác nhau trên các trang khác nhau trong Crystal Reports VS2010

Tôi đã tìm ra số trang cần hình ảnh (xem How do I get the number of rendered pages from a CrystalReportsViewer?), nhưng không thể có được hình ảnh khác trên mỗi trang.

Có mô hình dữ liệu của báo cáo "được hiển thị" mà tôi có thể truy cập không? Tôi có thể thêm hình ảnh khác trên mỗi trang không?

Trả lời

1

Thêm tất cả các hình ảnh vào phần mong muốn, sau đó EnableSuppress và thiết lập các công thức để che giấu khi nó không phải trên trang mong muốn.

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

Tôi không chắc chắn về việc thực hiện điều này theo chương trình trong VS, nhưng bạn có thể thực hiện việc này trong chính Báo cáo tinh thể.

  1. Đặt hình ảnh giữ chỗ trong phần, vị trí mong muốn.
  2. Nhấp chuột phải vào hình ảnh -> đi đến "Định dạng đồ họa" -> chọn "Picture" tab
  3. Bạn sẽ thấy một nút mà sẽ cho phép bạn nhập một công thức cho "Graphic Location"
  4. Dùng công thức để giải quyết một đường dẫn tập tin hình ảnh hợp lệ thông qua từ khóa "PAGENUMBER":
select pagenumber 
case 1 : "C:\picture1.bmp" 
case 2 : "C:\picture2.bmp" 
... 
default : "C:\warning.bmp"
Các vấn đề liên quan