기타 ActiveReports.NET 17 섹션 보고서 최신 변경 사항
페이지 정보
작성자 GrapeCity 작성일 2023-04-17 16:14 조회 188회 댓글 0건본문
관련링크
AR11/12를 작업하면서 Microsoft에서 System.Drawing GDI+ 함수(이후에 재도입되고 최종적으로 .NET 7부터 Windows에만 제한됨)을 지원하지 않는 새 프레임워크(.NET Core)를 출시할 것임을 알게 되었습니다.
Mono 라이브러리(libgdiplus 기본 종속성 포함) 및 유사한 항목을 다시 컴파일하기 위한 해결 방법이 있지만 이러한 해결 방법은 제한적이거나 완전히 작동하지 않습니다.
새 프레임워크를 지원하면 많은 장점이 제공되며(MS의 새 웹 플랫폼, 저렴한 Linux Azure 등) 당사에는 이미 GrapeCity Documents for PDF 및 GrapeCity Documents for Imaging과 같은 자체 관리형 라이브러리가 있습니다.
따라서 완전히 관리된 렌더링을 사용하도록 ActiveReports를 전환하기로 결정했습니다. 완전히 관리된 렌더링에는 (libgdiplus, Pango 또는 Skia와 비교하여) 많은 장점이 있습니다. PDF/이미지 사이의 WYSIWYG, 누락된 외부 종속성, 간소화된 배포 등 모든 함수는 당사의 제어 하에 있으며 약간의 성능 저하가 있습니다. (전체 보고서 렌더링에서 약 10~20%)
ActiveReports는 "페이지/RDL"(MS RDL의 확장판) 및 "섹션"(AR7 전의 유일한 보고서 유형)과 같은 다양한 보고서 유형의 컴포넌트 집합을 제공합니다. "페이지/RDL" 보고서는 공개 API에서 System.Drawing의 유형을 피하도록 설계되었으므로 새 렌더링으로 이동하는 작업은 상대적으로 간단했습니다.(AR13에서 일부 준비 중이며 AR14에서는 대부분 완료)
"섹션" 보고서에는 다양한 아키텍처가 있으므로 새 렌더링으로 이동하는 작업은 AR15/AR16/AR17에서 몇 가지 단계로 완료되었습니다. 주요 변경 사항은 AR15(호환성 모드 도입, WinForms 종속성 추출) 및 AR17(GDI/GDI+ 종속성의 추출, 공개 API 삭제)에 있습니다.
가능한 경우 최신 변경 사항을 피하려고 항상 노력하지만 이러한 변경이 필요한 경우에는 고객이 마이그레이션할 때 잠재적인 문제를 쉽게 해결할 수 있도록 명확하게 문서화하는 것이 중요합니다. 변경 사항을 파악하기 위해 섹션 보고서가 대략 어떻게 작동하는지에 대해 설명해 보겠습니다.
SectionReport(코드 기반 또는 *.rpx 파일)는 향후 프로세싱을 위한 템플릿일 뿐입니다.
데이터가 채워진 SectionReport 템플릿은 SectionDocument를 만듭니다. (또는 사용자는 API를 통해 수동으로 문서를 만들 수 있음)SectionDocument는 내부 바이너리 페이지가 매겨진 벡터 이미지입니다.(내부적으로 선, 이미지, 텍스트 등을 렌더링하는 명령 집합)
SectionDocument 이미지는 뷰어 또는 내보내기에서 "렌더링"될 수 있습니다. 일부 내보내기에는 이미지를 내보내는 데 더 많은 작업이 필요했습니다.(e.g. Excel 그리드를 먼저 빌드)
AR15/AR16/AR17에서 변경된 사항:
SectionReport의 공개 API(주요 변경 사항):
- CompatibilityMode 속성을 도입했습니다.
- System.Drawing.Image를 클래스로 변경했습니다.
- System.Drawing.Font를 클래스로 변경했습니다.
- System.Drawing.Printing.PrintDocument를 클래스로 변경했습니다.
SectionDocument의 공개 API(주요 변경 사항):
- CompatibilityMode 속성을 도입했습니다.
- 어셈블리를 구분하도록 GDI/GDI+ 종속성을 추출했습니다.
- 새 관리형 렌더링(GDI/GDI+ 기반 외).
내보내기/뷰어 변경 사항(주요 변경 사항):
- 크로스 플랫폼 렌더링에 대한 새 WYSIWYG WinForms/WPF 미리 보기와 PDF/TIFF 내보내기를 도입했습니다.
- 기본적으로 SectionDocument 이미지를 SVG로 렌더링하도록 모든 ASP.NET 미리 보기를 변경했습니다(크로스 플랫폼 렌더링에 대해 WinForms/WPF 미리 보기가 포함된 대부분의 WYSIWYG가 됩니다). 따라서 레거시 GDI/GDI+ 렌더링에서 미리 보기는 잘못된 것으로 보일 수 있습니다("HTML" 렌더링 서식으로 수동 변경해야 하지만 이 서식에는 많은 제한이 있습니다).
기타 변경 사항:
- 공개 Excel API에 몇 가지 변경 사항이 있습니다.
- 코드 기반 "섹션" 보고서의 차트 API에 몇 가지 변경 사항이 있습니다.
SectionReport의 공개 API(주요 변경 사항):
- CompatibilityMode 속성을 도입했습니다.
- System.Drawing.Image를 클래스로 변경했습니다.
- System.Drawing.Font를 클래스로 변경했습니다.
- System.Drawing.Printing.PrintDocument를 클래스로 변경했습니다.
SectionDocument의 공개 API(주요 변경 사항):
- CompatibilityMode 속성을 도입했습니다.
- 어셈블리를 구분하도록 GDI/GDI+ 종속성을 추출했습니다.
- 새 관리형 렌더링(GDI/GDI+ 기반 외).
내보내기/뷰어 변경 사항(주요 변경 사항):
- 크로스 플랫폼 렌더링에 대한 새 WYSIWYG WinForms/WPF 미리 보기와 PDF/TIFF 내보내기를 도입했습니다.
- 기본적으로 SectionDocument 이미지를 SVG로 렌더링하도록 모든 ASP.NET 미리 보기를 변경했습니다(크로스 플랫폼 렌더링에 대해 WinForms/WPF 미리 보기가 포함된 대부분의 WYSIWYG가 됩니다). 따라서 레거시 GDI/GDI+ 렌더링에서 미리 보기는 잘못된 것으로 보일 수 있습니다("HTML" 렌더링 서식으로 수동 변경해야 하지만 이 서식에는 많은 제한이 있습니다).
기타 변경 사항:
- 공개 Excel API에 몇 가지 변경 사항이 있습니다.
- 코드 기반 "섹션" 보고서의 차트 API에 몇 가지 변경 사항이 있습니다.
이러한 변경은 주로 다음 항목에 영향을 줄 수 있습니다.
코드 기반 "섹션" 보고서: 주요 변경 사항은 차트 및 사용자 정의 컨트롤에 관한 것입니다. AR 마이그레이션 도구를 먼저 시도해 보는 것이 좋습니다.
스크립트: 일부 스크립트는 다음과 같은 API의 차이로 인해 작동이 중지될 수 있습니다.
- 사용자 정의 컨트롤에 대한 WinForms 종속성은 없습니다.
종속성을 수동으로 지정해야 합니다. - 글꼴 작업을 위한 API가 약간 다릅니다. 일부를 변경해야 할 수 있습니다.
- 이미지 작업을 위한 API가 약간 다릅니다. 일부를 변경해야 할 수 있습니다.
프린터: 프린터 관련 설정을 지정하는 일부 코드를 업데이트해야 할 수 있습니다.
SpreadBuilder Excel API: 문자열을 측정(자동 높이 함수에 필요)하고 글꼴 및 이미지를 지정하기 위한 일부 외부 작업을 필요로 하는 새 API입니다.
설정, 특히 PDF 설정을 지정하는 방식입니다.
줄바꿈을 렌더링하는 방식입니다. 크로스 플랫폼 호환성 모드는 기본적으로 Unicode 줄바꿈 알고리즘을 사용합니다. 이전 알고리즘으로 전환하는 작업은 구성 파일을 통해 완료할 수 있습니다.
크로스 플랫폼 렌더링에서 EMF/WMF 이미지 서식을 제한적으로 지원합니다.
코드 기반 "섹션" 보고서: 주요 변경 사항은 차트 및 사용자 정의 컨트롤에 관한 것입니다. AR 마이그레이션 도구를 먼저 시도해 보는 것이 좋습니다.
스크립트: 일부 스크립트는 다음과 같은 API의 차이로 인해 작동이 중지될 수 있습니다.
- 사용자 정의 컨트롤에 대한 WinForms 종속성은 없습니다.
종속성을 수동으로 지정해야 합니다. - 글꼴 작업을 위한 API가 약간 다릅니다. 일부를 변경해야 할 수 있습니다.
- 이미지 작업을 위한 API가 약간 다릅니다. 일부를 변경해야 할 수 있습니다.
프린터: 프린터 관련 설정을 지정하는 일부 코드를 업데이트해야 할 수 있습니다.
SpreadBuilder Excel API: 문자열을 측정(자동 높이 함수에 필요)하고 글꼴 및 이미지를 지정하기 위한 일부 외부 작업을 필요로 하는 새 API입니다.
설정, 특히 PDF 설정을 지정하는 방식입니다.
줄바꿈을 렌더링하는 방식입니다. 크로스 플랫폼 호환성 모드는 기본적으로 Unicode 줄바꿈 알고리즘을 사용합니다. 이전 알고리즘으로 전환하는 작업은 구성 파일을 통해 완료할 수 있습니다.
크로스 플랫폼 렌더링에서 EMF/WMF 이미지 서식을 제한적으로 지원합니다.
일부 작업을 수행할 수 없는 경우 개발자 포럼을 통해 문의해 주시길 바랍니다.
AR 17 및 이전 버전의 개별 기본 변경 사항에 대한 자세한 내용은 ActiveReports .NET 주요 변경 사항 문서 페이지를 확인하시기 바랍니다.
지금 바로 ActiveReports.NET을 다운로드하여 직접 테스트해 보세요!