generare dinamicamente i rapporti in Pentaho e trattare con le definizioni di report negozio nel database

StackOverflow https://stackoverflow.com/questions/4665380

  •  10-10-2019
  •  | 
  •  

Domanda

Sto sviluppando un'applicazione segnalazione in cui un utente può selezionare (e ordinare) le relazioni da una lista di 100 rapporti e chiedere un rapporto maestro. Questo rapporto maestro conterrà tutti i report selezionati nell'ordine esatto e con una tabella di contenuti che elencano i rapporti inclusi nel report master. I rapporti disponibili per l'utente di selezionare (che potrebbe essere 100s) sono memorizzati nel database.

Le mie domande sono: -

  1. Per generare il report master con le segnalazioni degli utenti selezionati, l'unica soluzione che posso vedere è utilizzando l'API di reporting Engine per generare un rapporto dinamico in cui devo aggiungere le segnalazioni degli utenti selezionati come sottoreport. E 'questo il diritto e il modo più semplice per affrontare questo problema? Qualcuno ha campioni di utilizzo API di reporting del motore soprattutto ai sottoreport iniettata in rapporto Maestro?
  2. Dato che io sono la memorizzazione dei rapporti nel db (blob), sto cercando di trovare un modo per generare i miei rapporti sub con un InputStream piuttosto che un URL, come specificato nella ResourceManager.createDirectly(url, MasterReport.class), ma non hanno avuto successo fino ad ora. Come faccio a generare rapporti da definizioni memorizzati nel database? Ci dovrebbe essere una certa astrazione delle risorse.
È stato utile?

Soluzione

Leggi i report in un byte-array e quindi utilizzare il metodo ResourceManager.createDirectly come al solito. Che risolverà il tuo problema di analizzare i rapporti.

È possibile li analizzare direttamente in sottoreport utilizzando

ResourceManager.createDirectly (byte, SubReport.class)

Queste subreports può quindi essere aggiunto al report master come sottoreport bande. se si desidera che i report selezionati per iniziare in una nuova pagina, assicurarsi di impostare il "pagebreak-prima" stile sulla relazione-header del sottoreport.

V'è un'astrazione risorsa: Si chiama "LibLoader" ed è possibile creare i propri ResourceLoaders che fare con il problema di ottenere i dati dal vostro database come prime-flussi in modo che le implementazioni ResourceFactory in grado di interpretare / analizzare il grezzo -data.

Ma ogni database è progettato in modo diverso e, quindi, si come system integrator devono scrivere il codice colla per esso. Abbiamo solo in grado di offrire le interfacce.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top