http://hi.baidu.com/festsoft/blog/item/2cb6b713a8d3cad5f6039e31.html 我完善和修改了网友的一个函数: FORM NUMTOSTR USING VALUE(ZNUM) CHANGING VALUE(ZSTR). DATA : ZCLEN TYPE I, ? ? ? ? ZCLEN2 TYPE I, " 记录数据长度. ? ? ? ? N TYPE I, ? ? ? ? ZCSTR(20) TYPE C, ? ? ? ? ZCSTR2(20) TYPE C, ? ? ? ? ZCTEMP(3) TYPE C, ? ? ? ? ZFLAG(1) TYPE C VALUE '.', ? ? ? ? ZFLAG2 TYPE I VALUE 0, ? ? ? ? ZCDEC(20) TYPE C. ? "记录小数部分. ZSTR = ''. CHECK ZNUM 0. IF ZNUM = 0. ? ZCSTR = ZNUM. * 压缩字符串,去除前面的空格。 ? CONDENSE ZCSTR NO-GAPS. * 分离整数与小数,好单独处理整数。 ? SPLIT ZCSTR AT ZFLAG INTO ZCSTR ZCDEC. ? ZCLEN = STRLEN( ZCSTR ). ? ZCLEN2 = ZCLEN. * 在循环中从右面在每三位的前面加上一个逗号。 ? WHILE ZCLEN > 3. ? ? N = ZCLEN - 3. ? ? ZCTEMP = ZCSTR+N(3). ? ? IF NOT ZCSTR2 IS INITIAL. ? ? ? CONCATENATE ZCTEMP ZCSTR2 INTO ZCSTR2 SEPARATED BY ','. ? ? ELSE. ? ? ? ZCSTR2 = ZCTEMP. ? ? ENDIF. ? ? ZCLEN = ZCLEN - 3. ? ENDWHILE. * 将不剩下的不足三位数加到前面 ? IF ZCLEN2 > 3 . ? ? CONCATENATE ZCSTR+0(ZCLEN) ZCSTR2 INTO ZCSTR2 SEPARATED BY ','. ? ELSE. ? ? ZCSTR2 = ZCSTR+0(ZCLEN). ? ENDIF. ? IF ZFLAG2 = 1. ? ? CONCATENATE '-' ZCSTR2 INTO ZCSTR2. ? ENDIF. ? CLEAR ZCSTR. * 将处理过的整数与小数连接起来。 ? IF ZCDEC ''. ? ? CONCATENATE ZCSTR2 ZCDEC INTO ZCSTR SEPARATED BY ZFLAG. ? ELSE. ? ? ZCSTR = ZCSTR2. ? ENDIF. * 将值返回 ? ZSTR = ZCSTR. ELSE. ? ZSTR = ZNUM. ENDIF. ENDFORM. 不知道适不适合你。
data: g_tmp(15). if data . IF INPUT CA '#*' OR INPUT CA '##'. ? ASSIGN NUMCSTR TO TYPE 'C'. ? MOVE INPUT TO . ELSE. ? MOVE INPUT TO NUMCSTR. ENDIF. ENDFUNCTION. 然后在需要的地方CALL一下
clol_put_sign_in_front这个函数在我们的系统中找不到。我们是46C。楼上用的大概是47以上版 本吧。
告诉大家一个惨无人道的消息,一个灭绝人寰的消息,一个绝望至死的消息,一个伤心欲绝的消息,一个肝肠寸断的消息,一个愁眉苦脸的消息,一个捶胸顿足的消息,一个泣不成声的消息,一个垂头丧气的消息,一个生不如死的消息,一个心如刀割的消息,今天周一
This is that function's Description: Move the negative sign from the left hand side of a number, to the right hand side of the number. Note that The result will be left justified (like all character fields), not right justifed as numbers normally are.