当前位置:首页
开发技术指南» 文章正文
    引言:

    摘要: rt ......
 ·两个裤衩也庆祝来吧,撒分啦    »显示摘要«
    摘要: 刚刚发现两个裤衩了 撒分庆祝~~~ ......


Fastreport3.0,人民币大写问题

分组打印,用SISTEXT算出合计金额。怎么样转换成人民币大写。如果用函数写在什么地方,怎么调用?我搜索了以前的贴子,也没有明确答案。请朋友们帮忙。

NO.1   作者: merkey2002

写个转换函数啊  
  这个是我很早很早以前写的,你参考一下,至于在哪里调用,没想到好的法子。。。你试试能不能把它改在fastreport里面。  
  function   small2big(sourcemoney:currency):string;  
  var  
      strsourcemoney,strobjectmoney:string;  
      //strsourcemoney   保存未转换的小写字符串  
      //strobjectmoney   保存已转换的大写字符串  
      thiswei,thispos:string[2];  
      //thiswei为当前位的大写,thispos为当前位的人民币单位  
      iwei,pospoint:integer;  
      //iwei为当前位置,pospoint为小数点的位置  
  begin  
      strsourcemoney:=formatfloat(0.00,sourcemoney);  
      //将浮点数转换成指定格式字符串  
      if   length(strsourcemoney)>15   then     //超过千亿元  
          begin  
              showmessage(please   input   correct   number);  
              exit;  
          end;  
      pospoint:=pos(.,strsourcemoney);//小数点位置  
      for   iwei:=length(strsourcemoney)   downto   1   do  
          begin  
   
              case   pospoint-iwei   of  
                  -3:   thispos:=厘   ;  
                  -2:   thispos:=分;  
                  -1:   thispos:=角;  
                  1:   thispos:=元;  
                  2:   thispos:=拾;  
                  3:   thispos:=佰;  
                  4:thispos:=千;  
                  5:   thispos:=万;  
                  6:   thispos:=拾;  
                  7:thispos:=佰;  
                  8:   thispos:=千;  
                  9:   thispos:=亿;  
                  10:   thispos:=十;  
                  11:   thispos:=佰;  
                  12:   thispos:=千;  
              end;  
              case   strsourcemoney[iwei]   of  
                  .:   continue   ;  
                  1:   thiswei:=壹   ;  
                  2:   thiswei:=贰;  
                  3:   thiswei:=叁;  
                  4:   thiswei:=肆;  
                  5:   thiswei:=伍;  
                  6:   thiswei:=陆;  
                  7:   thiswei:=柒;  
                  8:   thiswei:=捌;  
                  9:   thiswei:=玖;  
                  0:  
                      begin  
                          thiswei:=;  
                          if   iwei<length(strsourcemoney)   then  
                                  if   (strsourcemoney[iwei+1]<>0)   and   (strsourcemoney[iwei+1]<>.)   then  
                                    thiswei:=零;  
                          if   (thispos<>亿)   and   (thispos<>万)   and   (thispos<>元)   then  
                              thispos:=       //单位是十,百、仟   的,为0,则不显示单位。  
                          else  
                              thiswei:=;//若单位为亿、万、元,则前一位0,不显示零  
                      end;  
              end;  
          strobjectmoney:=thiswei+thispos+strobjectmoney;//组合成大写金额  
      end;  
      strobjectmoney:=ansireplacetext(strobjectmoney,亿万,亿);       //去掉亿万中的万  
      if   ansicontainsstr(strobjectmoney,分)   then  
          small2big:=strobjectmoney  
      else  
          begin  
              strobjectmoney:=strobjectmoney+整;  
              small2big:=strobjectmoney;  
          end;  
  end;

NO.2   作者: xinshiji

mark

NO.3   作者: 78hgdong

fastreport3.0加自定义函数看帮助有的.

NO.4   作者: hqhhh

其实你要转换一下思路,  
  不需要在fastreport中加定义函数,而在程序中加,  
  然后在打印报表之前给报表中的字段赋值,这样实现比较好一些,  
  不然需要做大小转换的报表都需在要报表中加自定义函数,如果函数有误,要修改函数,其不是很麻烦!

NO.5   作者: abcdefgdeng

UP

NO.6   作者: dengyueguang

不知道,关注。

NO.7   作者: LWH008

hqhhh(枫叶)   的做法,如果数据是依赖于记录的,也就是说它是不固定的,行吗?

NO.8   作者: hqhhh

呵呵!  
  如果根据记录生成的合计,可能不行,不过也不一定,再试试看!

NO.9   作者: LWH008

前些天我也在搞这个,现在我放弃,不再弄什么大写了.原因是:大写金额是手工时代的做法,在信息时代没有多少必要性.   呵呵,与时俱进~~


 ·在广州找java方面工作    »显示摘要«
    摘要: 联系电话:13538734770,我的个人简历: 专科学历,外文四级 1.精通java语言,能独立开发基于j2se桌面应用程序。 2.j2ee平台 精通struts、servlet、jsp、ejb(cmp,bmp,sessionbean,jms&消息驱动bean)、ide与应用服务器(jbuilder、jcreator、eclipse、tomcat、weblogic、jboss)。......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE