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 ,再选择继承自哪个控件...