Pergunta

Dentro das APIs do Crystal Reports que vêm como padrão com o Visual Studios, existe alguma maneira de extrair um caminho de arquivo de um relatório existente em um servidor Business Objects Enterprise?Criamos um objeto ReportDocument e o carregamos usando um InfoStore e um EnterpriseSession.Estamos procurando uma maneira de extrair programaticamente o nome do caminho do arquivo para que possamos usá-lo como metadados em nosso processo de extração.Além disso, tentamos usar a propriedade FileName na classe ReportDocument, mas ela apenas retorna um CUID de relatório.

Se não conseguirmos descobrir uma maneira de fazer isso, faremos isso programaticamente por meio de uma função recursiva, mas eu definitivamente faria isso prefiro para encontrar uma propriedade que tenha isso armazenado.

Foi útil?

Solução 2

Para sua informação, foi assim que encontramos uma solução para o problema.

Tudo o que usamos é um StringBuilder e um InfoObject consulta que se parece com o seguinte:

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

Depois, chamamos nosso método recursivo e executamos o seguinte código:

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

Onde rptInfo é um InfoObject e pathName é um StringBuilder.

Outras dicas

Isso é possível apenas do Infostore.Na sua consulta, você deseja incluir os SI_Files na resposta.Se você já está fazendo um Select * from ci_infoobjects whem si_name= 'xyz' , então você já terá voltado.

A parte complicada é que a propriedade Si_Files está em uma sacola de propriedade e tem 2 partes que você se preocupa:

    .
  1. si_file1
  2. si_path

    si_file1 é o nome do arquivo verdadeiro como ele foi armazenado dentro do sistema de repositório de arquivos (FRS).O SI_PATH é o caminho do arquivo dentro do FRS.O caminho será semelhante a frs: // entrada / a_135 / 028/000/7303 / A primeira seção frs: // entrada refere-se ao caminho como configurado para o caminho conformeFRS dentro do CMC.O restante do caminho é um caminho regular do sistema de arquivos para onde o Si_File1 é armazenado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top