문제

Crystal Reports API가 Visual Studios를 사용하여 표준을 사용하는 API에서 Business Objects Enterprise Server에서 존재하는 보고서에서 파일 경로를 추출하는 방법이 있습니까?우리는 reportDocument 객체를 만들고 Infostore 및 Enterprisesessession을 사용하여로드합니다.우리는 추출 프로세스에서 메타 데이터에 사용할 수 있도록 파일 경로 이름을 프로그래밍 방식으로 추출하는 방법을 찾고 있습니다.또한 ReportDocument 클래스에서 파일 이름 속성을 사용해 보았지만 보고서 CUID를 반환합니다.

이 작업을 수행 할 수있는 방법을 알아낼 수없는 경우, 우리는 재귀 적 기능을 통해 프로그래밍 방식 으로이 작업을 수행 할 것입니다. 그러나 을 선호하는 을 선호 할 것입니다.

도움이 되었습니까?

해결책 2

fyi, 이것은 우리가 문제 해결 방법을 어떻게 생각해 냈는지입니다.

우리가 사용하는 것은 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);
}
.

여기서 rptInfoInfoObject이고 pathNameStringBuilder입니다.

다른 팁

이것은 Infostore에서 방금 가능합니다.쿼리에서 답장에 SI_FILES를 포함 시키려합니다.이미 선택 *에서 선택 * si_infoobjects에서 si_name= 'xyz'을 이미 다시 시작하게됩니다.

tricky 부분은 si_files 속성이 속성 가방에 있고 걱정하는 2 개의 부분이 있습니다.

  1. si_file1
  2. si_path

    Si_File1은 파일 저장소 시스템 (FRS) 내에 저장된 실제 파일 이름입니다.SI_PATH는 FRS 내의 파일의 경로입니다.경로는 frs : // input / a_135 / 028 / 000 / 7303 / em>과 유사합니다. frs : // 입력 은 구성된 경로를 나타냅니다.CMC 안의 FRS.나머지 경로는 SI_FILE1이 저장되는 일반 파일 시스템 경로입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top