Domanda

All'interno delle API dei report di cristallo che vengono di serie con Studios visivi, esiste un modo per estrarre un percorso file da un report esistente su un server aziendale aziendale?Creiamo un oggetto ReportDocument e lo carichiamo utilizzando un infostore e un'impresa.Stiamo cercando un modo per estrarre programmaticamente il nome del percorso del file in modo che possiamo usarlo per i metadati nel nostro processo di estrazione.Inoltre, abbiamo provato a utilizzare la proprietà del nome file nella classe ReportDocument, ma restituisce solo un rapporto CUID.

Se non riesco a capire un modo per farlo, lo facciamo semplicemente programmaticamente attraverso una funzione ricorsiva, ma sarei sicuramente preferire per trovare una proprietà che ha memorizzato.

È stato utile?

Soluzione 2

FYI, questo è il modo in cui siamo venuti con una soluzione per il problema.

Tutto ciò che usiamo è un StringBuilder e una query InfoObject che sembra quanto segue:

string sReportQueryString = 
    "SELECT SI_ID, SI_CUID, SI_NAME, SI_PATH, SI_PARENT_CUID " + 
    "FROM CI_INFOOBJECTS " + 
    "WHERE SI_PROGID='CrystalEnterprise.Report' AND SI_INSTANCE = 0";
.

Dopo, chiamiamo il nostro metodo ricorsivo ed eseguiamo il seguente codice:

if (rptInfo.ParentID != 0)
{
    pathName.Insert(0, "\\" + rptInfo.Parent.ToString());
    getPath(rptInfo.Parent, ref pathName);
}
.

Dove rptInfo è un InfoObject e pathName è un StringBuilder.

Altri suggerimenti

Questo è possibile solo dall'infostore.Nella tua query si desidera includere il SI_FILES nella risposta.Se stai già facendo un Seleziona * da ci_infoobjects dove si_name= 'xyz' allora lo avrai già tornato.

La parte difficile è che la proprietà SI_Files è in una borsa di proprietà e ha 2 parti che ti interessa:

    .
  1. si_file1
  2. si_path

    SI_FILE1 è il nome del file vero poiché è stato memorizzato all'interno del sistema di repository del file (FRS).SI_PATH è il percorso del file all'interno del FRS.Il percorso sarà simile a frs: // ingresso / A_135 / 028/000/7303 / la prima sezione frs: // ingresso si riferisce al percorso come configurato per ilFRS all'interno della CMC.Il resto del percorso è un percorso regolare di filesystem a dove viene memorizzato SI_File1.

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