在报表中怎么进行RMB大小写转换(100分)

  • 主题发起人 主题发起人 wo88786705
  • 开始时间 开始时间
W

wo88786705

Unregistered / Unconfirmed
GUEST, unregistred user!
现在我在做个打印,里面要用到大写金额 我想的办法有2个 但是本人水平不够 对FASTRPORT 也不熟 不知道怎么办 请各位大哥帮忙
1。最好能在添加自定义函数 不知道怎么添加 也不知道怎么调用(函数已经写好)
2。我现在是直接写在CORD中 但是碰到一个问题 比如我的小写金额放在MEMO1。TEXT中 我想在MEMO2。TEXT中放大写金额 但是就是取不到MEMO1。TEXT中的实际数字 只有个表达式。不知道是怎么取的
谁能全部回答的200分 不然就100分一个
 
你把数据放入报表之前转换不可以吗
建一个对应表
就能把数字转换成大写的
 
function NumToChar( n:Real): wideString;
//可以到万亿,并可随便扩大
const cNum:WideString='零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分';
cCha:array[0..1, 0..11]of string =
(( '零仟','零佰','零拾','零零零','零零',
'零亿','零万','零元','亿万','零角','零分','零整'),
( '零','零','零','零','零','亿','万','元','亿','零','整','整'));
var i :Integer;
sNum :WideString;
begin
result := '';
sNum := FormatFloat('0',n*100);
for i := 1 to Length(sNum)do
result := result + cNum[ord(sNum)-47] + cNum[26-Length(sNum)+i];
for i:= 0 to 11do
//去掉多余的零
result := StringReplace(result, cCha[0,i], cCha[1,i], [rfReplaceAll]);
end;
 
直接写在CORD中 是什么意思 ?
 
取Memo1.text肯定是表达式,只有打印时不定式才会有真实值,如要取值,应是在OnAfterPrint事件
 
谢谢各位 函数我已经写好了 我现在只是要取值 或添加到自定义函数里去 还有调用问题
 
這個問題好解決的。
要通過FR裡的函數變量就可以了。
技術交流QQ:136293586
 
用Grid++Report就不用编程, 只要设置数字的显示格式为‘$$’就行,主页:http://www.rubylong.cn
 

Similar threads

回复
0
查看
848
不得闲
回复
0
查看
804
不得闲
回复
0
查看
863
不得闲
回复
0
查看
978
不得闲
后退
顶部