首页 > 其他分享 >FastReport调用Delphi中的自定义函数(人民币大写金额)

FastReport调用Delphi中的自定义函数(人民币大写金额)

时间:2025-01-20 15:54:25浏览次数:1  
标签:StrTran begin end string 自定义 Delphi FastReport dx ANumberic

人民币大写金额转换函数

 1 function MoneyToCn(ANumberic: Real): string;
 2 const
 3   s1: string = '零壹贰叁肆伍陆柒捌玖';
 4   s2: string = '分角元拾佰仟万拾佰仟亿拾佰仟万';
 5 
 6 function StrTran(const S, s1, s2: string): string;
 7 begin
 8   Result := StringReplace(S, s1, s2, [rfReplaceAll]);
 9 end;
10 var
11   S, dx: string;
12   i, Len: Integer;
13 
14 begin
15   if ANumberic < 0 then
16   begin
17     dx := '负';
18     ANumberic := -ANumberic;
19   end;
20 
21   S := Format('%.0f', [ANumberic * 100]);
22   Len := Length(S);
23   for i := 1 to Len do
24   dx := dx + Copy(s1, (Ord(S[i]) - Ord('0')) * 2 + 1, 2) + Copy(s2, (Len - i)* 2 + 1, 2);
25 
26   dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟', '零'), '零佰','零'),'零拾', '零'), '零角', '零'), '零分', 
27     '整');
28   dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零零', '零'), '零零','零'),'零亿', '亿'), '零万', '万'), '零元', 
29     '元');
30   if dx = '整' then
31     Result := '零元整'
32   else
33     Result := StrTran(StrTran(dx, '亿万', '亿零'), '零整', '整');
34 end;

在Create中向FastReprot添加函数

1 procedure Create(Sender: TObject);
2 begin
3   frxReport1.AddFunction('function MoneyToCn(ANumberic: Real): String;','Myfunction','人民币大写金额转换函数');
4 end;

在FastReport用户函数事件中添加

1 function frxReport1UserFunction(const MethodName: string; var Params: Variant): Variant;
2 begin
3   if UpperCase(MethodName) = UpperCase('MoneyToCn') then
4   Result := MoneyToCn(Params[0]);
5 end;

 

标签:StrTran,begin,end,string,自定义,Delphi,FastReport,dx,ANumberic
From: https://www.cnblogs.com/Thenext/p/18681607

相关文章

  • linux 将自定义程序做成服务开机自启动
    在linux系统中有很多方式可以将自定义程序设置成开机自启动,本文所述的方式是通过将程序设置成service来实现自启动。在/lib/systemd/system目录下新建hello.service文件touch/lib/systemd/system/hello.servicevim/lib/systemd/system/hello.service[Unit]Descrip......
  • 为什么设置了自定义错误页面后无法登录网站后台
    设置自定义错误页面后无法登录网站后台是一个常见的问题,通常由配置不当或冲突引起。要解决这个问题,我们需要仔细检查相关配置文件,并确保各个组件之间的兼容性。以下是详细的排查和解决方法:一、检查自定义错误页面配置配置文件位置:根据服务器类型,自定义错误页面的配置文件位置......
  • ASRT语音识别项目的自定义数据集制作
    项目地址:https://gitee.com/ailemon/ASRT_SpeechRecognition通过观察evaluate_speech_model.py的代码,知道DataLoader加载asrt_config.json配置项,进而加载数据内容。复制json配置文件,在数据类“dev”下填写数据集名(name)cus250118、数据路径(data_path)C:/Users/tellw/test/dev、数据......
  • Vue3 自定义Hooks完全指南
    目录1.前言2.什么是Hooks2.1Hooks的定义2.2为什么需要Hooks2.3与Vue2的区别3.Hooks的实现原理3.1响应式系统3.2生命周期集成3.3依赖注入系统4.Hooks的作用与应用场景4.1常见应用场景4.2实际案例分析5.Hooks的优缺点5.1优点5.2缺点6.Hooks的书写规范6......
  • Cesium+Vue3教程(004):基于Vue3的Cesium添加地形和自定义地形
    文章目录03-添加地形与自定义地形添加地形添加水纹和光照效果加载自定义地形03-添加地形与自定义地形添加地形实现代码:constviewer=newCesium.Viewer("cesiumContainer",{terrainProvider:Cesium.createWorldTerrain(......
  • go项目zero中自定义sdk的引用与使用规范
    在Go项目中,`gomodtidy`命令会自动删除没有直接引用的依赖。如果你的项目中某个SDK被引用但是没有在业务代码中直接使用,`gomodtidy`可能会将其清理掉,因为它被认为是"未使用"的依赖。如果你希望保留这些依赖(例如某些SDK),可以采取以下几种方法:###1.显式调用SDK中......
  • SQL-按自定义格式进行编号的SQL自定义函数.090119
    生成格式如:DT.EMP.0000000001的自增emp_id,加入EmpBaseINfo表中。--生成格式如DT.EMP.0000000001  【Vegas Add】ALTERFUNCTION[dbo].[Get_EmpBaseInfo_AccountID](@RowIDasint)RETURNSnvarchar(50) as begin    declare@oidnvarchar(50)    dec......
  • C# WinForm自定义仪表盘控件开发教程
    学习上位机开发,自然离不开自定义控件开发。Windows窗体支持三种类型的用户定义的控件:复合控件、扩展控件和自定义控件。这里的自定义控件主要是指基于GDI+技术实现控件的绘制,最终实现效果如下所示:这个控件可以作为仪表盘数据显示,也可以作为进度条来使用。一、项目创建1......
  • php根据权重自定义排序
    <?php//支付列表数组$paymentList=[['name'=>'支付宝','info'=>'支持多种支付场景','weight'=>3],['name'=>'微信支付','info'=>'便捷的移动支付','wei......
  • 告别会员!分享一款比洛雪音乐更好用的免费音乐软件,全平台支持,支持自定义插件,歌单同步等
    文章目录......