Question

Dans les API Crystal Reports fournies en standard avec Visual Studios, existe-t-il un moyen d'extraire un chemin de fichier à partir d'un rapport existant sur un serveur Business Objects Enterprise ?Nous créons un objet ReportDocument et le chargeons à l'aide d'un InfoStore et d'une EnterpriseSession.Nous recherchons un moyen d'extraire par programme le nom du chemin du fichier afin de pouvoir l'utiliser pour les métadonnées dans notre processus d'extraction.Nous avons également essayé d'utiliser la propriété FileName dans la classe ReportDocument, mais elle renvoie simplement un CUID de rapport.

Si nous ne parvenons pas à trouver un moyen de le faire, nous le ferons simplement par programmation via une fonction récursive, mais je le ferais certainement préférer pour trouver une propriété dans laquelle cela est stocké.

Était-ce utile?

La solution 2

Pour information, c'est ainsi que nous avons trouvé une solution au problème.

Tout ce que nous utilisons est un StringBuilder Et un InfoObject requête qui ressemble à ceci :

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";

Ensuite, nous appelons notre méthode récursive et exécutons le code suivant :

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

rptInfo est un InfoObject et pathName est un StringBuilder.

Autres conseils

Ceci est possible juste de l'infostore.Dans votre requête, vous voulez inclure les Si_files dans la réponse.Si vous faites déjà un Sélectionnez * à partir de cI_infoObjects où si_name= 'xyz' alors vous aurez déjà revenir.

La partie délicate est que la propriété Si_files est dans un sac de propriété et compte 2 parties que vous vous souciez de:

  1. Si_file1
  2. si_path

    Si_file1 est le nom de fichier véritable tel qu'il a été stocké dans le système de référentiel de fichiers (FRS).Le SI_PATH est le chemin du fichier dans les FRS.Le chemin sera similaire à frs: // entrée / A_135 / 028/00/7303 / la première section frs: // entrée fait référence au chemin comme configuré pour leFrs à l'intérieur du CMC.Le reste du chemin est un chemin d'accès au système de fichiers régulier sur lequel le SI_File1 est stocké.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top