Pregunta

Dentro de las API de Crystal Reports que vienen de serie con Visual Studios, ¿hay alguna forma de extraer una ruta de archivo de un informe existente en un servidor de Business Objects Enterprise?Creamos un objeto ReportDocument y lo cargamos usando un InfoStore y una EnterpriseSession.Estamos buscando una manera de extraer mediante programación el nombre de la ruta del archivo para poder usarlo como metadatos en nuestro proceso de extracción.Además, intentamos usar la propiedad FileName en la clase ReportDocument, pero solo devuelve un CUID de informe.

Si no podemos encontrar una manera de hacer esto, simplemente lo haremos programáticamente a través de una función recursiva, pero definitivamente lo haría preferir para encontrar una propiedad que tenga esto almacenado.

¿Fue útil?

Solución 2

Para su información, así es como se nos ocurrió una solución al problema.

Todo lo que utilizamos es un StringBuilder y un InfoObject consulta que se parece a la siguiente:

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

Luego, llamamos a nuestro método recursivo y ejecutamos el siguiente código:

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

Dónde rptInfo es un InfoObject y pathName es un StringBuilder.

Otros consejos

Esto es posible solo por el infostore.En su consulta desea incluir los Si_Files en la respuesta.Si ya está haciendo un selecto * de ci_infoobjects donde si_name= 'xyz' ya lo tendrá regresando.

La parte complicada es que la propiedad Si_Files está en una bolsa de propiedad y tiene 2 partes que le importan:

  1. si_file1
  2. si_path

    si_file1 es el nombre del archivo verdadero, ya que se almacenó dentro del sistema de repositorio de archivos (FRS).El SI_PATH es el camino del archivo dentro del FRS.El camino será similar a FRS: // INPUT / A_135 / 028 / A_135 / 028/000/7303 / La primera sección FRS: // Entrada se refiere a la ruta según lo configurado para elFrs dentro del CMC.El resto del camino es una ruta regular del sistema de archivos a donde se almacena el Si_File1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top