IT0022.PowerBuilder 9.0 精彩编程百例
黄浩 赵宏杰 等编著
北京:中国水利水电出版社
ISNB 7-5084-2047-0
2004年4月第1版
¥34.00
在当前window的Global External Functions中使用winapi来获取计算机名
//获得计算机名称字符串,注:原来书中的GetComputerNameA的,这个取出来是乱码 FUNCTION boolean GetComputerNameW(ref string cname,ref long nbuf) LIBRARY "kernel32.dll"
在window的open里就直接用就行了,使用winapi的时候都要指定他的内存缓冲区大小
string computername long buf buf=250 computername = space(buf) GetComputerNameW(computername,buf) sle_computername.text=computername
新建 PB Object 里面的Function全局函数 f_to_daxieje, 传入一个参数 string 的xxje ,主体代码如下:
string SL,JE,M,DXJE
integer N,I,J,W
SL="零壹贰叁肆伍陆柒捌玖"
JE="分角元拾佰仟万拾佰仟亿"
M=trim(xxje)
N=pos(M,".")
M=replace(M,N,1,"") //去掉小数点
N=len(M) //获得字符串长度
J=N;DXJE="" //为大写金额设置初始值
messagebox("","J:"+string(J)+",xxje:"+xxje+",M:"+string(M)+",N:"+string(N))
for I=1 to N
W=integer(mid(M,I,1))
if W>0 then
DXJE=DXJE+mid(SL,W+1,1) //数值
DXJE= DXJE+mid(JE,J,1) //单位
elseif W=0 then
if mid(JE,J,1)="万" then
DXJE=DXJE+mid(JE,J,1) //万位必保
elseif mid(JE,J,1)="元" then
if len(M)=3 then
DXJE=DXJE+'零' //元前零
end if
DXJE=DXJE+"元" //元位必保
if integer(mid(M,I+1,1))>0 and len(M) >3 then
DXJE=DXJE+mid(SL,W+1,1) //元后零
end if
elseif integer(mid(M,I+1,1))>0 then //有效零
DXJE=DXJE+mid(SL,W+1,1)
elseif integer(mid(M,I))=0 then //后继全零
if J >=7 then DXJE=DXJE+"万"
if J >=3 then DXJE=DXJE+"元"
DXJE = DXJE+"整"
exit
end if
end if
J -= 1
next
return DXJE
注:调用时传入的必须有小数,如100.00
创建时选择 PB Object / Standard Visual ,再选择继承自哪个控件...