2012-12-12 17 views
5

utilizzando WPF CrystalReportsViewer e CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument Sono in grado di aggiungere dinamicamente un'immagine a TUTTE le pagine nel rpt chiamando ImportPicture nella sezione appropriata. . Tuttavia, voglio aggiungere un'immagine diversa a ciascuna pagina.in Crystal Reports VS2010

Ho capito quante pagine hanno bisogno di immagini (vedere How do I get the number of rendered pages from a CrystalReportsViewer?), ma non è stato possibile ottenere un'immagine diversa su ogni pagina.

Esiste un modello di dati del report "come reso" a cui è possibile accedere? Posso aggiungere un'immagine diversa per pagina?

risposta

1

aggiungere tutte le immagini alla sezione desiderata, quindi EnableSuppress e impostare la formula per nascondere quando il suo non sulla pagina desiderata.

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

Non sono sicuro di farlo a livello di codice in VS, ma è possibile farlo nel Crystal Report stesso.

  1. Inserire un'immagine segnaposto nella sezione desiderata, posizione.
  2. Fare clic destro sull'immagine -> vai a "formato grafico" -> selezionare la scheda "Immagine"
  3. Si dovrebbe vedere un pulsante che vi permetterà di inserire una formula per la "grafica Location"
  4. Utilizzare un formula per risolvere a un percorso di file di immagine valido tramite la parola chiave "numero di pagina":
select pagenumber 
case 1 : "C:\picture1.bmp" 
case 2 : "C:\picture2.bmp" 
... 
default : "C:\warning.bmp"
Problemi correlati