문제

동일한 JDBC 데이터 소스에서 데이터를 얻는 여러 BIRT 보고서가 있습니다.

외부 속성 파일 또는 이와 유사한 선로 매개 변수 (드라이버 URL, 사용자 이름 및 비밀번호)를 얻을 수 있습니까?

도움이 되었습니까?

해결책

기능 데이터 소스를 생성하면 해당 데이터 소스를 시스템의 모든 BIRT 보고서에서 가져 와서 사용할 수있는 보고서 라이브러리에 추가 할 수 있습니다. 라이브러리 내부의 소스는 정적 연결 속성을 가질 수 있거나 외부화 특성을 사용하여 추상화 할 수 있습니다.

연결 정보를 외부화하려면 데이터 소스 자체를 조정해야합니다. 데이터 소스 편집기 내부에는 데이터 연결을 관리하는 모든 값을 추상화 할 수있는 "속성 바인딩"섹션이 있습니다. 거기에서 값 (Expression 편집기 사용)을보고 매개 변수 또는 속성 파일에 바인딩 할 수 있습니다.

보고서 매개 변수에 바인딩하려면이 구문을 사용하십시오. params[parametername].value 표현으로.

속성 파일에 바인딩하려면 리소스 파일을 보고서의 최상위 속성에 설정하십시오. 거기에서 속성 키 값을 사용하여 데이터 소스에 항목을 바인딩 할 수 있습니다.

행운을 빕니다!

다른 팁

Good @Mystik의 "Property Binding"솔루션에 대한 대안은 연결 프로파일에 대한 외부화.

  • a 데이터 소스 ( "DS"라고 함), DB에 연결하기 위해 매개 변수의 올바른 구성을 설정합니다.
  • "ds"> 연결 프로파일에 대한 외부 분해를 마우스 오른쪽 버튼으로 클릭하십시오 ...> 두 옵션을 확인하고 연결 프로파일의 이름을 설정하고 확인> 경로를 설정하고 파일 이름을 저장했습니다. 연결 프로필 저장소 ( "reportname.cps"라고 말하면 암호화를 해제합니다 ...

이제 우리는 보고서 (개발, 생산, ...)를 배치하는 환경에 따라 수정할 수있는 XML 파일 인 "reportName.cps"가 있습니다. 문제는 "DS"가 "reportName.cps"의 정보를 정적으로로드했다는 것입니다. 우리가 지정한 절대 경로에서 "reportname.cps"를 찾을 수 있다면 dinamically로드됩니다. 따라서 환경 변화 파일 경로는 다르고 보고서는 파일을 찾지 못할 것입니다. 보고서에 파일의 올바른 위치를 알리고로드하려면 동적으로 스크립트를 작성하겠습니다.

  • 설정 a 스크립트를 시작하기 전에 모든 환경마다 다른 리소스 폴더에 배포 된 연결 프로파일을 사용하려면 다음과 같습니다.

    var myresourcefolder = reportContext.getDesignHandle().getResourceFolder();
    this.setExtensionProperty("OdaConnProfileStorePath", myresourcefolder + "/reportName.cps");
    
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top