如何在QR中实现金额由小写转为大写的功能?(100分)

  • 主题发起人 主题发起人 Nicro
  • 开始时间 开始时间
N

Nicro

Unregistered / Unconfirmed
GUEST, unregistred user!
本人的报表中有一栏合计:100.00元,现在想将此100.00元转为大写
壹佰零拾零元零角零分整。
不知如何转换,敬请各位高手指教。
 
自己写个函数转不就可以了?
 
小写转为大写的函数我就不说了,这里多的是。
在你的QR连接的DATASET中将字段加入,在合计字段的OnGetText中写:
Text:=小写转为大写(Sender.AsCurrency);
如果是动态的SQL查询,可以把OnGetText写好,再Query Open后将字段的OnGetText事件进行指定。
另外在QR的控件OnPrint事件中写也一样:
Value:=小写转为大写(QR.DataSet.FieldByName('合计').AsCurrency);
 
function xd(xx:currency):string;
  var
  dx,ws:string;
  i,cd:integer;
  int:currency;
  begin

  int:=trunc((abs(xx)+0.005)*100);

  {在“厘”上4舍5入后去掉小数点}
  cd:=length(currtostr(int));
  {取得数字的长度,跟据此长度即可判断位数}
  dx:='零壹贰叁肆伍陆柒捌玖';
  ws:='分角元拾佰仟万拾佰仟亿拾佰仟';
  {位数}
  Result:= ' ';
  i:=1;
  while i<=cddo

  begin

  Result:=Result+copy(dx,strtoint(copy(currtostr
  (int),i,1))*2+1,2);

  {取数字的大写}
  Result:=Result+copy(ws,(cd-i)*2+1,2);
  {加上数字的位数}
  i:=i+1;
  end
  end
 
原理是这样的:[:D]
1.你可以先在FR的数据字典中定义两个变量,一个变量是数字A,另一个是字符B。
2.将数值A传回DELPHI中,然后经过自己编写的大小写转换函数将此结果赋给B。
3.在FR中加一个MEMO。然后录入此
大功告成。
 
后退
顶部