Delphi, C++ Builder & .NET sgcUI의 일부

sgcReports, Delphi, C++ Builder & .NET용 리포트 엔진

리포트를 한 번 디자인하고 접근성 PDF, Excel 파일, CSV, PNG 페이지로 제공하세요. 플루언트 체인으로 코드에서 만들거나 실행 중에 JSON 정의를 불러오며, 그룹, 소계, 마스터 상세, 바코드를 지원합니다. 엔진은 창도 외부 DLL도 필요 없으므로 서비스와 Linux64 데몬에서 실행됩니다.

기본적으로 PDF/UA-1 태그된 PDFPDF, XLSX, CSV, PNGWindows 서비스와 Linux64sgcUI Enterprise에 포함
송장 페이지와 QR 코드가 있는 sgcReports 미리 보기 창

리포트 엔진에 필요한 모든 것

실제 API와 그 뒤의 도움말 항목을 갖춘 11가지 기능입니다.

리포트 디자인

실제 밴드, 그룹, 표현식으로 코드나 JSON에서 리포트를 기술합니다.

읽기 쉬운 몇 줄로 완전한 리포트 작성

리포트 디자인

읽기 쉬운 몇 줄로 완전한 리포트 작성

리포트 디자이너는 레이아웃이 버전 관리에 있어야 하거나, 풀 리퀘스트에서 검토되거나, 자체 메타데이터로 생성되어야 하기 전까지는 훌륭합니다. TsgcReportBuilder는 스타일, 페이지, 밴드, 항목을 하나의 플루언트 체인으로 기술하므로 리포트는 프로젝트의 나머지 코드와 함께 컴파일되고, 비교되고, 리팩터링되는 일반 코드가 됩니다. 같은 체인이 리포트를 준비하고 모든 출력 형식으로 저장합니다. 이렇게 만든 리포트는 반복문으로 생성하고, 함수로 공유하고, 다른 코드처럼 단위 테스트로 검증할 수 있습니다.

  • Style, Page, GroupHeader, MasterData, GroupFooter, PageFooter가 레이아웃처럼 읽힙니다
  • 빌더에서 바로 SaveToPDF, SaveToXLSX, SaveToCSV, SaveToPNG
  • 웹 응답용 SaveToPDFStream 같은 스트림 변형
  • 빌더는 코드에서 계속 조정할 수 있는 일반 TsgcReport 모델을 채웁니다
  • 아랍어와 히브리어를 위한 오른쪽에서 왼쪽 지원: 보고서의 RightToLeft와 밴드 및 항목의 BiDiMode가 레이아웃을 미러링하며, PDF, XLSX, HTML 출력에서 아랍어와 히브리어 텍스트가 셰이핑됩니다
도움말 항목 읽기
그대로 동작하는 그룹, 소계, 페이지 번호

리포트 디자인

그대로 동작하는 그룹, 소계, 페이지 번호

업무 리포트는 평평한 목록인 경우가 드뭅니다. 지역별 매출, 고객별 송장, 창고별 재고 같은 것입니다. sgcReports에는 리포트 제목, 페이지 머리글, 그룹 머리글, 데이터, 그룹 바닥글, 페이지 바닥글, 요약 밴드가 있는 진짜 밴드 레이아웃이 있습니다. 그룹은 표현식이 바뀔 때 나뉘고, 고유한 합계를 인쇄하며, 새 페이지에서 시작하거나 모든 페이지에 머리글을 반복할 수 있어서 긴 리포트도 읽기 쉽습니다. 하위 리포트는 한 페이지가 다른 페이지의 레이아웃을 포함하게 하여 요약과 부록에 사용합니다.

  • 그룹 머리글 밴드의 GroupExpression, 2단계 이상은 중첩 그룹
  • StartNewPage, RepeatOnEveryPage, KeepTogether가 페이지 흐름을 제어합니다
  • rbtReportTitle부터 rbtReportSummary까지의 밴드 종류, 그리고 열 머리글과 바닥글
  • "7페이지 중 2페이지" 같은 바닥글을 위해 표현식에서 TotalPages 사용
  • PrintOnFirstPage와 PrintOnLastPage가 페이지 밴드가 나타날 위치를 정하고, SubreportPageName은 다른 페이지를 포함합니다
도움말 항목 읽기
데이터베이스에서 바로 만드는 송장

리포트 디자인

데이터베이스에서 바로 만드는 송장

송장은 항목이 딸린 마스터 레코드이며 모든 항목에는 올바른 제품, 수량, 가격이 필요합니다. 데이터셋 소스는 FireDAC을 포함한 모든 TDataSet을 바인딩하고 키 필드로 상세 소스를 마스터에 연결하므로 각 송장이 자신의 항목과 합계를 인쇄합니다. 데이터가 데이터베이스에 없을 때는 JSON 배열과 직접 만든 이벤트 기반 소스가 같은 방식으로 동작합니다. 상세 밴드는 현재 마스터 레코드의 각 항목마다 반복되고, 바닥글은 항목에 대한 집계 표현식으로 송장 합계를 인쇄합니다.

  • MasterSource, MasterFields, DetailFields를 갖춘 TsgcReportDataSetSource
  • TsgcReportJSONSource는 JSON 문자열이나 파일을 읽고, RecordsPath가 배열을 선택합니다
  • TsgcReportEventSource는 OnFirst, OnNext, OnGetValue를 통해 코드에서 행을 가져옵니다
  • 소스는 AddDataSource로 엔진에 등록합니다
도움말 항목 읽기
다시 컴파일하지 않고 리포트 변경

리포트 디자인

다시 컴파일하지 않고 리포트 변경

월별 명세서에 열을 하나 추가하는 데 애플리케이션의 새 릴리스가 필요해서는 안 됩니다. 리포트 정의는 JSON으로 저장하고 불러올 수 있으므로 레이아웃을 데이터베이스, 설정 폴더, 고객별 디렉터리에 둘 수 있습니다. 애플리케이션은 실행 중에 정의를 불러오고, 데이터를 바인딩하고, 렌더링하며, 같은 파일이 웹 디자이너에도 사용됩니다. 정의는 일반 텍스트이므로 버전 관리에서 깔끔하게 비교되고 자체 도구로 생성하거나 스크립트로 마이그레이션할 수 있습니다.

  • sgcReportLoadFromJSON과 sgcReportSaveToJSON, 그리고 파일 및 스트림 변형
  • sgcReportGenerateSchema는 편집기와 유효성 검사를 위한 JSON 스키마를 작성합니다
  • 오류는 문제가 된 멤버의 JSON 경로를 알려 줍니다
  • ReportJSONDefinition 데모는 정의와 데이터를 나란히 편집합니다
도움말 항목 읽기
모든 밴드에서 사용하는 표현식과 바코드

리포트 디자인

모든 밴드에서 사용하는 표현식과 바코드

합계, 서식이 지정된 날짜, 조건부 텍스트, 배송 라벨은 모두 표현식과 바코드로 해결됩니다. 모든 텍스트 항목은 대괄호 안에 표현식을 담을 수 있으며, 예를 들어 필드의 서식이 지정된 합계를 넣을 수 있고 문자열, 숫자, 날짜 함수가 내장되어 있습니다. 바코드도 항목이며 sgcPDF 엔진이 벡터로 그리므로 라벨과 배송 명세서가 어떤 크기에서도 선명하게 인쇄됩니다. 표현식은 엔진이 모든 행마다 평가하므로 바닥글의 합계는 위에 인쇄된 항목과 항상 일치합니다.

  • 집계와 함수: Sum, FormatFloat, FormatDateTime, Upper, Round, IsNull
  • OnGetVariable은 실행 중에 직접 만든 변수를 제공합니다
  • 빌더의 Barcode는 rbsCode128, rbsEAN13, rbsQRCode, rbsDataMatrix, rbsPDF417 등을 지원합니다
  • 물류 라벨용 GS1-128, ITF, Codabar, UPC-A, Code 39
도움말 항목 읽기

어디로든 전달

한 번 준비하고, 사용자와 규제 기관이 요구하는 형식으로 내보냅니다.

기본은 접근성 PDF, 요청 시 PDF/A

어디로든 전달

기본은 접근성 PDF, 요청 시 PDF/A

공공 기관과 많은 기업은 이제 화면 낭독기가 따라갈 수 있는 문서를 게시해야 하고, 보관소에는 20년 뒤에도 열리는 파일이 필요합니다. PDF 내보내기는 기본적으로 논리적 읽기 순서, 이미지 대체 텍스트, 표시된 제목이 있는 태그된 PDF/UA-1을 씁니다. 문서가 장기 보관소로 갈 때는 PDF/A-3을 켜세요. Delphi와 .NET에서는 내보내기가 PDF/A-4와 PDF/UA-2도 씁니다. 글꼴은 미리 보기가 사용하는 같은 글꼴 관리자를 통해 포함되며, 도움말에서 무료 veraPDF 도구로 파일을 검증하는 방법을 안내합니다.

  • TsgcReportPDFExport의 PDFUA 기본값은 True입니다
  • 항목의 AltText와 TagRole이 이미지와 제목을 설명합니다
  • 보관용 출력에는 PDFA를 rpaA3b 또는 rpaA3a로 설정합니다
  • FixedDocumentID와 FixedCreationDate는 테스트용으로 출력을 바이트 단위까지 재현 가능하게 만듭니다
도움말 항목 읽기
하나의 리포트, 사용자가 원하는 모든 형식

어디로든 전달

하나의 리포트, 사용자가 원하는 모든 형식

재무팀은 명세서를 Excel로, 고객은 PDF로, 연동 시스템은 CSV로, 웹 페이지는 썸네일을 원합니다. 엔진은 페이지를 한 번 준비하고 모든 내보내기가 같은 준비된 결과에서 동작하므로 모든 파일의 숫자가 동일합니다. XLSX 출력은 숫자를 숫자로 유지하므로 스프레드시트가 정리 없이 합계를 낼 수 있습니다. 모든 내보내기는 스트림에도 쓸 수 있어 웹 응답이나 메일 첨부에 적합하며, SaveToFiles는 한 번의 호출로 여러 형식을 씁니다.

  • TsgcReportPDFExport, TsgcReportXLSXExport, TsgcReportCSVExport, TsgcReportImageExport
  • LoadPrepared를 갖춘 TsgcReportPreparedPages가 한 번의 실행으로 여러 내보내기에 데이터를 공급합니다
  • DetectNumbers, SheetName, ExcludePageBands가 스프레드시트를 구성합니다
  • SaveToPNG에 전달한 DPI의 PNG 페이지
도움말 항목 읽기
데스크톱 애플리케이션을 위한 미리 보기 창

어디로든 전달

데스크톱 애플리케이션을 위한 미리 보기 창

사용자는 인쇄하거나 저장하기 전에 리포트를 페이지별로 넘겨 보고 싶어 합니다. 미리 보기 컨트롤은 PDF와 같은 렌더링으로 준비된 페이지를 보여 주며, 페이지 탐색, 확대/축소, 맞춤 모드, 직접 만들 때 숨길 수 있는 툴바를 제공합니다. VCL 미리 보기는 Windows에서, FireMonkey 미리 보기는 Windows에서 실행됩니다. 미리 보기는 sgcPDF 뷰어 컨트롤로 그리므로 사용자가 화면에서 보는 것이 PDF 내보내기가 쓰는 것과 같고, 미리 보기의 SaveToPDF는 사용자가 보고 있는 페이지를 저장합니다.

  • FirstPage, NextPage, PriorPage, LastPage를 갖춘 TsgcReportPreviewVCL
  • ZoomIn, ZoomOut, FitWidth, FitPage
  • 직접 만드는 탐색을 위한 ShowToolbar, CurrentPage, OnPageChange
  • TsgcReportPreviewFMX: Windows의 FireMonkey 미리 보기
도움말 항목 읽기

어디로든 전달

서비스와 Linux 데몬에서 헤드리스로 실행

오늘날 대부분의 리포트는 서버에서 생성됩니다. 야간 명세서, 결제 후 송장, API 뒤의 내보내기 같은 것입니다. sgcReports 코어는 VCL이나 FireMonkey에 의존하지 않고 외부 DLL이나 프린터 드라이버도 필요 없으므로 같은 코드가 Windows 서비스나 Linux64 데몬에서 실행됩니다. 도움말에는 각 스레드가 자신의 엔진을 소유하는 워커 풀 패턴이 설명되어 있습니다. 작업, 데이터, 리포트 정의는 JSON 파일로 도착할 수 있으므로 파일을 쓸 수 있는 모든 시스템이 데몬에 작업을 공급할 수 있습니다.

  • TsgcReportEngine은 창 없이 리포트를 준비합니다
  • ReportLinuxDaemon 데모는 작업 폴더를 감시하고 워커 스레드 4개로 PDF, XLSX, CSV, PNG를 렌더링합니다
  • sgcReportsConfigureForServer는 Windows에서 많은 스레드에 맞게 메모리 관리자를 조정합니다
  • 공유되는 읽기 전용 TsgcReportFontManager가 모든 스레드에 서비스됩니다
도움말 항목 읽기

웹의 리포트

sgcReportsHTML 브리지는 HTTP로 리포트를 제공하고 사용자가 브라우저에서 레이아웃을 편집하게 합니다.

웹의 리포트 Registered 에디션 전용

HTTP로 리포트 제공

웹 포털, 인트라넷, 모바일 앱은 종종 리포트를 반환하는 URL 하나면 충분합니다. HTTP 엔드포인트는 sgcWebSockets HTTP 서버에 이름으로 리포트를 등록하고 PDF, XLSX, CSV, PNG로 제공하며, 매개변수를 묻고, 결과를 페이지별로 보여 주고, 다운로드를 제공하는 HTML 뷰어를 갖추고 있습니다. 코드는 실행 전에 이벤트에서 데이터를 채웁니다. 엔드포인트는 데스크톱 코드와 같은 리포트 정의와 데이터 소스를 사용하므로 한 번 작성한 리포트가 애플리케이션과 브라우저 모두에 서비스됩니다.

  • RegisterReport와 BasePath를 갖춘 TsgcReportHTTPEndpoint
  • OnBeforePrepare가 요청마다 매개변수와 데이터를 설정합니다
  • 매개변수 폼을 위한 ShowParameters를 갖춘 TsgcReportHTMLViewer
  • TsgcWebSocketHTTPServer에서 실행되며, ReportHTTPServer 데모가 완전한 서버입니다

Delphi와 C++ Builder: sgcWebSockets Professional 이상과 sgcHTML이 필요합니다. .NET: esegece.sgcReports.HTML과 AspNetCore 패키지가 같은 경로를 호스팅합니다.

도움말 항목 읽기

웹의 리포트 Registered 에디션 전용

사용자를 위한 웹 리포트 디자이너

고급 사용자는 항상 열 하나를 더 추가하거나 다르게 그룹화하길 원하고, 변경할 때마다 개발자에게 티켓이 올라오곤 했습니다. 브라우저 디자이너는 밴드 캔버스, 속성 인스펙터, 실시간 미리 보기로 리포트의 JSON 정의를 편집하며, 완성된 리포트와 같은 엔드포인트가 이를 제공합니다. 누가 편집할 수 있는지는 사용자가 정하고, 저장된 정의는 sgcReports의 다른 모든 부분에서 불러옵니다. Download JSON 버튼은 정의를 보관하려는 누구에게나 전달합니다.

  • DesignerEnabled가 설정된 엔드포인트의 TsgcReportHTMLDesigner
  • 페이지, 밴드, 항목 트리, 끌기, 크기 조절, 밀리미터 단위 스냅, 실행 취소와 다시 실행
  • 리포트 JSON 스키마에서 생성되는 속성 인스펙터이며, 서버 측 유효성 검사가 해당 필드를 가리킵니다
  • 저장된 정의는 Linux 데몬을 포함한 어디서나 sgcReportLoadFromJSON으로 불러옵니다

운영 엔드포인트에서는 DesignerEnabled를 끄고 직접 만든 인증 뒤에 두세요.

도움말 항목 읽기

sgcReports 동작 보기

sgcUI 제품군 데모 속의 sgcReports: 내장 시뮬레이션 데이터로 오프라인에서 실행되는 완전한 애플리케이션입니다.

sgcReports로 개발하는 사람들

송장, 배송 명세서, 거래 명세서

업무용 애플리케이션은 매일 데이터베이스의 문서를 인쇄합니다. 마스터 상세 데이터셋 소스가 각 송장을 항목에 연결하고, 그룹과 바닥글이 합계를 인쇄하며, QR 코드나 GS1-128 바코드가 라벨에 들어가고, PDF 내보내기는 이메일로 보낼 수 있는 접근성 파일을 씁니다. 같은 리포트를 회계팀을 위해 XLSX로 저장할 수 있습니다.

  • 마스터 상세
  • 그룹과 소계
  • 바코드
  • 접근성 PDF
ReportInvoice 데모 실행

웹 포털을 위한 서버 측 리포트

고객 포털과 내부 API에는 요청 시 리포트가 필요합니다. HTTP 엔드포인트에 리포트를 등록하면 브라우저가 매개변수와 다운로드가 있는 뷰어를 받으며, 또는 Linux64 데몬에서 엔진을 실행해 워커 풀로 대기 중인 작업을 렌더링할 수 있습니다. 프린터 드라이버, 창, 외부 DLL이 관여하지 않습니다. 같은 JSON 정의가 뷰어와 데몬에 모두 사용됩니다.

  • HTTP로 리포트 제공
  • Linux 데몬
  • JSON 정의
ReportHTTPServer 데모 실행

접근성 및 보관 의무

공공 부문 공급업체와 규제 대상 기업은 화면 낭독기가 따라갈 수 있는 문서를 게시하고 수년간 보관해야 합니다. 태그된 PDF/UA-1 출력이 기본이고, 대체 텍스트와 제목 역할은 리포트 항목에 있으며, PDF/A-3은 속성 하나만 바꾸면 됩니다. 도움말은 무료 veraPDF 검증기로 결과를 확인하는 방법을 보여 줍니다. 재현 가능한 출력은 자동화된 테스트가 파일을 비교하는 데 도움이 됩니다.

  • 접근성 PDF
  • PDF/A-3
  • 재현 가능한 출력
ReportPDFUA 데모 실행

몇 줄로 만드는 그룹별 매출 리포트

Delphi, C++ Builder, C#에서 같은 API를 사용합니다. 지역별 머리글, 판매별 한 줄, 지역별 소계를 PDF, XLSX, CSV로 저장합니다.

JSON 소스 위의 플루언트 리포트: 소계가 있는 지역별 그룹 하나를 PDF, XLSX, CSV로 저장합니다.

uses
  Classes, SysUtils,
  sgcReports_Types, sgcReports_Model, sgcReports_Data, sgcReports_Fluent;

const
  CS_SALES = '[' +
    '{"Region":"East","Customer":"Acme Corp","Amount":1450.00},' +
    '{"Region":"East","Customer":"Blue Harbor","Amount":600.00},' +
    '{"Region":"North","Customer":"Nordic Labs","Amount":2100.75},' +
    '{"Region":"North","Customer":"Fjord Ltd","Amount":880.20}]';
  CS_TOTAL = '[FormatFloat(''#,0.00'', Sum(Sales.Amount))]';

procedure ExportSalesReport(const aFolder: string);
var
  oSales: TsgcReportJSONSource;
  oBuilder: TsgcReportBuilder;
begin
  oSales := TsgcReportJSONSource.Create(nil);
  oBuilder := TsgcReportBuilder.Create;
  try
    oSales.SourceName := 'Sales';
    oSales.JSON := CS_SALES;
    oBuilder.Title('Sales by region').Author('eSeGeCe').Units(ruMillimeters)
      .Style('Base').Font('Arial', 10).EndStyle
      .Style('Group').Font('Arial', 11).Bold.BackColor($EEEEEE).EndStyle
      .Page.Paper(rpsA4).Margins(15)
      // one header per region, one line per sale, a subtotal per region
      .GroupHeader('Sales.Region', 9).Style('Group')
      .Text('Region: [Sales.Region]', 0, 1, 180, 7).TagRole(rtrHeading2).EndBand
      .MasterData('Sales', 6).Style('Base')
      .Text('[Sales.Customer]', 2, 0, 120, 6)
      .Text('[Sales.Amount]', 130, 0, 50, 6).AlignRight.Format('#,0.00').EndBand
      .GroupFooter(9).Style('Base')
      .Text('Region total ' + CS_TOTAL, 80, 1, 100, 6).AlignRight.Bold.EndBand
      .PageFooter(8).Style('Base')
      .Text('Page [Page] of [TotalPages]', 0, 1, 180, 6).AlignCenter.EndBand
      .EndPage.Data(oSales);
    // accessible PDF (PDF/UA is on by default), plus the same data as Excel
    oBuilder.SaveToPDF(IncludeTrailingPathDelimiter(aFolder) + 'sales.pdf');
    oBuilder.SaveToXLSX(IncludeTrailingPathDelimiter(aFolder) + 'sales.xlsx');
    oBuilder.SaveToCSV(IncludeTrailingPathDelimiter(aFolder) + 'sales.csv');
  finally
    oBuilder.Free;
    oSales.Free;
  end;
end;

도움말 항목 읽기 →

생성된 sgcReports 헤더를 사용하는 C++ Builder의 같은 리포트.

#include <vcl.h>
#include "sgcReports_Types.hpp"
#include "sgcReports_Model.hpp"
#include "sgcReports_Data.hpp"
#include "sgcReports_Fluent.hpp"

void ExportSalesReport(const String Folder)
{
  const String Total = "[FormatFloat('#,0.00', Sum(Sales.Amount))]";
  TsgcReportJSONSource *Sales = new TsgcReportJSONSource(NULL);
  TsgcReportBuilder *Builder = new TsgcReportBuilder();
  try
  {
    Sales->SourceName = "Sales";
    Sales->JSON = "[{\"Region\":\"East\",\"Customer\":\"Acme Corp\",\"Amount\":1450.00},"
                  "{\"Region\":\"East\",\"Customer\":\"Blue Harbor\",\"Amount\":600.00},"
                  "{\"Region\":\"North\",\"Customer\":\"Nordic Labs\",\"Amount\":2100.75}]";
    Builder->Title("Sales by region")->Author("eSeGeCe")->Units(ruMillimeters)
      ->Style("Base")->Font("Arial", 10)->EndStyle()
      ->Style("Group")->Font("Arial", 11)->Bold()->BackColor(0xEEEEEE)->EndStyle()
      ->Page("")->Paper(rpsA4, roPortrait)->Margins(15)
      // one header per region, one line per sale, a subtotal per region
      ->GroupHeader("Sales.Region", 9)->Style("Group")
      ->Text("Region: [Sales.Region]", 0, 1, 180, 7)->TagRole(rtrHeading2)->EndBand()
      ->MasterData("Sales", 6)->Style("Base")
      ->Text("[Sales.Customer]", 2, 0, 120, 6)
      ->Text("[Sales.Amount]", 130, 0, 50, 6)->AlignRight()->Format("#,0.00")->EndBand()
      ->GroupFooter(9)->Style("Base")
      ->Text("Region total " + Total, 80, 1, 100, 6)->AlignRight()->Bold()->EndBand()
      ->EndPage()->Data(Sales);
    // accessible PDF (PDF/UA is on by default), plus the same data as Excel
    Builder->SaveToPDF(IncludeTrailingPathDelimiter(Folder) + "sales.pdf");
    Builder->SaveToXLSX(IncludeTrailingPathDelimiter(Folder) + "sales.xlsx");
    Builder->SaveToCSV(IncludeTrailingPathDelimiter(Folder) + "sales.csv");
  }
  __finally
  {
    delete Builder;
    delete Sales;
  }
}

도움말 항목 읽기 →

Delphi와 같은 클래스 이름을 사용하는 C#의 같은 빌더 체인.

using System.IO;
using esegece.sgcReports;

public static class SalesReport
{
    const string Sales = "[" +
        "{\"Region\":\"East\",\"Customer\":\"Acme Corp\",\"Amount\":1450.00}," +
        "{\"Region\":\"East\",\"Customer\":\"Blue Harbor\",\"Amount\":600.00}," +
        "{\"Region\":\"North\",\"Customer\":\"Nordic Labs\",\"Amount\":2100.75}," +
        "{\"Region\":\"North\",\"Customer\":\"Fjord Ltd\",\"Amount\":880.20}]";
    const string Total = "[FormatFloat('#,0.00', Sum(Sales.Amount))]";

    public static void Export(string aFolder)
    {
        using (TsgcReportJSONSource oSales = new TsgcReportJSONSource())
        using (TsgcReportBuilder oBuilder = new TsgcReportBuilder())
        {
            oSales.SourceName = "Sales";
            oSales.JSON = Sales;
            oBuilder.Title("Sales by region").Author("eSeGeCe").Units(TsgcReportUnits.ruMillimeters)
                .Style("Base").Font("Arial", 10).EndStyle()
                .Style("Group").Font("Arial", 11).Bold().BackColor(0xEEEEEE).EndStyle()
                .Page().Paper(TsgcReportPaperSize.rpsA4).Margins(15)
                // one header per region, one line per sale, a subtotal per region
                .GroupHeader("Sales.Region", 9).Style("Group")
                .Text("Region: [Sales.Region]", 0, 1, 180, 7)
                .TagRole(TsgcReportTagRole.rtrHeading2).EndBand()
                .MasterData("Sales", 6).Style("Base")
                .Text("[Sales.Customer]", 2, 0, 120, 6)
                .Text("[Sales.Amount]", 130, 0, 50, 6).AlignRight().Format("#,0.00").EndBand()
                .GroupFooter(9).Style("Base")
                .Text("Region total " + Total, 80, 1, 100, 6).AlignRight().Bold().EndBand()
                .EndPage().Data(oSales);
            // accessible PDF (PDF/UA is on by default), plus the same data as Excel
            oBuilder.SaveToPDF(Path.Combine(aFolder, "sales.pdf"));
            oBuilder.SaveToXLSX(Path.Combine(aFolder, "sales.xlsx"));
            oBuilder.SaveToCSV(Path.Combine(aFolder, "sales.csv"));
        }
    }
}
dotnet add package esegece.sgcReports

도움말 항목 읽기 →

sgcReports 데모 실행하기

sgcReports에는 Delphi 데모 10개, C++ Builder 데모 8개, .NET 데모 10개가 포함되어 있습니다. 아래 카드는 Delphi 프로젝트이며, 대부분 같은 이름의 C++ Builder 및 .NET 대응 데모가 있습니다.

ReportInvoice

ReportInvoice

데이터셋으로 만든 마스터 상세 송장: 머리글, 항목, 합계, QR 코드를 미리 보기와 PDF로 제공합니다.

ReportGroups

ReportGroups

지역별로 그룹화한 매출이며, 그룹 머리글, 소계, 요약 밴드의 총합계가 있습니다.

ReportFluent

ReportFluent

플루언트 빌더로 작성한 완전한 리포트를 모든 형식으로 내보냅니다.

ReportJSONDefinition

ReportJSONDefinition

두 개의 메모에서 JSON 정의와 데이터를 편집하고 렌더링하며, 오류는 JSON 경로를 가리킵니다.

ReportPDFUA

ReportPDFUA

대체 텍스트와 제목 역할이 있는 태그된 PDF/UA-1 출력이며, veraPDF 검사에 바로 사용할 수 있습니다.

ReportExports

ReportExports

준비된 리포트 하나를 PDF, XLSX, CSV, PNG 파일로 씁니다.

ReportDatabaseSQL

ReportDatabaseSQL

데이터셋 소스를 통해 SQL 쿼리로 데이터를 공급받는 리포트.

ReportMobileFMX

페이지 탐색을 지원하는 FireMonkey 미리 보기. FireMonkey 미리 보기는 Windows에서 실행됩니다.

ReportLinuxDaemon

워커 스레드 풀로 대기 중인 JSON 작업을 렌더링하는 Windows 및 Linux64용 콘솔 데몬.

Registered 에디션 전용 ReportHTTPServer

브라우저 뷰어, 매개변수, 다운로드와 함께 HTTP로 제공하는 리포트. sgcWebSockets와 sgcHTML이 필요합니다.

컴파일된 데모

sgcUI 제품 전체의 실행 파일을 제공하며, 설치가 필요 없습니다.

sgcUI_bin.zip 다운로드 →

sgcReports가 포함된 곳

sgcReports는 sgcUI Enterprise에 포함되며 단독으로도 판매됩니다. PDF 출력과 바코드에 sgcPDF 엔진을 사용하므로 모든 구성에서 sgcPDF가 필요합니다. 또한 All-Access 번들에도 포함됩니다.

sgcReports 단일 패키지

€199 / 개발자, 전체 소스 코드, 1년 업데이트.

sgcReports 구매 → 가격 보기 →

sgcUI Enterprise

sgcUI 제품 14개 전체, €699부터.

Enterprise 보기 →

무료 .NET Community 패키지(esegece.sgcReports.Community, .WinForms.Community, .HTML.Community, .AspNetCore.Community)에는 엔진, 내보내기, 미리 보기가 포함됩니다. Delphi에서는 Community 설치 프로그램이 라이선스가 있는 sgcPDF가 설치된 경우에만 sgcReports를 제공합니다. Delphi와 C++ Builder용 sgcReportsHTML 브리지는 Registered 전용입니다.

기능Community (무료)Registered 에디션
플루언트 빌더, 리포트 모델, JSON 정의✓✓
밴드, 그룹, 마스터 상세, 표현식✓✓
바코드✓✓
PDF/UA 및 PDF/A-3 내보내기✓✓
XLSX, CSV, PNG 내보내기✓✓
WinForms 미리 보기✓✓
서비스와 Linux용 헤드리스 엔진✓✓
Delphi와 C++ Builder용 sgcReportsHTML 브리지(HTTP 엔드포인트, 뷰어, 웹 디자이너)−✓

지원 프레임워크 및 플랫폼

sgcReports의 컴포넌트

엔진과 모델

TsgcReport, TsgcReportEngine, 플루언트 TsgcReportBuilder.

데이터 소스

TsgcReportDataSetSource, TsgcReportJSONSource, TsgcReportEventSource.

내보내기

TsgcReportPDFExport, TsgcReportXLSXExport, TsgcReportCSVExport, TsgcReportImageExport.

미리 보기

TsgcReportPreviewVCL과 TsgcReportPreviewFMX이며, FireMonkey 미리 보기는 Windows에서 실행됩니다.

sgcReportsHTML 브리지

TsgcReportHTTPEndpoint, TsgcReportHTMLViewer, TsgcReportHTMLDesigner. sgcWebSockets Professional 이상과 sgcHTML이 필요합니다. Registered

.NET

esegece.sgcReports 네임스페이스의 같은 클래스 이름: 빌더, 소스, 엔진, 내보내기.

대상컴포넌트플랫폼
Delphi 7부터 13모델, 표현식, 데이터, 레이아웃, 엔진, 내보내기Windows, Linux64, macOS, iOS, Android
C++ Builder 2007부터 13동일한 클래스생성된 .hpp 헤더와 정적 라이브러리
VCL 미리 보기TsgcReportPreviewVCLWindows
FireMonkey 미리 보기TsgcReportPreviewFMXWindows
.NET빌더, 소스, 엔진, 내보내기, WinForms 미리 보기Windows, 그리고 Linux의 헤드리스 사용

자주 묻는 질문

예, 항상 필요합니다. sgcReports는 sgcPDF 엔진으로 PDF를 쓰고 바코드를 그립니다. sgcUI Enterprise에는 둘 다 포함되어 있습니다. Delphi Community 설치 프로그램에서는 라이선스가 있는 sgcPDF가 설치된 경우에만 sgcReports가 제공됩니다. PDF 엔진은 접근성 PDF 파일의 태그 구조도 그립니다.

예, 브라우저에서 사용합니다. sgcReportsHTML 브리지의 TsgcReportHTMLDesigner는 밴드 캔버스, 속성 인스펙터, 실시간 미리 보기로 JSON 리포트 정의를 편집합니다. 코드에서는 플루언트 빌더와 JSON 정의가 같은 모델을 다룹니다. 저장된 정의는 데스크톱 애플리케이션, 서비스, 데몬 모두에서 불러옵니다.

예. 코어는 VCL이나 FireMonkey에 의존하지 않고 외부 DLL도 없으므로 엔진과 내보내기가 Linux64 콘솔 애플리케이션과 데몬에서 실행됩니다. ReportLinuxDaemon 데모와 Linux 데몬 항목에 systemd 유닛이 포함되어 있습니다. 같은 코드가 Windows 서비스에서도 실행됩니다.

PDF(기본은 태그된 PDF/UA-1, 요청 시 PDF/A-3), XLSX, CSV, PNG 페이지입니다. 모두 같은 준비된 페이지에서 동작하므로 리포트를 한 번 준비하고 필요한 만큼 내보낼 수 있습니다. 각 내보내기는 웹 응답과 메일 첨부를 위해 파일이나 스트림에 쓸 수 있습니다.

예, 스레드당 엔진 하나를 사용하면 됩니다. 각 워커가 자신의 리포트, 엔진, 데이터 소스, 내보내기를 만들고, 글꼴 관리자와 읽기 전용 JSON 정의는 공유할 수 있습니다. 스레드 안전성 항목에 워커 풀 패턴이 나와 있습니다. Windows 서버는 많은 스레드를 위해 시작 시 sgcReportsConfigureForServer를 한 번 호출할 수도 있습니다.

예. 리포트 정의를 JSON으로 저장하고 실행 중에 sgcReportLoadFromJSON으로 불러오면 새 레이아웃에 새 빌드가 필요하지 않습니다. 사용자는 웹 디자이너에서 편집할 수 있고, 애플리케이션이 직접 생성할 수도 있습니다. 불러오는 중의 오류는 문제가 된 멤버의 JSON 경로를 알려 주므로 고객별 레이아웃을 지원하기 쉽습니다.

예. TsgcReportPreviewVCL은 탐색, 확대/축소, 맞춤 모드와 함께 준비된 페이지를 보여 줍니다. TsgcReportPreviewFMX는 Windows의 FireMonkey 미리 보기이고, .NET에는 WinForms 미리 보기가 있습니다. 미리 보기는 sgcPDF 뷰어 컨트롤로 그리므로 화면이 PDF 내보내기와 일치합니다.

sgcReports 도움말

3,000+개발자
20+년
761+컴포넌트
30+API 통합
5플랫폼
30일 환불 보장만족하지 않으세요? 구매 후 30일 이내에 전액 환불을 요청하세요. 환불 정책 보기

지금 sgcReports를 체험해 보세요

sgcUI 체험판에는 sgcReports, sgcPDF와 다른 모든 sgcUI 제품이 포함되어 있습니다.