ERP 中的管理层和销售仪表盘
ERP 的起始页以带趋势箭头的 KPI 卡片显示收入、未结订单、逾期发票和流失率,下方磁贴中是销售图表和重点客户表格。每晚服务会将同样的卡片渲染为 PNG,用于管理层邮件,数字和颜色与屏幕上完全一致。
- KPI 卡片
- 磁贴中的任意控件
- 无界面 KPI 图像
- 主题
无需编写布局代码即可构建业务仪表盘。把磁贴放到 12 列网格上,在每个磁贴中放入 KPI 卡片、图表、地图或报表预览,只需一个属性即可把整个界面切换为深色主题,并让用户拖动、调整大小并保存自己的布局。磁贴启动器则为应用程序提供分组磁贴的开始界面。
八个分组,十八项功能,附带真实的组件和属性名称以及每个帮助主题的链接。标有“注册版”的功能不包含在免费的 .NET 社区版中。
自动为您放置磁贴的网格,以及展示数字的卡片。
布局与内容
仪表盘是一个磁贴网格,在任何窗口大小和任何 DPI 下都必须保持整齐。把仪表盘放到窗体上,添加磁贴,并为每个磁贴指定列、行和跨度。网格根据可用宽度计算列宽,按显示器 DPI 缩放间距和行高,当磁贴所需行数超出可显示范围时垂直滚动。重叠的磁贴每次下移一行,绝不会叠在一起。由于布局集中在一个引擎中,相同的磁贴单元格在 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 乘 2TsgcDashboardLayout 驱动 VCL、FireMonkey 和 .NET
布局与内容
磁贴是带可选标题栏的容器,因此可以承载您界面需要的任何内容:图表、表格、地图、PDF 查看器、报表预览或普通备注框。把控件的父级设为该磁贴,并将其对齐到客户区。Suite 演示在一个仪表盘中承载了 sgcCharts、sgcMaps、sgcPDF 和 sgcReports,全部遵循仪表盘主题。磁贴可以去掉标题栏,呈现整洁的满铺图表,也可以保留标题栏作为标题。添加磁贴时,仪表盘按行增长并垂直滚动。
Title 和 ShowHeaderParentTheme 让磁贴跟随仪表盘,或保留自己的 ThemeTsgcFMXDashboardTile 效果相同
布局与内容
每个仪表盘开头都是一行重要的数字:收入、订单、流失率、响应时间。KPI 卡片在一个组件中以大字号显示数值、图标、带文字的趋势箭头、页脚行和近期数值的小型迷你图。新数据到达时调用 AddValue,迷你图随之滚动;MaxPoints 决定保留多少历史数据。AccentColor 可让您按所测量的内容为卡片着色,卡片会跟随所在仪表盘的浅色或深色主题。
TsgcVCLKPICard,带 Title、Value、Icon、FooterText 和 AccentColorTrend:ktUp、ktDown 或 ktNeutral,带 TrendValue 文本AddValue、ClearValues 和 MaxPointsAddValue 是线程安全的,因此可由工作线程提供数据布局与内容
许多应用程序以开始界面启动:每个模块一个磁贴,按区域分组,并显示其中待处理内容的数量。磁贴启动器用一个控件绘制这个界面。磁贴有小、中、宽、大四种尺寸,并按带标题的分组排布,因此大磁贴留下的空位会由后面的小磁贴填补。分组可以并排放置并水平滚动,也可以垂直堆叠并垂直滚动,整个启动器会跟随浅色或深色主题。
TsgcVCLDashboardTileLauncher 和 TsgcFMXDashboardTileLauncher,在 .NET 中为 TsgcWinFormsDashboardTileLauncher、TsgcWpfDashboardTileLauncher 和 TsgcAvaloniaDashboardTileLauncherGroups 和 Tiles,带有 Caption、Subtitle、Size(dtsSmall、dtsMedium、dtsWide、dtsLarge)、Color、ImageIndex 以及绘制成胶囊形状的 BadgeOrientation、CellSize、Spacing、GroupColumns 和 GroupSpacing 决定布局OnTileClick。方向键可跨分组在磁贴之间移动,Home 和 End 分别移到第一个和最后一个磁贴SaveToPNG 无需窗体即可渲染启动器磁贴启动器包含在包括 Community 在内的所有版本中。
阅读帮助主题磁贴从同一个数据源自动填充数据,一次点击即可相互筛选。
内置磁贴
大多数仪表盘会用五种方式展示同样的行:用图表展示各区域的收入,用仪表展示合计,用网格展示记录,用透视表按产品汇总,用地图展示客户。内置磁贴本身已经包含控件。设置好它的数据源和列,分组、求和与列出行的工作就由它代劳,不需要任何把数据移入控件的代码。内置磁贴仍然是磁贴,因此有标题栏、单元格和主题,用户可以像对待其他磁贴一样移动、调整大小、保存和加载它。
TsgcVCLDashboardChartTile、GaugeTile、GridTile、PivotTile 和 MapTile,FireMonkey 中名称相同DataSource 以及为磁贴分组并汇总的只读 ViewChart、Gauge、Grid、Pivot、Map),因此可以照常设置样式每个磁贴都需要对应的 sgcUI 产品及其桥接包:sgcCharts、sgcGauges、sgcGrid、sgcPivotGrid 或 sgcMaps。磁贴包含在所有版本中,社区版也不例外。在 .NET 中,图表、仪表、网格、透视表和地图磁贴适用于 WinForms、WPF 和 Avalonia。
阅读帮助主题数据源
当数字来自同一个查询时,所有磁贴都应显示相同的行。TsgcDashboardDataSource 只保存一份行数据,任意数量的磁贴都可以通过各自的视图读取:图表按一列分组,仪表对另一列求和,网格列出各行。可以用自己的行填充它,复制一个数据集,或者连接 sgcGrid 或 sgcPivotGrid 的表并跟随其变化。把大量修改包在一次更新里,磁贴也只会刷新一次。
Columns、AppendRow、Clear、BeginUpdate 和 EndUpdateLoadFromDataSet 复制 TDataSet;在 .NET 中 LoadFrom 接受 DataTableTable 可连接任意 IsgcUITable,例如网格或透视网格数据源与框架无关,包含在所有版本中。
阅读帮助主题交叉筛选 仅限注册版
销售经理发现欧洲区域落后,想看详细情况。使用交叉筛选,点击欧洲柱子就会筛选同一数据源的其他所有磁贴:仪表对欧洲的行求和,网格列出这些行,透视表按产品显示它们,地图只保留相应的标记。被点击的图表保留所有柱子。网格上方的筛选栏为每个条件显示一个标签,另有一个“全部清除”标签,再次点击同一根柱子即可取消筛选。
ShowFilterBar、ClearFilters 和 OnFilterChangedCrossFilterSource 和 CrossFilterTarget,以及供代码使用的数据源 Filter筛选栏不会被打印或导出。交叉筛选属于注册版,社区版不包含。
阅读帮助主题窄屏上使用更少的列,仪表盘由用户自己搭建。
响应式布局
为宽屏显示器设计的仪表盘,在窄窗口或手机上会变得难以阅读。启用断点后,仪表盘会根据自身宽度选择尺寸类别:宽类别使用 Columns,中等和紧凑类别使用更少的列和各自的单元格。默认情况下每个跨度都会自动缩放,因此大多数仪表盘无需额外配置,也可以只在某一个类别中隐藏磁贴,例如在手机上隐藏大地图。
Breakpoints.Enabled、CompactWidth(600)、MediumWidth(1024)、CompactColumns(4)和 MediumColumns(8)CompactCell 和 MediumCell,以及每个类别的 VisibleActiveBreakpoint 和 OnBreakpointChanged断点包含在所有版本中,默认关闭。社区版没有 SaveLayout,因此断点在那里可以工作,但不会被保存。
运行时设计器 仅限注册版
每个部门都想要略有不同的仪表盘。与其每次需求都交付一个,不如让用户自己搭建。在编辑模式下,每个磁贴都可以移动和调整大小,点击即可选中;设计面板可以从调色板添加内置磁贴、编辑所选磁贴的属性、删除磁贴,并撤销或重做最近的步骤。用 SaveLayout 保存结果后,运行时添加的磁贴会连同其设置和数据源一起恢复。
EditMode、SelectedTile、AddTile 和 RemoveTileUndo、Redo、CanUndo 和 CanRedo,共 50 步;编辑模式下为 Ctrl+Z、Ctrl+Y 和 DeleteTsgcVCLDashboardDesignPanel 和 TsgcFMXDashboardDesignPanel,WinForms、WPF 和 Avalonia 有对应组件OnTileAdded、OnTileRemoving 和 OnSelectionChanged运行时设计器属于注册版,社区版不包含。
阅读帮助主题所有磁贴共用一个 AI 查询栏,而数值始终留在您的应用程序中。
询问仪表盘
用户不想自己去找包含答案的磁贴。把一个 AI 查询栏连接到仪表盘路由器,一个输入框就能服务整个屏幕。路由器会选出问题所指的磁贴,把它带入视图并置于最前,再把问题交给它的网格或透视表引擎。图表、仪表和地图磁贴也会参与:仪表和 KPI 卡片根据自己的标题和数值在本地回答,图表或地图磁贴则会被显示并获得焦点。在注册版中,像“显示 West 区域的销售额”这样的问题还会设置交叉筛选 Region = West。
TsgcVCLDashboardAI 和 TsgcFMXDashboardAI;.NET 中为 TsgcWinFormsDashboardAI、TsgcWpfDashboardAI 和 TsgcAvaloniaDashboardAILastFilter 和 ApplyFilters;Undo 会移除筛选隐私:提供程序只能看到问题、磁贴标题和类型以及列名。KPI 卡片的值、仪表的值和列的值绝不会离开应用程序,建议的筛选值也会在本地对照数据进行校验。路由器包含在所有版本中;带筛选的回答属于注册版。
阅读帮助主题让用户自行安排起始页并保存,再通过网络为其提供数据。
用户布局与实时数据 仅限注册版
在共享的起始页上,每位用户都希望把不同的数字放在最前面。开启拖动后,用户可通过标题栏移动磁贴;开启调整大小后,角落的手柄可改变其跨度。鼠标移动时,目标单元格绘制在磁贴下方,磁贴会吸附到网格。按 Esc 取消。标记为锁定的磁贴永远不会移动。再结合下面的保存布局,每位用户都保留自己安排的起始页,而您仍可决定存在哪些磁贴。
AllowDrag 和 AllowResizeLocked 使其固定不动OnLayoutChanged社区版通过代码构建固定布局;运行时拖动和调整大小属于注册版。
阅读帮助主题用户布局与实时数据 仅限注册版
用户安排好的布局必须在重启后恢复。一次调用即可将网格参数以及每个命名磁贴的单元格和可见性写成紧凑的 JSON,另一次调用则应用它。磁贴按名称匹配,未知名称会被忽略,文本中缺失的磁贴保留其单元格,因此在新版本中添加磁贴后,旧的已保存布局仍可加载。JSON 小巧易读,因此您可以随应用程序提供默认布局,并提供一个重置按钮来重新加载它。
SaveLayout 和 LoadLayout 返回并应用 JSON 字符串SaveLayoutToFile、LoadLayoutFromFile、SaveLayoutToStream、LoadLayoutFromStream用户布局与实时数据 仅限注册版
运营界面显示的数值每秒都在变化。sgcDashboardWS 桥接从 sgcWebSockets 客户端的每条 JSON 消息中读取一个数字,并推送到卡片中,迷你图也一并更新。趋势箭头会自动跟随前一个数值。在 Delphi 2010 及更高版本中,文本更新在主线程中运行,因此客户端可以使用任何线程模式。非有效 JSON 的消息,或其路径不是数字的消息会被忽略,因此嘈杂的数据流绝不会破坏界面。
TsgcDashboardSource_WebSocket、TsgcDashboardSource_MQTT(带 Topic)和 TsgcDashboardSource_SSEValuePath 例如 data.items[0].value,ValueFormat 默认为 %.2fTitlePath 和 TrendValuePath 可将更多字段复制到卡片中OnValue 事件该桥接需要 sgcWebSockets。在社区版中,请通过 Value 和 AddValue 用代码为卡片提供数据。
阅读帮助主题整个界面风格统一,同样的卡片可输出为图像,同样的设计适用于每个目标平台。
主题、图像与平台
深色的控制室和明亮的办公室需要同一个界面的两种外观。设置仪表盘主题后,它会作用于每个磁贴、每张 KPI 卡片以及其中的 sgcUI 控件,因此图表、仪表和表格一起切换。主题类型与每个 sgcUI 产品使用的相同,所以整个应用程序可以遵循同一个设置。需要突出显示的磁贴可以保留自己的主题,而仪表盘的其余部分则跟随全局主题。
Theme := utDark 或 utLightParentTheme 跟随,或保留自己的 Theme主题、图像与平台
仪表盘上的数字常常也需要用在别处:晨报邮件、内部网页面或 PDF。TsgcDashboardKPI 无需窗口,也无需 VCL 或 FireMonkey 即可渲染同一张卡片,因此控制台程序、Windows 服务或 Linux64 服务器都能生成。宽度和高度为逻辑像素,缩放系数可生成清晰的高 DPI 图像。可用于定时报表:用仪表盘所用的同样查询构建卡片,并把图像附加到邮件中。
SaveToPNG 保存到文件或流,例如 320 乘 160、缩放 2 得到 640 乘 320 的图像SaveToSVG 输出清晰的矢量图Card.KPI.SaveToPNG 保存屏幕上卡片所显示的内容主题、图像与平台
只需编写一次仪表盘,即可复用设计。FireMonkey 仪表盘、磁贴和 KPI 卡片可在 Windows、macOS、iOS 和 Android 上运行,.NET 移植版则为 WinForms、WPF 和 Avalonia 提供相同的类。由于同一个布局引擎在所有平台上计算单元格,已保存的布局在每个目标平台上含义相同。每个目标平台的演示集也相同:Delphi 和 C++ Builder 提供 Basic、LiveKPI、SaveLayout 和 Suite,.NET 则提供 WinForms、WPF 和 Avalonia 版本。
TsgcFMXDashboard、TsgcFMXDashboardTile、TsgcFMXKPICard, TsgcFMXDashboardTileLauncherTsgcWinFormsDashboard、TsgcWinFormsKPICard 及其 WPF 和 Avalonia 对应组件预览显示的内容与打印机和 PDF 得到的完全一致。
打印、预览和 PDF
仪表板以整个看板图片的形式打印在一页上:所有未隐藏的磁贴,包括已滚出视图的磁贴,布局与屏幕上一致。磁贴中的每个 sgcUI 控件都由各自的渲染器绘制,因此 KPI 卡片、图表、仪表、网格、数据透视网格、日程视图和图示都会被打印。磁贴中的其他控件(例如备注框或标签)则留空。
Print 显示打印对话框或直接打印到默认打印机,ShowPrintPreview 打开带有翻页、缩放、页面设置、打印和 PDF 导出的预览PrintSettings 保存纸张、方向、页边距、缩放以及页眉和页脚文字,打印机、预览和 PDF 都使用它ExportToPDF 把页面写成一张带标签的图片(默认 192 dpi),并附上按阅读顺序列出磁贴标题的替代文本TsgcUIPDFOptions 的 PDFALevel 可为归档加上 PDF/A-2a 或 PDF/A-3a,可单独使用,也可与 PDF/UA 同时使用打印和预览包含在每个版本中,包括免费的社区版,可用于 VCL、FireMonkey、WinForms、WPF 和 Avalonia。在 FireMonkey 中,打印在 Windows 和 macOS 上可用,预览和 PDF 导出则适用于所有平台。PDF 导出需要 sgcUIPDF 桥接和已获许可的 sgcPDF(在 .NET 中为 NuGet 包 esegece.sgcUICore.sgcPDF),因此不包含在社区版中。
面向屏幕阅读器的 UI Automation、键盘和高对比度,无需任何设置。
无障碍
sgcDashboard 将仪表板及其磁贴连同标题和位置、每个磁贴中承载的控件,以及带有标题、值、单位和趋势的 KPI 卡片向 Microsoft UI Automation 公开。
无障碍功能在每个版本中默认开启,包括免费的社区版,可用于 VCL(Delphi 和 C++Builder 从 Delphi 7 到 Delphi 13 的每个版本)、Windows 上的 FireMonkey,以及 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 卡片(带迷你趋势线)、健康度仪表和图表。
Altamira PMO →
ERP 的起始页以带趋势箭头的 KPI 卡片显示收入、未结订单、逾期发票和流失率,下方磁贴中是销售图表和重点客户表格。每晚服务会将同样的卡片渲染为 PNG,用于管理层邮件,数字和颜色与屏幕上完全一致。
工厂中的墙面屏幕显示产线吞吐量、温度和报警数量。MQTT 数据源在读数到达时将其推送到各自的卡片中,迷你图显示最近几分钟的变化,深色主题让房间在夜间保持安静。相邻磁贴中的仪表和图表遵循同一个主题。
在由多种角色使用的桌面客户端中,每位用户都把重要的磁贴拖到顶部,调整最常关注的图表大小,并隐藏其余内容。布局按用户保存为 JSON,并在下次登录时恢复,更新中新增的磁贴则会自动流入空闲空间。
Delphi、C++ Builder 和 C# 中使用相同的 API:网格上的磁贴、每个磁贴中带迷你图的 KPI 卡片、深色主题和已保存的布局。拖动和布局文件需要注册版。
12 列网格上的磁贴,每个磁贴中有一张 KPI 卡片,采用深色主题,布局保存到文件。拖动和布局文件需要注册版。
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;C++ Builder 中的同一个仪表盘,使用生成的头文件。
#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");
}C# 中的 WinForms 版本,类名与 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 有六个演示,.NET 有十个演示,全部包含在已编译演示的下载中。
12 列网格上的六个磁贴和四张 KPI 卡片,其他磁贴中有日志和列表。这是了解布局引擎和主题切换的最快方式。
由 sgcDashboardWS 桥接提供数据的 KPI 卡片,消息到达时数值跳动、迷你图增长。需要 sgcWebSockets。
通过标题栏拖动磁贴,通过手柄调整大小,将布局保存为 JSON,重启演示后即可看到布局已恢复。
在一个带主题的仪表盘中,集合了来自其他 sgcUI 产品的图表、地图、PDF 查看器、报表预览和 KPI 卡片。
一个包含 204 行销售数据的数据源为图表、仪表、网格、透视表和地图磁贴提供数据。点击某个区域的柱子、网格单元格、透视表行或地图标记,其他磁贴就会跟随筛选(注册版);缩窄窗口,磁贴会重新排列。Delphi VCL 和 C++ Builder,以及 .NET 中的 SalesExplorer(WinForms)和 SalesExplorerWpf。需要 sgcCharts、sgcGauges、sgcGrid、sgcPivotGrid 和 sgcMaps。
运行时设计器:从设计面板的调色板添加内置磁贴,在编辑模式下移动并调整大小,编辑属性,删除,撤销和重做,并把仪表盘保存为 JSON。Delphi VCL 和 C++ Builder,以及 .NET 中的 DashboardDesigner(WinForms)和 DashboardDesignerWpf。
包含三个分组以及各种尺寸磁贴、副标题、徽章和一个已禁用磁贴的开始界面。状态栏显示用鼠标、Enter 或空格键单击的磁贴,两个组合框用于切换方向和主题。TileLauncherFMX 在 FireMonkey 中实现相同的功能。
适用于 WinForms、WPF 和 Avalonia 的 Basic、BasicWpf、BasicAvalonia、LiveKPI、SaveLayout、Suite、SalesExplorer、SalesExplorerWpf、DashboardDesigner、DashboardDesignerWpf、TileLauncher、TileLauncherWpf 和 TileLauncherAvalonia。
适用于 Delphi (VCL) 的五个 QuickStart 演示位于 Demos\Dashboard\Delphi\00.QuickStart。PDF 指南逐步讲解这些演示:带有 KPI 卡片的第一个仪表板、12 列磁贴网格、实时数据、主题,以及带有图表磁贴的销售仪表板。
sgcDashboard 包含在 sgcUI Professional 和 Enterprise 中,也可单独购买。sgcDashboard 还包含在 All-Access 套餐中。
免费的社区版(NuGet 上的 esegece.sgcDashboard.Community)包含网格、磁贴、带迷你图的 KPI 卡片、无界面 PNG 和 SVG、主题、数据源、内置磁贴、响应式断点,以及面向所有磁贴的 AI 路由。它不包含运行时拖动与调整大小、SaveLayout 和 LoadLayout(因此布局不会被保存)、交叉筛选、运行时设计器、“询问仪表盘”的带筛选回答,以及 sgcDashboardWS 桥接。无论哪个版本,每个内置磁贴都需要对应的 sgcUI 产品及其桥接包。
| 功能 | 社区版(免费) | 注册版 |
|---|---|---|
| 带跨度和自动流式排列的磁贴网格 | ✓ | ✓ |
| 带趋势和迷你图的 KPI 卡片 | ✓ | ✓ |
| 浅色和深色主题 | ✓ | ✓ |
| 输出为 PNG 和 SVG 的无界面 KPI 卡片 | ✓ | ✓ |
| 带分组磁贴、徽章和键盘导航的磁贴启动器 | ✓ | ✓ |
| 图表、仪表、网格、透视表和地图内置磁贴(每个都需要各自的 sgcUI 产品) | ✓ | ✓ |
| 由多个磁贴共享的数据源 | ✓ | ✓ |
| 响应式断点 | ✓ (不保存) | ✓ |
| “询问仪表盘”面向所有磁贴的路由 | ✓ | ✓ |
| 带筛选栏的交叉筛选 | − | ✓ |
| 带设计面板和撤销的运行时设计器 | − | ✓ |
| “询问仪表盘”的带筛选回答 | − | ✓ |
| 运行时拖动并调整磁贴大小 | − | ✓ |
| SaveLayout 和 LoadLayout | − | ✓ |
| sgcDashboardWS 实时数据源(WebSocket、MQTT、SSE) | − | ✓ |
| 组件 | 说明 |
|---|---|
| TsgcVCLDashboard、TsgcFMXDashboard | 适用于 VCL 和 FireMonkey 的网格容器。 |
| TsgcVCLDashboardTile、TsgcFMXDashboardTile | 带标题、可承载任意控件的磁贴。 |
| TsgcVCLKPICard、TsgcFMXKPICard | 带趋势、页脚和迷你图的 KPI 卡片。 |
| TsgcDashboardKPI | 框架无关的无界面 KPI 卡片,支持 PNG 和 SVG 导出。 |
| TsgcVCLDashboardTileLauncher, TsgcFMXDashboardTileLauncher | 按带标题的分组排列四种尺寸磁贴的开始界面,支持徽章、滚动和键盘导航。 |
| TsgcDashboardTileLauncher | 磁贴启动器与框架无关的模型和渲染器,支持无界面的 PNG 导出。 |
| TsgcDashboardDataSource | 为内置磁贴提供数据、与框架无关的数据源。 |
| TsgcVCLDashboardChartTile, GaugeTile, GridTile, PivotTile, MapTile | 内置磁贴,承载 sgcCharts、sgcGauges、sgcGrid、sgcPivotGrid 或 sgcMaps 的控件,每个产品一个桥接包,包含 FireMonkey 版本。 |
| TsgcVCLDashboardDesignPanel, TsgcFMXDashboardDesignPanel | 运行时设计器的设计面板(仅限注册版)。 |
| TsgcDashboardLayout | 布局引擎,在 Linux64 上同样可用。 |
| TsgcDashboardSource_WebSocket、_MQTT、_SSE | sgcDashboardWS 桥接的实时 KPI 数据源(仅注册版)。 |
| 目标 | 组件 | 平台 |
|---|---|---|
| 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 数据源会按 ValuePath 从每条 WebSocket、MQTT 或 SSE 消息中读取一个数字,并为您更新卡片及其趋势。
仪表盘和磁贴、带自动流式排列的网格布局、带迷你图的 KPI 卡片、无界面 PNG 和 SVG、主题、数据源、内置磁贴、响应式断点以及 AI 路由。它不包含运行时拖动与调整大小、SaveLayout 和 LoadLayout、交叉筛选、运行时设计器、AI 路由器的带筛选回答,以及 sgcDashboardWS 桥接。请参阅版本。
可以。TsgcFMXDashboard、其磁贴和 KPI 卡片自 Delphi XE6 起可在 Windows、macOS、iOS 和 Android 的 FireMonkey 上运行,使用与 VCL 仪表盘相同的布局引擎。尺寸与设备无关,并跟随窗体缩放。
可以。TsgcDashboardKPI 无需窗口,也无需 VCL 或 FireMonkey 即可绘制卡片,并将 PNG 或 SVG 写入文件或流。它可在所有平台构建,包括 Linux64,因此服务或 Web 服务器都可以生成这些图像。
支持。所有尺寸均为与设备无关的像素。VCL 仪表盘按显示器 PPI 除以 96 进行缩放,FireMonkey 仪表盘按窗体缩放比例缩放,因此磁贴、间距和行高在任何显示器上都保持比例。