Получение пути к файлу из Business Objects Enterprise программным способом

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

Вопрос

Есть ли какой-либо способ извлечь путь к файлу из отчета, существующего на сервере Business Objects Enterprise, в рамках API-интерфейсов Crystal Reports, которые входят в стандартную комплектацию Visual Studios?Мы создаем объект ReportDocument и загружаем его с помощью InfoStore и EnterpriseSession.Мы ищем способ программного извлечения имени пути к файлу, чтобы можно было использовать его для метаданных в процессе извлечения.Кроме того, мы попытались использовать свойство FileName в классе ReportDocument, но оно просто возвращает CUID отчета.

Если мы не сможем найти способ сделать это, мы просто сделаем это программно с помощью рекурсивной функции, но я бы определенно сделал это. предпочитать чтобы найти свойство, в котором это сохранено.

Это было полезно?

Решение 2

К вашему сведению, вот как мы нашли решение проблемы.

Все, что мы используем, это StringBuilder и InfoObject запрос, который выглядит следующим образом:

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

После этого мы вызываем наш рекурсивный метод и выполняем следующий код:

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

Где rptInfo является InfoObject и pathName это StringBuilder.

Другие советы

Это возможно только от Infostore.В вашем запросе вы хотите включить Si_Files в ответ.Если вы уже делаете выберите * из ci_infoobjects, где si_name= 'xyz' тогда у вас уже будет возвращаться.

Тященая часть состоит в том, что свойство Si_Files находится в сумке свойств и имеет 2 части, о которых вы заботитесь о:

  1. si_file1
  2. si_path

    si_file1 - это настоящее имя файла, которое было сохранено в системе хранилища файлов (FRS).Si_Path - путь файла в FR.Путь будет похоже на frs: // input / a_135 / 028 / 000/7303 / 028/000 / 7303 / Первый раздел FRS: // Вход относится к пути настроенную дляФРС внутри CMC.Остальная часть пути - обычный путь файловой системы к тому, где сохраняется Si_File1.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top