TDXSpreadSheet中自定义公式函数三大步骤
看其demo:CustomFunctionDemo。
在报表系统中,特别是财务等报表系统中。需要对固定格式的报表中cell定义取数公式。
如新中大中:
公式 |
返回值 |
gs_dwmc(预算单位代码/名称简写,账套,年度) | 预算单位名称 |
gs_mjkm(末级科目代码/名称简写,账套,年度) | 末级科目名称 |
如果我们使用dxSpreadSheet时,如何定义自己的函数公式,以取得数据库等相关数据记录和计算结果呢?
三大步:
1 | resourcestring sTriangleArea = 'TriangleArea'; implementation {$R *.dfm} uses dxSpreadSheetCoreFormulasTokens |
2 | procedure fpiTriangleArea(var AParamCount: Integer; var AParamKind: TdxSpreadSheetFunctionParamKindInfo); begin AParamCount := 3; SetLength(AParamKind, AParamCount); AParamKind[0] := fpkValue; AParamKind[1] := fpkValue; AParamKind[2] := fpkValue; end; |
3 | procedure fnTriangleArea(Sender: TdxSpreadSheetFormulaResult; const AParams: TdxSpreadSheetFormulaToken); var P1, P2, P3: Variant; begin if Sender.GetParamsCount(AParams) <> 3 then Sender.SetError(ecValue) else if Sender.ExtractNumericParameter(P1, AParams) then if Sender.ExtractNumericParameter(P2, AParams, 1) then if Sender.ExtractNumericParameter(P3, AParams, 2) then Sender.AddValue(0.5 * P1 * P2 * SIN(P3 * Pi / 180)); end; |
4 |
注册: dxSpreadSheetFunctionsRepository.Add(@sTriangleArea, fnTriangleArea, fpiTriangleArea, frkValue, 2048, ftMath); |
5 |
如此,你就可以在表格中,可直接插入使用公式。or用代码: SpreadSheet.ActiveSheetAsTable.CreateCell(12, 5).SetText(StringReplace('=TriangleArea(F9,F10,F11)', |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
2015-10-16 opencv学习HighGUI图形用户界面初步【1】