TDXSpreadSheet中自定义公式函数三大步骤
在报表系统中,特别是财务等报表系统中。需要对固定格式的报表中cell定义取数公式。
如新中大中:
公式 |
返回值 |
gs_dwmc(预算单位代码/名称简写,账套,年度) | 预算单位名称 |
gs_mjkm(末级科目代码/名称简写,账套,年度) | 末级科目名称 |
如果我们使用dxSpreadSheet时,如何定义自己的函数公式,以取得数据库等相关数据记录和计算结果呢?
三大步:
1 |
resourcestring sTriangleArea = 'TriangleArea'; implementation {$R *.dfm} uses |
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)', |
TDXSpreadSheet中自定义公式函数三大步骤相关推荐
- SPS中计算值公式函数简介
原文:http://blog.csdn.net/xuwenwu/archive/2008/06/01/2501006.aspx 公式概述 公式是对列表或库中的值进行计算的等式.公式以等号 (=) 开头 ...
- spark中自定义UDAF函数实现的两种方式---UserDefinedAggregateFunction和Aggregator
1.基于UserDefinedAggregateFunction实现平均数的计算 package com.bigdata.wb.sparkimport org.apache.spark.sql.Row ...
- matlab/simulink中自定义m-s函数作为simulink模块使用实例
一般而言matlab/simulink能满足多数使用要求,但是往往在研究中会使用User-difinition s-function或者调用c,c++的库函数,这时候就需要matlab能进行c,c++ ...
- php自定义函数全局声明,【phpcms-v9】phpcms-v9中自定义全局函数文件:extention.func.php...
/** * extention.func.php 用户自定义函数库 * * @copyright(C) 2005-2010 PHPCMS * @licensehttp://www.phpcms.cn/ ...
- python中自定义求积函数
#!/usr/bin/python #-*- coding:UTF-8 -*- def ji(x,y): res = x**y return res c = ji(2,10) prin ...
- mysql中自定义nvl函数
CREATE FUNCTION NVL(v1 datetime,v2 datetime) RETURNS datetime BEGINRETURN(ifnull(v1,v2)); END
- oracle中ak约束,Oracle自定义聚集函数
在yangtingkun博客上看到很早以前的一篇文章,是用一个type来自定义聚集函数的,觉得非常神奇,想想用普通的函数定义还真的是不能满足需求,只能用Oracle的说明来做.开始死活看不懂这个typ ...
- jsp 将java对象转json对象 (自定义EL函数)
功能:在 jsp 页面将 java对象 转换为 json对象 (使用自定义EL函数实现) 步骤: 1. 创建 JSP EL 工具类 2. 创建 tld 文件 3. 配置 web.xml 文件 4. 完 ...
- JAVAWEB开发之JSTL标签库的使用、 自定义EL函数、自定义标签(带属性的、带标签体的)
JSTL JSTL简介: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用: 提供给Java Web开发人员一个标准通用的标签函数库 和EL ...
最新文章
- 这篇论文,透露谷歌团队构想的“未来搜索”
- 信号与系统参考书推荐
- Activiti工作流之业务标识和流程的挂起激活
- 【MM模块】 Blanket Purchase Orders 框架订单
- 创业路上有指引,永洪CEO给企业服务型创业公司的融资建议
- ios设置中性黑体_ios 解决自定义字体无法显示问题
- linux系统udp通信程序,Linux UDP socket编程(UDP通讯模型) | C/C++程序员之家
- Arduino学习笔记36
- Poj2480欧拉函数
- 不可错过!华为终端云服务带来Mate 20系列专属礼包
- 马斯克投15亿,价值47000美元的比特币,其实是一群数学家搞出来的……
- 网页常用Javascript
- java如何使用while_java中的while(true)语句的用法是什么
- Go发起Http请求及获取相关参数
- 【最佳实践】如何搭建反向代理服务访问OSS资源?
- vscode设置字体
- matlab画收敛曲线,3.26 面收敛处理
- windows下安装设置redis
- d3.js-V3制作简单的飞线图
- 四则运算——单元测试(测试方法:Right-BICEP )