ERP の経営ダッシュボードと営業ダッシュボード
ERP のスタートページには、売上、未処理の受注、期限超過の請求書、解約を、トレンド矢印付きの KPI カードで表示し、その下のタイルに営業チャートと上位顧客のグリッドを配置します。毎晩、サービスが同じカードを経営陣向けメールの PNG としてレンダリングし、画面と同じ数値と色になります。
- KPI カード
- タイル内の任意のコントロール
- ヘッドレスの KPI 画像
- テーマ
レイアウトのコードなしで、業務ダッシュボードを作れます。12 列のグリッドにタイルを配置し、それぞれに KPI カード、チャート、地図、レポートプレビューを置き、プロパティ 1 つで画面全体をダークテーマに切り替え、ユーザーが自分でドラッグ、サイズ変更、レイアウトの保存をできるようにします。タイルランチャーで、アプリケーションにグループ化されたタイルのスタート画面を持たせられます。
8 つのグループに分けた 18 の機能です。実際のコンポーネント名とプロパティ名を示し、各ヘルプトピックにリンクしています。登録版と表示された機能は、無料の .NET Community ビルドには含まれません。
タイルを自動で配置するグリッドと、数値を表示するカードです。
レイアウトとコンテンツ
ダッシュボードは、どのウィンドウサイズでもどの DPI でも整った状態を保つタイルのグリッドです。フォームにダッシュボードを配置し、タイルを追加して、それぞれに列、行、スパンを指定します。グリッドは使用可能な幅から列幅を計算し、モニターの DPI に合わせて間隔と行の高さを拡大縮小し、タイルが収まらないほどの行数になると縦にスクロールします。重なったタイルは 1 行ずつ押し下げられ、重なって表示されることはありません。レイアウトは 1 つのエンジンで処理されるため、同じタイルのセルは、VCL、FireMonkey、.NET の各ビューで同じ配置になります。
TsgcVCLDashboard の Columns(既定は 12)、RowHeight(120)、Gap、Padding(12)TsgcVCLDashboardTile の Col、Row、ColSpan、RowSpanLayout.PlacedCell と Layout.Rect から読み取れます
レイアウトとコンテンツ
ダッシュボードの内容がユーザーやデータに依存する場合、座標を計算したくはありません。タイルの列と行を -1 のままにすると、自動フローが、上の行から左の列へとスキャンして、最初の空きスロットに置きます。列だけを固定すると、タイルはその列の最初の空き行に入ります。固定のタイルと自動フローのタイルは、同じダッシュボードで混在できます。
AutoFlow は既定でオンです。新しいタイルは Col と Row が -1、スパンが 3 x 2 で始まりますTsgcDashboardLayout が、VCL、FireMonkey、.NET を動かします
レイアウトとコンテンツ
タイルは、省略可能なヘッダーを持つコンテナーなので、チャート、グリッド、地図、PDF ビューアー、レポートプレビュー、単純なメモなど、画面に必要なものを何でも置けます。コントロールの親をタイルに設定し、クライアント領域に配置します。Suite デモは、sgcCharts、sgcMaps、sgcPDF、sgcReports を 1 つのダッシュボードに配置し、すべてがダッシュボードのテーマに従います。タイルはヘッダーを外して余白のないチャートにすることも、タイトルバーとして残すこともできます。タイルを追加するとダッシュボードは行が増え、縦にスクロールします。
Title と ShowHeaderParentTheme で、タイルをダッシュボードに従わせるか、独自の Theme を持たせるかを選べますTsgcFMXDashboardTile でも同様に動作します
レイアウトとコンテンツ
どのダッシュボードも、売上、受注、解約、応答時間といった重要な数値の行から始まります。KPI カードは、大きな値、アイコン、トレンド矢印とそのテキスト、フッターの行、直近の値の小さなスパークラインを、1 つのコンポーネントで表示します。新しい値が届くたびに AddValue を呼ぶとスパークラインがスクロールし、MaxPoints で保持する履歴の長さを決めます。AccentColor でカードの色を測定対象に合わせられ、カードは配置先のダッシュボードのライトまたはダークのテーマに従います。
TsgcVCLKPICard の Title、Value、Icon、FooterText、AccentColorTrend: ktUp、ktDown、ktNeutral。TrendValue のテキスト付きAddValue、ClearValues、MaxPointsAddValue はスレッドセーフなので、ワーカースレッドから値を渡せますレイアウトとコンテンツ
多くのアプリケーションは、スタート画面から始まります。モジュールごとに 1 つのタイルを置き、分野ごとにグループ化し、中で待っている件数を表示します。タイルランチャーは、その画面を 1 つのコントロールで描画します。タイルは小、中、ワイド、大の 4 種類のサイズがあり、キャプション付きのグループに詰めて配置されるため、大きなタイルの後ろにできた隙間は、続く小さなタイルで埋まります。グループは横に並べて横スクロールにすることも、縦に積んで縦スクロールにすることもでき、ランチャー全体がライトまたはダークのテーマに従います。
TsgcVCLDashboardTileLauncher と TsgcFMXDashboardTileLauncher、.NET では TsgcWinFormsDashboardTileLauncher、TsgcWpfDashboardTileLauncher、TsgcAvaloniaDashboardTileLauncherGroups と Tiles。Caption、Subtitle、Size (dtsSmall、dtsMedium、dtsWide、dtsLarge)、Color、ImageIndex、ピル形状で描画される Badge を持ちますOrientation、CellSize、Spacing、GroupColumns、GroupSpacing でレイアウトを調整しますOnTileClick が発生します。矢印キーでグループをまたいでタイル間を移動でき、Home と End で最初と最後のタイルへ移動しますSaveToPNG はフォームなしでランチャーを描画しますタイルランチャーは Community を含むすべてのエディションに含まれます。
ヘルプのトピックを読む1 つのデータソースから自動で内容が埋まり、クリックひとつで互いに絞り込むタイルです。
組み込みタイル
ほとんどのダッシュボードは、同じ行を 5 通りに表示します。地域別の売上をチャートで、合計をゲージで、レコードをグリッドで、製品別のピボットで、顧客を地図で表示します。組み込みタイルには、最初からコントロールが入っています。データソースと列を設定すれば、行のグループ化、合計、一覧表示はタイルが行い、データをコントロールへ移すコードは不要です。組み込みタイルもタイルなので、ヘッダー、セル、テーマを持ち、ユーザーは他のタイルと同じように移動、サイズ変更、保存、読み込みができます。
TsgcVCLDashboardChartTile、GaugeTile、GridTile、PivotTile、MapTile。FireMonkey でも同じ名前ですDataSource と、タイル用にグループ化と集計を行った読み取り専用の ViewChart、Gauge、Grid、Pivot、Map)ので、いつもどおりスタイルを設定できます各タイルには、対応する sgcUI 製品とそのブリッジパッケージが必要です。sgcCharts、sgcGauges、sgcGrid、sgcPivotGrid、sgcMaps のいずれかです。タイルは Community を含むすべてのエディションに含まれます。.NET では、チャート、ゲージ、グリッド、ピボット、地図のタイルが WinForms、WPF、Avalonia で使えます。
ヘルプのトピックを読むデータソース
数値が 1 つのクエリから来る場合、すべてのタイルが同じ行を表示する必要があります。TsgcDashboardDataSource は行を 1 回だけ保持し、任意の数のタイルがそれぞれ独自のビューで読み取ります。チャートは 1 つの列でグループ化し、ゲージは別の列を合計し、グリッドは行を一覧表示します。自分の行を追加する、データセットをコピーする、sgcGrid または sgcPivotGrid のテーブルを接続して変更に追従する、のいずれかで内容を埋められます。多数の変更を 1 回の更新にまとめれば、タイルの更新も 1 回で済みます。
Columns、AppendRow、Clear、BeginUpdate、EndUpdateLoadFromDataSet は TDataSet をコピーします。.NET では LoadFrom が DataTable を受け取りますTable は、グリッドやピボットグリッドなど任意の IsgcUITable を接続しますデータソースはフレームワークに依存せず、すべてのエディションに含まれます。
ヘルプのトピックを読むクロスフィルター 登録版のみ
営業責任者は、ヨーロッパが遅れていることに気づき、詳細を知りたくなります。クロスフィルターでは、ヨーロッパのバーをクリックすると、同じデータソースの他のすべてのタイルが絞り込まれます。ゲージはヨーロッパの行を合計し、グリッドはそれを一覧表示し、ピボットは製品別に表示し、地図はそのマーカーだけを残します。クリックしたチャートは、すべてのバーを保ちます。グリッドの上のフィルターバーには、条件ごとのチップと「すべてクリア」チップが表示され、同じバーをもう一度クリックするとフィルターが解除されます。
ShowFilterBar、ClearFilters、OnFilterChangedCrossFilterSource と CrossFilterTarget、コード用のデータソースの Filterフィルターバーは印刷もエクスポートもされません。クロスフィルターは登録版に含まれ、Community 版には含まれません。
ヘルプのトピックを読む狭い画面では列数を減らし、ユーザー自身がダッシュボードを作成できます。
レスポンシブレイアウト
幅の広いモニター向けに設計したダッシュボードは、狭いウィンドウやスマートフォンでは読みにくくなります。ブレークポイントを有効にすると、ダッシュボードは自身の幅に応じてサイズクラスを選びます。広いクラスは Columns を使い、中間とコンパクトのクラスはより少ない列と独自のセルを使います。既定では各スパンが自動で拡大縮小されるため、ほとんどのダッシュボードで追加の設定は不要です。また、スマートフォンで大きな地図を隠すなど、特定のクラスだけでタイルを非表示にできます。
Breakpoints.Enabled、CompactWidth(600)、MediumWidth(1024)、CompactColumns(4)、MediumColumns(8)CompactCell と MediumCell、クラスごとの VisibleActiveBreakpoint と OnBreakpointChangedブレークポイントはすべてのエディションに含まれ、既定では無効です。Community 版には SaveLayout がないため、ブレークポイントは動作しますが保存されません。
実行時デザイナー 登録版のみ
部署ごとに、少しずつ異なるダッシュボードが求められます。リクエストのたびに 1 つずつ納品する代わりに、ユーザー自身に作成してもらいましょう。編集モードでは各タイルを移動してサイズ変更でき、クリックで選択できます。デザインパネルは、パレットから組み込みタイルを追加し、選択したタイルのプロパティを編集し、削除し、直前の操作を元に戻す、やり直す、ができます。結果を SaveLayout で保存すれば、実行時に追加したタイルが設定とデータソースとともに戻ります。
EditMode、SelectedTile、AddTile、RemoveTileUndo、Redo、CanUndo、CanRedo(50 ステップ)。編集モードでは Ctrl+Z、Ctrl+Y、DeleteTsgcVCLDashboardDesignPanel と TsgcFMXDashboardDesignPanel。WinForms、WPF、Avalonia にも対応するものがありますOnTileAdded、OnTileRemoving、OnSelectionChanged実行時デザイナーは登録版に含まれ、Community 版には含まれません。
ヘルプのトピックを読むすべてのタイルに対して 1 つの AI クエリバーを使え、値はアプリケーション内にとどまります。
ダッシュボードに質問
ユーザーは、答えが入っているタイルを探したくありません。AI クエリバーをダッシュボードのルーターに接続すれば、1 つのボックスで画面全体を扱えます。ルーターは質問が指しているタイルを選び、表示領域の前面に移動して、グリッドまたはピボットのエンジンに質問を渡します。チャート、ゲージ、地図のタイルも対象です。ゲージと KPI カードはタイトルと値でローカルに回答し、チャートや地図のタイルは表示されてフォーカスを受け取ります。登録版では、「West 地域の売上を表示」のような質問で、クロスフィルター Region = West も設定されます。
TsgcVCLDashboardAI と TsgcFMXDashboardAI。.NET では TsgcWinFormsDashboardAI、TsgcWpfDashboardAI、TsgcAvaloniaDashboardAILastFilter と ApplyFilters。Undo でフィルターを解除しますプライバシー:プロバイダーが見るのは、質問、タイルのタイトルと種類、列名です。KPI カードの値、ゲージの値、列の値がアプリケーションの外に出ることはなく、提案されたフィルター値はデータに対してローカルで検証されます。ルーターはすべてのエディションに含まれ、フィルター付きの回答は登録版に含まれます。
ヘルプのトピックを読むユーザーが自分のスタートページを配置して保存でき、ネットワークからデータを渡せます。
ユーザーのレイアウトとライブデータ 登録版のみ
共有のスタートページでは、ユーザーごとに前面に置きたい数値が違います。ドラッグをオンにすると、ユーザーはヘッダーでタイルを動かせます。サイズ変更をオンにすると、隅のグリップでスパンを変えられます。マウスの移動中は、対象のセルがタイルの下に描画され、タイルはグリッドに吸着します。Esc キーでキャンセルします。ロックしたタイルは動きません。後述のレイアウトの保存と組み合わせれば、どのユーザーも自分で配置したスタートページを保持でき、どのタイルを用意するかはお客様が決められます。
AllowDrag と AllowResizeLocked で、その場所に固定しますOnLayoutChanged は、ドラッグやサイズ変更のたびに発生しますCommunity 版では、コードから固定のレイアウトを作成します。実行時のドラッグとサイズ変更は登録版の機能です。
ヘルプのトピックを読むユーザーのレイアウトとライブデータ 登録版のみ
ユーザーが配置したレイアウトは、再起動後も元に戻る必要があります。1 回の呼び出しで、グリッドの寸法と、名前を持つ各タイルのセルと表示状態をコンパクトな JSON として書き出し、もう 1 回の呼び出しで適用します。タイルは名前で照合され、不明な名前は無視され、テキストにないタイルは元のセルを保つため、新しいバージョンでタイルを追加しても、古い保存済みレイアウトを読み込めます。JSON は小さくて読みやすいので、既定のレイアウトをアプリケーションに同梱し、それを再び読み込むリセットボタンを用意できます。
SaveLayout と LoadLayout は、JSON 文字列を返し、適用しますSaveLayoutToFile、LoadLayoutFromFile、SaveLayoutToStream、LoadLayoutFromStreamユーザーのレイアウトとライブデータ 登録版のみ
運用画面には、1 秒ごとに変わる値が表示されます。sgcDashboardWS ブリッジは、sgcWebSockets クライアントの JSON メッセージごとに数値を読み取り、スパークラインを含めてカードに反映します。トレンド矢印は、直前の値に自動で追従します。Delphi 2010 以降では、テキストの更新がメインスレッドで実行されるので、クライアントはどのスレッドモードでも使えます。有効な JSON でないメッセージや、パスが数値でないメッセージは無視されるため、ノイズの多いフィードで画面が壊れることはありません。
TsgcDashboardSource_WebSocket、TsgcDashboardSource_MQTT(Topic 付き)、TsgcDashboardSource_SSEValuePath(例: data.items[0].value)、ValueFormat(既定は %.2f)TitlePath と TrendValuePath で、さらに多くのフィールドをカードにコピーしますOnValue イベントが発生しますブリッジには sgcWebSockets が必要です。Community では、Value と AddValue を使って、コードからカードに値を渡してください。
ヘルプのトピックを読む画面全体で統一された見た目、画像としての同じカード、すべてのターゲットで同じデザインです。
テーマ、画像、プラットフォーム
暗い制御室と明るいオフィスでは、同じ画面を 2 つの見た目で使い分ける必要があります。ダッシュボードのテーマを設定すると、すべてのタイル、すべての KPI カード、その中の sgcUI コントロールに反映され、チャート、ゲージ、グリッドがまとめて切り替わります。テーマの型は sgcUI のすべての製品で共通なので、アプリケーション全体を 1 つの設定に従わせられます。目立たせたいタイルは独自のテーマを保ち、ダッシュボードのほかの部分はグローバルのテーマに従わせることもできます。
Theme := utDark または utLightParentTheme で追従するか、独自の Theme を保ちますテーマ、画像、プラットフォーム
ダッシュボードの数値は、朝のレポートメール、イントラネットのページ、PDF など、別の場所でも必要になることがよくあります。TsgcDashboardKPI は、ウィンドウも VCL や FireMonkey も使わずに同じカードをレンダリングするため、コンソールプログラム、Windows サービス、Linux64 サーバーで生成できます。幅と高さは論理ピクセルで、スケール係数を指定すると鮮明な高 DPI 画像になります。定期レポートに使えます。ダッシュボードと同じクエリでカードを作り、画像をメッセージに添付してください。
SaveToPNG でファイルまたはストリームへ保存します。たとえば、幅 320、高さ 160 をスケール 2 にすると、640 x 320 の画像になりますSaveToSVG で、くっきりしたベクター出力を得られますCard.KPI.SaveToPNG は、画面上のカードの表示内容を保存しますテーマ、画像、プラットフォーム
ダッシュボードを一度書けば、デザインを再利用できます。FireMonkey のダッシュボード、タイル、KPI カードは Windows、macOS、iOS、Android で動作し、.NET 版は WinForms、WPF、Avalonia 向けに同じクラスを提供します。すべての環境で 1 つのレイアウトエンジンがセルを計算するため、保存したレイアウトはどのターゲットでも同じ意味を持ちます。デモはどのターゲットにも同じセットを用意しています。Delphi と C++ Builder 向けには Basic、LiveKPI、SaveLayout、Suite、.NET 向けには WinForms、WPF、Avalonia の各版です。
TsgcFMXDashboard、TsgcFMXDashboardTile、TsgcFMXKPICard, TsgcFMXDashboardTileLauncherTsgcWinFormsDashboard、TsgcWinFormsKPICard、およびそれぞれに対応する WPF 版と Avalonia 版プレビューには、プリンターと PDF に出力される内容がそのまま表示されます。
印刷、プレビュー、PDF
ダッシュボードは、ボード全体の画像として 1 ページに印刷されます。非表示でないすべてのタイルが、スクロールで見えなくなっているものも含め、画面と同じ配置で出力されます。タイル内の sgcUI コントロールはそれぞれのレンダラーで描画されるため、KPI カード、チャート、ゲージ、グリッド、ピボットグリッド、プランナーのビュー、ダイアグラムがすべて印刷されます。メモやラベルなど、タイル内のその他のコントロールは空白になります。
Print は印刷ダイアログを表示するか既定のプリンターへ直接印刷し、ShowPrintPreview はページ移動、ズーム、ページ設定、印刷、PDF エクスポートを備えたプレビューを開きますPrintSettings は用紙、向き、余白、拡大縮小、ヘッダーとフッターのテキストを保持し、プリンター、プレビュー、PDF のすべてがこれを使いますExportToPDF は、ページを 1 枚のタグ付き画像 (既定は 192 dpi) として書き出し、タイルのタイトルを読み上げ順に列挙する代替テキストを付けますTsgcUIPDFOptions の PDFALevel で、アーカイブ用に PDF/A-2a または PDF/A-3a を、単独でも PDF/UA との併用でも追加できます印刷とプレビューは、無料の Community 版を含むすべてのエディションで、VCL、FireMonkey、WinForms、WPF、Avalonia で使えます。FireMonkey では、印刷は Windows と macOS で、プレビューと PDF エクスポートはすべてのプラットフォームで動作します。PDF エクスポートには sgcUIPDF ブリッジとライセンスされた sgcPDF (.NET では NuGet パッケージ esegece.sgcUICore.sgcPDF) が必要なため、Community 版には含まれません。
スクリーンリーダー、キーボード、ハイコントラスト向けの UI Automation を、設定なしで使えます。
アクセシビリティ
sgcDashboard は、ダッシュボードとそのタイルを、タイトルと位置、各タイルにホストされたコントロール、タイトル、値、単位、傾向を持つ KPI カードとともに Microsoft UI Automation に公開します。
アクセシビリティは、無料の Community 版を含むすべてのエディションで既定で有効です。VCL では Delphi 7 から Delphi 13 までのすべての Delphi と C++Builder のバージョンで、FireMonkey では Windows で、そして WinForms、WPF、Avalonia で使えます。 Delphi と C++Builder では、AccessibleName と AccessibleDescription が UI Automation に公開される名前と説明を設定し、.NET では各フレームワーク標準のアクセシブルな名前とヘルプテキストが同じ役割を果たします。アクセシビリティ適合レポートを参照してください。
sgcUI スイートのデモに含まれる sgcDashboard:組み込みのシミュレーションデータでオフラインで動作する完全なアプリケーションです。
スパークライン付き KPI カード、アラームタイル、ツリーマップ、VaR ゲージをダッシュボードタイルとして配置。
Altamira Markets →
プロセス図の周囲に、スパークライン付き OEE カード、ボトルカウンター、アラームタイルを配置。
Altamira Plant →
ERP ダッシュボード:スパークライン付き KPI カード、売上チャート、ゲージ、顧客マップ。
Altamira ERP →
スパークライン付きポートフォリオ KPI カード、健全性ゲージ、チャートを 1 ページに。
Altamira PMO →
ERP のスタートページには、売上、未処理の受注、期限超過の請求書、解約を、トレンド矢印付きの KPI カードで表示し、その下のタイルに営業チャートと上位顧客のグリッドを配置します。毎晩、サービスが同じカードを経営陣向けメールの PNG としてレンダリングし、画面と同じ数値と色になります。
工場の壁面スクリーンに、ラインのスループット、温度、アラームの件数を表示します。MQTT ソースが測定値を届くたびにカードへ反映し、スパークラインが直近の数分を示し、ダークテーマが夜間の室内を落ち着いた状態に保ちます。隣のタイルのゲージやチャートも同じテーマに従います。
多くの役割が使うデスクトップクライアントでは、ユーザーごとに大切なタイルを上へドラッグし、最もよく見るチャートのサイズを変え、それ以外を非表示にします。レイアウトはユーザーごとに JSON として保存され、次回のログインで復元されます。アップデートで追加された新しいタイルは、空いている場所に自動で流れ込みます。
The same API in Delphi, C++ Builder and C#: tiles on the grid, a KPI card with a sparkline in each, a dark theme and a saved layout. Dragging and layout files need the Registered edition.
Tiles on the 12 column grid with a KPI card in each, a dark theme, and the layout saved to a file. Dragging and layout files need the Registered edition.
uses
SysUtils, Controls, sgcUICore_Theme, sgcDashboard_KPI, sgcDashboard_VCL, sgcDashboard_KPI_VCL;
procedure AddKPI(aDash: TsgcVCLDashboard; const aName, aTitle, aValue,
aChange: string; aCol: Integer; aTrend: TsgcDashboardKPITrend);
var
oTile: TsgcVCLDashboardTile;
oCard: TsgcVCLKPICard;
begin
oTile := TsgcVCLDashboardTile.Create(aDash.Owner);
oTile.Name := aName;
oTile.Parent := aDash;
oTile.Col := aCol;
oTile.ColSpan := 4;
oTile.Title := aTitle;
oCard := TsgcVCLKPICard.Create(aDash.Owner);
oCard.Parent := oTile;
oCard.Align := alClient;
oCard.Value := aValue;
oCard.Trend := aTrend;
oCard.TrendValue := aChange;
oCard.AddValue(47);
oCard.AddValue(52);
end;
procedure BuildDashboard(aOwner: TWinControl);
var
oDash: TsgcVCLDashboard;
begin
oDash := TsgcVCLDashboard.Create(aOwner);
oDash.Parent := aOwner;
oDash.Align := alClient;
// drag, resize and layout files need the Registered edition
oDash.AllowDrag := True;
AddKPI(oDash, 'tileRevenue', 'Revenue', '12,480 USD', '+4.2 %', 0, ktUp);
AddKPI(oDash, 'tileOrders', 'Orders', '1,284', '+8.1 %', 4, ktUp);
oDash.Theme := utDark;
if FileExists('layout.json') then
oDash.LoadLayoutFromFile('layout.json');
oDash.SaveLayoutToFile('layout.json');
end;The same dashboard in C++ Builder with the generated headers.
#include <vcl.h>
#include "sgcUICore_Theme.hpp"
#include "sgcDashboard_KPI.hpp"
#include "sgcDashboard_VCL.hpp"
#include "sgcDashboard_KPI_VCL.hpp"
void AddKPI(TsgcVCLDashboard *aDash, const String aName, const String aTitle,
const String aValue, const String aChange, int aCol,
TsgcDashboardKPITrend aTrend)
{
TsgcVCLDashboardTile *oTile = new TsgcVCLDashboardTile(aDash->Owner);
oTile->Name = aName;
oTile->Parent = aDash;
oTile->Col = aCol;
oTile->ColSpan = 4;
oTile->Title = aTitle;
TsgcVCLKPICard *oCard = new TsgcVCLKPICard(aDash->Owner);
oCard->Parent = oTile;
oCard->Align = alClient;
oCard->Value = aValue;
oCard->Trend = aTrend;
oCard->TrendValue = aChange;
oCard->AddValue(47);
oCard->AddValue(52);
}
void BuildDashboard(TWinControl *aOwner)
{
TsgcVCLDashboard *oDash = new TsgcVCLDashboard(aOwner);
oDash->Parent = aOwner;
oDash->Align = alClient;
// drag, resize and layout files need the Registered edition
oDash->AllowDrag = true;
AddKPI(oDash, "tileRevenue", "Revenue", "12,480 USD", "+4.2 %", 0, ktUp);
AddKPI(oDash, "tileOrders", "Orders", "1,284", "+8.1 %", 4, ktUp);
oDash->Theme = utDark;
if (FileExists("layout.json"))
oDash->LoadLayoutFromFile("layout.json");
oDash->SaveLayoutToFile("layout.json");
}The WinForms version in C#, with the same class names as Delphi.
using System.Windows.Forms;
using esegece.sgcDashboard;
using esegece.sgcUICore;
public static class KpiDashboard
{
// One KPI tile with a sparkline, placed on the dashboard grid.
static void AddKPI(TsgcWinFormsDashboard aDash, string aName, string aTitle,
string aValue, string aChange, int aCol, TsgcDashboardKPITrend aTrend)
{
var oTile = new TsgcWinFormsDashboardTile();
oTile.Name = aName;
oTile.Title = aTitle;
oTile.Col = aCol;
oTile.ColSpan = 4;
var oCard = new TsgcWinFormsKPICard();
oCard.Dock = DockStyle.Fill;
oCard.Value = aValue;
oCard.Trend = aTrend;
oCard.TrendValue = aChange;
oCard.AddValue(47);
oCard.AddValue(52);
oTile.Controls.Add(oCard);
aDash.Controls.Add(oTile);
}
public static void Build(Form aForm)
{
var oDash = new TsgcWinFormsDashboard();
oDash.Dock = DockStyle.Fill;
oDash.Theme = TsgcUITheme.utDark;
oDash.AllowDrag = true; // drag and layout files: Registered edition
AddKPI(oDash, "tileRevenue", "Revenue", "12,480 USD", "+4.2 %", 0, TsgcDashboardKPITrend.ktUp);
AddKPI(oDash, "tileOrders", "Orders", "1,284", "+8.1 %", 4, TsgcDashboardKPITrend.ktUp);
AddKPI(oDash, "tileChurn", "Churn", "2.4 %", "-0.3 %", 8, TsgcDashboardKPITrend.ktDown);
aForm.Controls.Add(oDash);
if (System.IO.File.Exists("layout.json"))
oDash.LoadLayoutFromFile("layout.json");
oDash.SaveLayoutToFile("layout.json");
}
}dotnet add package esegece.sgcDashboard.WinFormsDelphi と C++ Builder 向けの 6 つのデモと .NET 向けの 10 のデモが、すべてコンパイル済みデモのダウンロードに含まれています。
12 列のグリッドに 6 つのタイルと 4 つの KPI カードを配置し、ほかのタイルにログとリストを置いています。レイアウトエンジンとテーマの切り替えを最も手軽に確認できます。
sgcDashboardWS ブリッジから値を受け取る KPI カードです。メッセージが届くたびに値が更新され、スパークラインが伸びます。sgcWebSockets が必要です。
ヘッダーでタイルをドラッグし、グリップでサイズを変更し、レイアウトを JSON に保存します。デモを再起動すると、復元されることを確認できます。
ほかの sgcUI 製品のチャート、地図、PDF ビューアー、レポートプレビュー、KPI カードを、テーマ付きの 1 つのダッシュボードに配置します。
204 行の売上データを持つ 1 つのデータソースが、チャート、ゲージ、グリッド、ピボット、地図のタイルに値を供給します。地域のバー、グリッドのセル、ピボットの行、地図のマーカーのいずれかをクリックすると、他のタイルがフィルターに追従します(登録版)。ウィンドウを狭めると、タイルが並び替わります。Delphi VCL と C++ Builder、.NET では SalesExplorer(WinForms)と SalesExplorerWpf。sgcCharts、sgcGauges、sgcGrid、sgcPivotGrid、sgcMaps が必要です。
実行時デザイナーです。デザインパネルのパレットから組み込みタイルを追加し、編集モードで移動とサイズ変更を行い、プロパティを編集し、削除し、元に戻す、やり直す、を行って、ダッシュボードを JSON として保存します。Delphi VCL と C++ Builder、.NET では DashboardDesigner(WinForms)と DashboardDesignerWpf。
3 つのグループと、あらゆるサイズのタイル、サブタイトル、バッジ、無効なタイルを備えたスタート画面です。ステータス行には、マウス、Enter、Space でクリックしたタイルが表示され、2 つのコンボボックスで向きとテーマを切り替えられます。TileLauncherFMX は FireMonkey で同じことを行います。
WinForms、WPF、Avalonia 向けの Basic、BasicWpf、BasicAvalonia、LiveKPI、SaveLayout、Suite、SalesExplorer、SalesExplorerWpf、DashboardDesigner、DashboardDesignerWpf、TileLauncher、TileLauncherWpf、TileLauncherAvalonia。
Delphi (VCL) 向けの QuickStart デモ 5 つが Demos\Dashboard\Delphi\00.QuickStart に入っています。PDF ガイドが、それらを順を追って解説します。KPI カードを使った最初のダッシュボード、12 列のタイルグリッド、ライブデータ、テーマ、チャートタイルを備えた売上ダッシュボード。
sgcDashboard は sgcUI Professional と Enterprise に含まれ、単体でも販売しています。All-Access バンドルにも含まれます。
無料の Community 版(NuGet の esegece.sgcDashboard.Community)には、グリッド、タイル、スパークライン付き KPI カード、ヘッドレスの PNG と SVG、テーマ、データソース、組み込みタイル、レスポンシブなブレークポイント、すべてのタイルへの AI ルーティングが含まれます。実行時のドラッグとサイズ変更、SaveLayout と LoadLayout(そのためレイアウトは保存されません)、クロスフィルター、実行時デザイナー、「ダッシュボードに質問」のフィルター付き回答、sgcDashboardWS ブリッジは含まれません。組み込みタイルには、どのエディションでも、対応する sgcUI 製品とそのブリッジパッケージが必要です。
| 機能 | Community(無料) | 登録版 |
|---|---|---|
| スパンと自動フロー付きのタイルグリッド | ✓ | ✓ |
| トレンドとスパークライン付きの KPI カード | ✓ | ✓ |
| ライトテーマとダークテーマ | ✓ | ✓ |
| PNG と SVG のヘッドレス KPI カード | ✓ | ✓ |
| グループ化されたタイル、バッジ、キーボード操作に対応したタイルランチャー | ✓ | ✓ |
| チャート、ゲージ、グリッド、ピボット、地図の組み込みタイル(それぞれ該当する sgcUI 製品が必要) | ✓ | ✓ |
| 複数のタイルで共有するデータソース | ✓ | ✓ |
| レスポンシブなブレークポイント | ✓ (保存されません) | ✓ |
| 「ダッシュボードに質問」のすべてのタイルへのルーティング | ✓ | ✓ |
| フィルターバー付きのクロスフィルター | − | ✓ |
| デザインパネルと元に戻す機能付きの実行時デザイナー | − | ✓ |
| 「ダッシュボードに質問」のフィルター付き回答 | − | ✓ |
| タイルの実行時のドラッグとサイズ変更 | − | ✓ |
| SaveLayout と LoadLayout | − | ✓ |
| sgcDashboardWS のライブソース(WebSocket、MQTT、SSE) | − | ✓ |
| Component | 概要 |
|---|---|
| TsgcVCLDashboard, TsgcFMXDashboard | VCL と FireMonkey 向けのグリッドコンテナーです。 |
| TsgcVCLDashboardTile, TsgcFMXDashboardTile | 任意のコントロールを置けるタイトル付きのタイルです。 |
| TsgcVCLKPICard, TsgcFMXKPICard | トレンド、フッター、スパークライン付きの KPI カードです。 |
| TsgcDashboardKPI | フレームワークに依存しない、PNG と SVG の出力に対応したヘッドレスの KPI カードです。 |
| TsgcVCLDashboardTileLauncher, TsgcFMXDashboardTileLauncher | キャプション付きのグループに 4 種類のサイズのタイルを並べたスタート画面で、バッジ、スクロール、キーボード操作に対応します。 |
| TsgcDashboardTileLauncher | フレームワークに依存しない、タイルランチャーのモデルとレンダラーで、ヘッドレスの PNG 出力に対応します。 |
| TsgcDashboardDataSource | 組み込みタイルに値を供給する、フレームワーク非依存のデータソースです。 |
| TsgcVCLDashboardChartTile, GaugeTile, GridTile, PivotTile, MapTile | sgcCharts、sgcGauges、sgcGrid、sgcPivotGrid、sgcMaps のコントロールを持つ組み込みタイルです。製品ごとに 1 つのブリッジパッケージで、FireMonkey 版を含みます。 |
| TsgcVCLDashboardDesignPanel, TsgcFMXDashboardDesignPanel | 実行時デザイナーのデザインパネルです(登録版のみ)。 |
| TsgcDashboardLayout | Linux64 でも使えるレイアウトエンジンです。 |
| TsgcDashboardSource_WebSocket, _MQTT, _SSE | sgcDashboardWS ブリッジのライブ KPI ソースです(登録版のみ)。 |
| Target | Component | 対応プラットフォーム |
|---|---|---|
| Delphi 7 から 13、VCL | TsgcVCLDashboard | Win32 と Win64 |
| Delphi XE6 から 13、FireMonkey | TsgcFMXDashboard | Windows、macOS、iOS、Android |
| C++ Builder 2007 から 13 | TsgcVCLDashboard, TsgcFMXDashboard | 生成された .hpp ヘッダーと静的ライブラリ |
| Delphi 10.2 から 13、フレームワークに依存しません | TsgcDashboardLayout, TsgcDashboardKPI | Linux64、レイアウトエンジンとヘッドレスの KPI カード |
| .NET Framework 4.7.2、.NET 8、9、10 | TsgcWinFormsDashboard と、WPF 版、Avalonia 版 | WinForms、WPF、Avalonia |
はい、登録版で可能です。AllowDrag と AllowResize により、ユーザーはヘッダーでタイルを動かし、グリップでサイズを変えられ、SaveLayoutToFile または SaveLayout が結果を JSON として保存します。LoadLayout はタイル名で復元するため、アプリケーションの新しいバージョンでもレイアウトが引き継がれます。
どのコントロールでも置けます。タイルはコンテナーなので、コントロールの親をタイルに設定し、クライアント領域に配置します。Suite デモは、チャート、地図、PDF ビューアー、レポートプレビューを配置し、タイル内の sgcUI コントロールはダッシュボードのテーマに従います。
はい。各組み込みタイルには、それぞれの製品とブリッジパッケージが必要です。チャートタイルは sgcCharts、ゲージタイルは sgcGauges、グリッドタイルは sgcGrid、ピボットタイルは sgcPivotGrid、地図タイルは sgcMaps です。sgcDashboard は単独でも販売されるため、ダッシュボード本体が製品のユニットを使うことはありません。sgcUI Enterprise にはすべてが含まれます。.NET では、地図タイルを含むすべてのタイルが WinForms、WPF、Avalonia で使えます。組み込みタイルをご覧ください。
はい、登録版で可能です。EditMode を設定し、ダッシュボードの横にデザインパネルをドッキングします。ユーザーはパレットから組み込みタイルを追加し、移動、サイズ変更、削除を行い、プロパティを編集して、各ステップを元に戻す、やり直すことができます。SaveLayout は、実行時に追加したタイルを含む結果を保存し、LoadLayout がそれらを再作成します。Designer デモで一連の流れを確認できます。実行時デザイナーをご覧ください。
コードからは、Value を設定して AddValue を呼びます。これはスレッドセーフです。登録版と sgcWebSockets を組み合わせると、sgcDashboardWS のソースが WebSocket、MQTT、SSE のメッセージごとに ValuePath で数値を読み取り、カードとそのトレンドを更新します。
ダッシュボードとタイル、自動フロー付きのグリッドレイアウト、スパークライン付きの KPI カード、ヘッドレスの PNG と SVG、テーマ、データソース、組み込みタイル、レスポンシブなブレークポイント、AI ルーティングが含まれます。実行時のドラッグとサイズ変更、SaveLayout と LoadLayout、クロスフィルター、実行時デザイナー、AI ルーターのフィルター付き回答、sgcDashboardWS ブリッジは含まれません。エディションをご覧ください。
はい。TsgcFMXDashboard、そのタイル、KPI カードは、Delphi XE6 以降の FireMonkey で、Windows、macOS、iOS、Android 上で動作し、VCL のダッシュボードと同じレイアウトエンジンを使います。サイズはデバイスに依存せず、フォームのスケールに従います。
はい。TsgcDashboardKPI は、ウィンドウも VCL や FireMonkey も使わずにカードを描画し、PNG または SVG をファイルやストリームに書き出します。Linux64 を含むすべてのプラットフォームでビルドできるので、サービスや Web サーバーで画像を生成できます。
はい。すべてのサイズはデバイスに依存しないピクセルです。VCL のダッシュボードはモニターの PPI を 96 で割った値で、FireMonkey のダッシュボードはフォームのスケールで拡大縮小するため、どのモニターでも、タイル、間隔、行の高さの比率が保たれます。
はじめに, VCL クイックスタート, 対応プラットフォーム, エディション, ダッシュボード, KPI カード, レイアウト, 永続化, ライブデータ, 組み込みタイル, データソース, クロスフィルター, レスポンシブレイアウト, 実行時デザイナー.
はじめに, C++ Builder クイックスタート, 対応プラットフォーム, レイアウト, ライブデータ, 組み込みタイル, データソース, クロスフィルター, レスポンシブレイアウト, 実行時デザイナー.
はじめに, 対応プラットフォーム, エディション, レイアウト, ライブデータ, 組み込みタイル, データソース, クロスフィルター, レスポンシブレイアウト, 実行時デザイナー.
Delphi、C++ Builder、.NET。いずれも sgcUI の全製品を網羅しています。