Delphi、C++ Builder、.NET sgcUI の一部

sgcReports:Delphi、C++ Builder、.NET 向けレポートエンジン

レポートを一度設計すれば、アクセシブルな PDF、Excel ファイル、CSV、PNG ページとして配信できます。フルーエントなチェーンでコードから作成することも、実行時に JSON 定義を読み込むこともでき、グループ、小計、マスター詳細、バーコードに対応します。エンジンはウィンドウも外部 DLL も必要としないので、サービスや Linux64 のデーモンで動作します。

既定で PDF/UA-1 のタグ付き PDFPDF、XLSX、CSV、PNG、HTML、DOCXWindows サービスと Linux64sgcUI Enterprise に含まれます
請求書ページと QR コードを表示した sgcReports のプレビューウィンドウ

レポートエンジンに必要なすべて

11 の機能を、実際の API とその背後のヘルプトピックとともに紹介します。

レポートを設計する

本物のバンド、グループ、式を使って、レポートをコードまたは JSON で記述します。

完全なレポートを、読みやすい数行で書く

レポートを設計する

完全なレポートを、読みやすい数行で書く

レポートデザイナーは便利ですが、レイアウトをバージョン管理に置き、プルリクエストでレビューし、自社のメタデータから生成する必要が出ると、話は別です。TsgcReportBuilder は、スタイル、ページ、バンド、項目を 1 本のフルーエントなチェーンで記述するので、レポートは、プロジェクトの他の部分と同じようにコンパイルでき、差分を取れ、リファクタリングできる通常のコードになります。同じチェーンがレポートを準備し、すべての出力形式に保存します。この方法で作ったレポートは、ループで生成でき、関数として共有でき、他のコードと同様に単体テストで検証できます。

  • Style、Page、GroupHeader、MasterData、GroupFooter、PageFooter は、レイアウトそのままに読めます
  • ビルダーから直接、SaveToPDF、SaveToXLSX、SaveToCSV、SaveToPNG を呼び出せます
  • Web レスポンス向けの SaveToPDFStream などのストリーム版もあります
  • ビルダーは通常の TsgcReport モデルを設定するので、コードでさらに調整できます
  • アラビア語とヘブライ語の右から左対応:レポートの RightToLeft とバンドおよび項目の BiDiMode がレイアウトをミラー化し、PDF、XLSX、HTML の出力ではアラビア語とヘブライ語のテキストがシェイピングされます
ヘルプのトピックを読む
そのまま動くグループ、小計、ページ番号

レポートを設計する

そのまま動くグループ、小計、ページ番号

業務レポートは、単純な一覧であることはまれです。地域別の売上、顧客別の請求書、倉庫別の在庫などです。sgcReports には、レポートタイトル、ページヘッダー、グループヘッダー、データ、グループフッター、ページフッター、サマリーの各バンドを持つ、本物のバンド型レイアウトがあります。グループは式の値が変わると区切られ、独自の合計を出力し、新しいページを開始したり、全ページでヘッダーを繰り返したりできるので、長いレポートも読みやすく保てます。サブレポートを使えば、あるページに別のページのレイアウトを含められるため、サマリーや付録に便利です。

  • グループヘッダーバンドの GroupExpression。グループを入れ子にして 2 階層以上にできます
  • StartNewPage、RepeatOnEveryPage、KeepTogether でページの流れを制御します
  • rbtReportTitle から rbtReportSummary までのバンドの種類に加え、列ヘッダーとフッターがあります
  • 「7 ページ中 2 ページ」のようなフッターには、式の中で TotalPages を使います
  • PrintOnFirstPage と PrintOnLastPage でページバンドの表示位置を決め、SubreportPageName で別のページを埋め込みます
ヘルプのトピックを読む
データベースからそのまま請求書を作る

レポートを設計する

データベースからそのまま請求書を作る

請求書は、明細行を持つマスターレコードで、すべての行に正しい製品、数量、価格が必要です。データセットソースは、FireDAC を含む任意の TDataSet をバインドし、キーフィールドで詳細ソースをマスターにリンクするので、各請求書は自分の明細行と合計を出力します。データがデータベースにない場合は、JSON 配列や独自のイベント駆動型ソースが同じように使えます。詳細バンドは現在のマスターレコードの各行ごとに繰り返され、フッターは明細行にわたる集計式で請求書の合計を出力します。

  • TsgcReportDataSetSource と、MasterSource、MasterFields、DetailFields
  • TsgcReportJSONSource は JSON 文字列またはファイルを読み込み、RecordsPath で配列を指定します
  • TsgcReportEventSource は、OnFirst、OnNext、OnGetValue を通じて、コードから行を取得します
  • ソースは、AddDataSource でエンジンに登録します
ヘルプのトピックを読む
再コンパイルなしでレポートを変更する

レポートを設計する

再コンパイルなしでレポートを変更する

月次明細書に新しい列を追加するために、アプリケーションの新しいリリースが必要になるべきではありません。レポート定義は JSON として保存および読み込みができるので、レイアウトをデータベース、設定フォルダ、顧客別のディレクトリに置けます。アプリケーションは実行時に定義を読み込み、データをバインドして描画し、同じファイルが Web デザイナーにも使われます。定義はプレーンテキストなので、バージョン管理で差分が見やすく、自社のツールで生成したり、スクリプトで移行したりできます。

  • 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 で、テスト向けにバイト単位で再現可能な出力にできます
ヘルプのトピックを読む
1 つのレポートで、ユーザーが求めるあらゆる形式を

どこにでも届ける

1 つのレポートで、ユーザーが求めるあらゆる形式を

経理部門は明細書を Excel で、顧客は PDF で、システム連携は CSV で、Web ページはサムネイルを求めます。エンジンはページを一度だけ準備し、すべてのエクスポートが同じ準備結果から作られるので、どのファイルでも数値は同一です。XLSX 出力は数値を数値のまま保持するため、スプレッドシートで後処理なしに合計できます。すべてのエクスポートはストリームにも書き込めるので、Web レスポンスやメール添付にも対応し、SaveToFiles は 1 回の呼び出しで複数の形式を書き出します。

  • TsgcReportPDFExport、TsgcReportXLSXExport、TsgcReportCSVExport、TsgcReportImageExport
  • TsgcReportPreparedPages と LoadPrepared で、1 回の実行から複数のエクスポートに供給します
  • DetectNumbers、SheetName、ExcludePageBands で、スプレッドシートの形を整えます
  • SaveToPNG に渡した DPI での PNG ページ
ヘルプのトピックを読む
デスクトップアプリケーション向けのプレビューウィンドウ

どこにでも届ける

デスクトップアプリケーション向けのプレビューウィンドウ

ユーザーは、印刷や保存の前に、レポートのページをめくって確認したいと考えます。プレビューコントロールは、PDF と同じ描画で準備済みのページを表示し、ページ移動、ズーム、フィットモードを備え、独自に作る場合は非表示にできるツールバーも付いています。VCL プレビューは Windows で動作し、FireMonkey プレビューは Windows で動作します。プレビューは sgcPDF のビューアコントロールを通じて描画するので、ユーザーが画面で見るものは PDF エクスポートが書き出すものと同じで、プレビューの SaveToPDF は、ユーザーが見ているページを保存します。

  • TsgcReportPreviewVCL の FirstPage、NextPage、PriorPage、LastPage
  • 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 が、すべてのスレッドに提供されます
ヘルプのトピックを読む

Web 上のレポート

sgcReportsHTML ブリッジは、レポートを HTTP で配信し、ユーザーがブラウザでレイアウトを編集できるようにします。

Web 上のレポート 登録版のみ

レポートを HTTP で配信する

Web ポータル、イントラネット、モバイルアプリが必要とするのは、多くの場合、レポートを返す URL だけです。HTTP エンドポイントは、sgcWebSockets の HTTP サーバーにレポートを名前で登録し、PDF、XLSX、CSV、PNG として配信します。パラメーターを尋ね、結果のページをめくり、ダウンロードを提供する HTML ビューアも付いています。コードは、実行のたびにイベントでデータを設定します。エンドポイントは、デスクトップのコードと同じレポート定義とデータソースを使うので、一度書いたレポートが、アプリケーションとブラウザの両方に使えます。

  • TsgcReportHTTPEndpoint と、RegisterReport、BasePath
  • OnBeforePrepare は、リクエストごとにパラメーターとデータを設定します
  • パラメーターフォーム用の ShowParameters を持つ TsgcReportHTMLViewer
  • TsgcWebSocketHTTPServer 上で動作します。ReportHTTPServer デモは、完全なサーバーです

Delphi と C++ Builder:sgcWebSockets Professional 以上と sgcHTML が必要です。.NET:esegece.sgcReports.HTML と AspNetCore のパッケージが、同じルートをホストします。

ヘルプのトピックを読む

Web 上のレポート 登録版のみ

ユーザー向けの Web レポートデザイナー

パワーユーザーは、いつもあと 1 列、あるいは別のグループ化を求めます。以前は、変更のたびに開発者へのチケットが必要でした。ブラウザのデザイナーは、バンドキャンバス、プロパティインスペクタ、ライブプレビューを使ってレポートの JSON 定義を編集し、完成したレポートと同じエンドポイントから配信されます。編集を許可する相手は自分で決められ、保存された定義は sgcReports の他のあらゆる部分で読み込めます。JSON ダウンロードボタンは、定義を保管したい人に渡せます。

  • DesignerEnabled を設定したエンドポイント上の TsgcReportHTMLDesigner
  • ページ、バンド、項目のツリー、ドラッグ、サイズ変更、ミリメートル単位のスナップ、元に戻すとやり直し
  • レポートの JSON スキーマから生成されるプロパティインスペクタ。サーバー側の検証が、問題のあるフィールドを指し示します
  • 保存された定義は、Linux のデーモンを含むどこでも sgcReportLoadFromJSON で読み込めます

本番のエンドポイントでは DesignerEnabled をオフにするか、独自の認証の背後に置いてください。

ヘルプのトピックを読む

sgcReports の動作を見る

sgcUI スイートのデモに含まれる sgcReports:組み込みのシミュレーションデータでオフラインで動作する完全なアプリケーションです。

sgcReports の主な利用シーン

請求書、納品書、明細書

基幹業務アプリケーションは、毎日データベースから文書を印刷します。マスター詳細のデータセットソースが各請求書を明細行にリンクし、グループとフッターが合計を出力し、QR コードや GS1-128 バーコードがラベルに付き、PDF エクスポートはメールにそのまま添付できるアクセシブルなファイルを書き出します。同じレポートは、経理チーム向けに XLSX としても保存できます。

  • マスター詳細
  • グループと小計
  • バーコード
  • アクセシブルな PDF
ReportInvoice デモを実行する

Web ポータル向けのサーバー側レポート

顧客ポータルや社内 API では、必要なときにレポートが求められます。HTTP エンドポイントにレポートを登録すれば、ブラウザがパラメーターとダウンロード付きのビューアを受け取ります。または、Linux64 のデーモンでエンジンを実行し、ワーカープールでキューに入ったジョブを描画します。プリンタードライバー、ウィンドウ、外部 DLL は不要です。同じ JSON 定義が、ビューアにもデーモンにも使われます。

  • レポートを HTTP で配信
  • Linux デーモン
  • JSON 定義
ReportHTTPServer デモを実行する

アクセシビリティとアーカイブの義務

公共部門のサプライヤーや規制対象の企業は、スクリーンリーダーで読める文書を公開し、それを何年もアーカイブしなければなりません。タグ付きの PDF/UA-1 出力が既定で、代替テキストと見出しの役割はレポート項目に設定され、PDF/A-3 はプロパティ 1 つで切り替えられます。ヘルプには、無料の veraPDF バリデーターで結果を確認する方法を紹介しています。再現可能な出力は、自動テストでのファイル比較に役立ちます。

  • アクセシブルな PDF
  • PDF/A-3
  • 再現可能な出力
ReportPDFUA デモを実行する

数行で作る地域別売上レポート

Delphi、C++ Builder、C# で同じ API を使えます。地域ごとのヘッダー、売上ごとの行、地域ごとの小計を持つレポートを、PDF、XLSX、CSV として保存します。

JSON ソース上のフルーエントなレポート:地域ごとに 1 つのグループと小計を持ち、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;
  }
}

ヘルプのトピックを読む →

C# での同じビルダーチェーン。Delphi と同じクラス名を使います。

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 には、10 の Delphi デモ、8 つの C++ Builder デモ、10 の .NET デモが付属します。以下のカードは Delphi のプロジェクトで、多くには同じ名前の C++ Builder 版と .NET 版があります。

ReportInvoice

ReportInvoice

データセットからのマスター詳細の請求書:ヘッダー、明細行、合計、QR コードを、プレビューと PDF で表示します。

ReportGroups

ReportGroups

地域別にグループ化した売上。グループヘッダー、小計、サマリーバンドの総合計を表示します。

ReportFluent

ReportFluent

フルーエントビルダーで書いた完全なレポートを、すべての形式にエクスポートします。

ReportJSONDefinition

ReportJSONDefinition

2 つのメモで JSON 定義とそのデータを編集して描画します。エラーは JSON パスを示します。

ReportPDFUA

ReportPDFUA

代替テキストと見出しの役割を持つタグ付き PDF/UA-1 出力。veraPDF での確認に使えます。

ReportExports

ReportExports

1 つの準備済みレポートを、PDF、XLSX、CSV、PNG ファイルとして書き出します。

ReportDatabaseSQL

ReportDatabaseSQL

データセットソースを通じて、SQL クエリでデータを供給するレポート。

ReportMobileFMX

ページナビゲーション付きの FireMonkey プレビュー。FireMonkey プレビューは Windows で動作します。

ReportLinuxDaemon

Windows と Linux64 向けのコンソールデーモン。ワーカースレッドのプールで、キューに入った JSON ジョブを描画します。

登録版のみ ReportHTTPServer

ブラウザのビューア、パラメーター、ダウンロード付きで HTTP 配信するレポート。sgcWebSockets と sgcHTML が必要です。

コンパイル済みデモ

sgcUI 全製品のすぐに実行できる実行ファイルです。インストールは不要です。

sgcUI_bin.zip をダウンロード →

Getting Started ガイド

Delphi (VCL) 向けの QuickStart デモ 5 つが Demos\Reports\Delphi\00.QuickStart に入っています。PDF ガイドが、それらを順を追って解説します。最初のレポート、データセットからのデータ一覧、グループと合計、エクスポートと印刷、請求書発行アプリケーション。

ガイドをダウンロード(PDF、英語) →

sgcReports が含まれるエディション

sgcReports は sgcUI Enterprise に含まれ、単体でも販売しています。PDF 出力とバーコードには sgcPDF エンジンを使うため、どの構成でも sgcPDF が必要です。All-Access バンドルにも含まれます。

sgcReports 単体パッケージ

€199 / 開発者、ソースコード一式、1 年間のアップデート付き。

sgcReports を購入 → 価格を見る →

sgcUI Enterprise

sgcUI 全 17 製品、€699 から。

Enterprise を見る →

無料の .NET Community パッケージ(esegece.sgcReports.Community、.WinForms.Community、.HTML.Community、.AspNetCore.Community、.Wpf.Community、.Avalonia.Community、.sgcSign.Community)には、エンジン、エクスポート、プレビューが含まれます。Delphi と C++ Builder 向けの sgcReportsHTML ブリッジは、登録版のみです。

機能Community(無料)登録版
フルーエントビルダー、レポートモデル、JSON 定義✓✓
バンド、グループ、マスター詳細、式✓✓
バーコード✓✓
PDF/UA と PDF/A-3 のエクスポート✓✓
XLSX、CSV、PNG のエクスポート✓✓
HTML エクスポート✓✓
DOCX エクスポート−✓
VCL と FireMonkey 向けのエンドユーザー用レポートデザイナー−✓
レポート内のグラフとピボットテーブル項目(sgcCharts と sgcPivotGrid のブリッジ)−✓
WinForms プレビュー✓✓
サービスと Linux 向けのヘッドレスエンジン✓✓
Delphi と C++ Builder 向けの sgcReportsHTML ブリッジ(HTTP エンドポイント、ビューア、Web デザイナー)−✓

対応フレームワークとプラットフォーム

sgcReports のコンポーネント

エンジンとモデル

TsgcReport、TsgcReportEngine、フルーエントな TsgcReportBuilder。

データソース

TsgcReportDataSetSource、TsgcReportJSONSource、TsgcReportEventSource。

エクスポート

TsgcReportPDFExport、TsgcReportXLSXExport、TsgcReportCSVExport、TsgcReportImageExport。 TsgcReportHTMLExport はすべてのエディションで HTML を、TsgcReportDOCXExport は登録版で Word 文書を書き出します。

プレビュー

TsgcReportPreviewVCL と TsgcReportPreviewFMX。FireMonkey プレビューは Windows で動作します。

sgcReportsHTML ブリッジ

TsgcReportHTTPEndpoint、TsgcReportHTMLViewer、TsgcReportHTMLDesigner。sgcWebSockets Professional 以上と sgcHTML が必要です。登録版

.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 には両方が含まれます。PDF エンジンは、アクセシブルな PDF ファイルのタグ付き構造も描画します。

はい、ブラウザ上にあります。sgcReportsHTML ブリッジの TsgcReportHTMLDesigner が、バンドキャンバス、プロパティインスペクタ、ライブプレビューを使って JSON のレポート定義を編集します。コードでは、フルーエントビルダーと JSON 定義が同じモデルを扱えます。保存された定義は、デスクトップアプリケーション、サービス、デーモンのいずれでも読み込めます。

はい。コアは VCL にも FireMonkey にも依存せず、外部 DLL も不要なので、エンジンとエクスポートは Linux64 のコンソールアプリケーションやデーモンで動作します。ReportLinuxDaemon デモと Linux デーモンのトピックには、systemd ユニットが含まれます。同じコードは、Windows サービスでも動作します。

PDF(既定でタグ付きの PDF/UA-1、指定で PDF/A-3)、XLSX、CSV、PNG ページです。すべて同じ準備済みページから作られるので、レポートは一度準備すれば、必要な回数だけエクスポートできます。各エクスポートは、ファイルにもストリームにも書き込めるため、Web レスポンスやメール添付にも使えます。

はい。ただし、スレッドごとに 1 つのエンジンを使います。各ワーカーは、自分のレポート、エンジン、データソース、エクスポートを作成し、フォントマネージャーと読み取り専用の JSON 定義は共有できます。スレッドセーフのトピックに、ワーカープールのパターンを紹介しています。Windows サーバーでは、多数のスレッドのために、起動時に一度だけ sgcReportsConfigureForServer を呼び出すこともできます。

はい。レポート定義を JSON として保存し、実行時に sgcReportLoadFromJSON で読み込めば、新しいレイアウトのために新しいビルドは不要です。ユーザーは Web デザイナーで編集でき、アプリケーションが生成することもできます。読み込み時のエラーには、問題のあるメンバーの JSON パスが示されるため、顧客別のレイアウトのサポートが容易になります。

はい。TsgcReportPreviewVCL は、準備済みのページをナビゲーション、ズーム、フィットモード付きで表示します。TsgcReportPreviewFMX は Windows 上の FireMonkey プレビューで、.NET には WinForms プレビューがあります。プレビューは sgcPDF のビューアコントロールを通じて描画するので、画面は PDF エクスポートと一致します。

sgcReports のヘルプ

移行をお考えですか?

QuickReport からの移行ですか?

移行キットでは、お使いの QuickReport のバンドとコントロールを sgcReports の対応メンバーに結び付け、コンパイル済みデモのコード、番号付きの移行手順、既知の相違点を示します。

QuickReport からの移行 →
sgcUI のすべての移行キット →
3,000+開発者
20+年
761+コンポーネント
30+API 連携
5プラットフォーム
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る

今すぐ sgcReports をお試しください

sgcUI 体験版には、sgcReports、sgcPDF、他のすべての sgcUI 製品が含まれます。