楂 绾 缁 楠 鐐 婊
鍙戝竷: 2008-6-26 20:40 | 浣滆: admin | 鏌ョ湅: 25娆
Yield()鍑芥暟鐨勫仛鐢
Yield()鏄竴涓笉甯哥敤鍒扮殑PowerBuilder鍑芥暟銆傚彲鏄紝鍦ㄤ竴涓ぇ鐨勫惊鐜繃绋嬩腑锛屽鏋滅敤鎴锋兂鍦ㄦ墽琛屽埌涓鍗婃椂閫氳繃鍗曞嚮鎸夐挳鎴栬彍鍗曟潵閫鍑虹殑璇濓紝灏变竴瀹氳鐢ㄥ埌Yield()鍑芥暟浜嗭紝鍚﹀垯绋嬪簭鍙細鍦ㄦ墽琛屽畬鎴愭暣涓惊鐜悗鎵嶄細鍝嶅簲鎸夐挳鎴栬彍鍗曠殑Click浜嬩欢銆傚皢Yield()鍑芥暟鏀惧湪寰幆浣撶殑涓棿銆傞偅涔堝湪寰幆鎵ц鐨勮繃绋嬩腑鍙戠幇鏈夋柊鐨勪簨浠舵秷鎭湪娑堟伅闃熷垪涓氨鍥炵珛鍗冲幓鍝嶅簲銆
PowerBuilder涓浣曞悓涓插彛閫氳
鍦ㄥ簲鐢ㄤ腑锛屾湁鏃堕渶瑕侀氳繃COM鍙e拰澶栬閫氳銆傜敤C缂栧啓鐩稿簲鐨勫姩鎬佽繛鎺ュ簱(DLL)鍑芥暟锛岀劧鍚庡湪Power Builder涓皟鐢ㄥ浐鐒舵槸涓涓ソ鍔炴硶銆傚彲鏄紝濡傛灉涓嶇啛鎮塁鍜學indows API鐨勮皟鐢紝灏辨樉寰楁湁浜涘洶闅句簡銆 PowerBuilder鏀寔MS 鐨凮CX鎺т欢锛岃繖鏍凤紝鎴戜滑鍙互鍒╃敤VB4闄勫甫鐨凪SCOMM32.OCX鏉ュ疄鐜板悓COM鍙g殑閫氳銆傚疄鐜版柟娉曞涓嬶紝鍏堝湪绐楀彛涓婂姞鍏LE鎺т欢锛岄夋嫨MSCOMM32銆傜紪绋嬩妇渚嬪涓嬶細
ole_comm1.Object.CommPort = 1 // ole_comm1鏄疧LE鎺т欢鐨勫悕绉帮紝CommPort鏄鍙c
ole_comm1.Object.Settings = "2400,N,8,1" //璁剧疆閫氳鍗忚
ole_comm1.Object.InputLen = 0 //鍒濆鍖朓nput
ole_comm1.Object.PortOpen = True //鎵撳紑COM鍙
ole_comm1.Object.Output = "a" //鍚慍OM鍙e彂閫佸瓧绗
Do
Yield() //涓鐩寸瓑寰咃紝鐩村埌InBuffer鏈夋暟鎹
LOOP Until ole_comm1.Object.InBufferCount >= 1
ls_Output = ole_comm1.Object.Input //鍙栨暟鎹
鎵╁睍PowerBuilder鐨勫姛鑳
灏界PowerBuilder鎻愪緵鐨勫ぇ閲忓嚱鏁板彲浠ユ弧瓒冲ぇ澶氭暟鐢ㄦ埛鐨勯渶瑕侊紝鍙槸锛屽湪涓浜涚壒娈婄殑鍥惧舰澶勭悊锛岀瀛﹁绠楃瓑搴旂敤涓紝杩樻槸鏃犳硶鐢≒owerBuilder鏉ュ疄鐜帮紝杩欏氨涓嶅緱涓嶅熷姪澶栭儴鍑芥暟浜嗐侾owerBuilder鏀寔鍔ㄦ佽繛鎺ュ簱(DLL)鐨勮皟鐢ㄣ傝繖鏍凤紝鎴戜滑灏卞彲浠ヨ嚜宸辩敤C鎴朌elphi缂栧嚭鎴戜滑闇瑕佺殑鍔熻兘锛屽皢瀹冪紪璇戞垚DLL锛岀劧鍚庡湪PowerBuilder涓皟鐢ㄣ傚厛鍦(Declare)鑿滃崟涓夋嫨(Global External Function...)锛屾墦寮瀹氫箟澶栭儴鍑芥暟瀵硅瘽妗嗐傚湪瀵硅瘽妗嗕腑杈撳叆鍑芥暟鐨勫畾涔夈備妇渚嬪涓嬶細function int max(int a,int b) linrary "mydll.dll" 銆傚畾涔夊畬涔嬪悗锛屽氨鍙互璞′娇鐢≒owerBuilder鐨勫唴閮ㄥ嚱鏁颁竴鏍蜂娇鐢ㄨ嚜宸卞畾涔夌殑澶栭儴鍑芥暟浜嗐
瀹㈡埛鏈轰粠鏈嶅姟鍣ㄥ彇寰楃郴缁熸椂闂
PowerBuilder涓湁鍑芥暟today()鍜屽嚱鏁皌ime()鍒嗗埆杩斿洖褰撳墠鏈哄櫒鐨勬棩鏈熷拰鏃堕棿銆傚彲鏄鏋滅敤鎴峰湪浣跨敤鐨勮繖鍙版満鍣ㄤ笂浠绘剰鐨勪慨鏀圭郴缁熺殑鏃ユ湡鍜屾椂闂达紝閭d箞鍦ㄥ湪搴旂敤绯荤粺涓敤today()鍜宼ime()鍑芥暟灏卞緱涓嶅埌姝g‘鐨勫綋鍓嶆棩鏈熷拰鏃堕棿浜嗐傚湪瀹㈡埛鏈嶅姟鍣ㄧ粨鏋勪腑锛屾湁涓鍙版満鍣ㄦ槸鐢ㄥ仛鏁版嵁搴撴湇鍔″櫒鐨勶紝涓鑸敤鎴峰緢闅惧湪涓婇潰淇敼鏃堕棿锛屾垜浠氨鍙互鍦ㄩ渶瑕佸綋鍓嶆棩鏈熷拰鏃堕棿鐨勫湴鏂逛粠鏈嶅姟鍣ㄤ笂鍙栧緱鏃堕棿銆傛柟娉曞涓嬶細浠ybase锛堟垨MS SQL Server锛夋暟鎹簱涓轰緥锛屽畾涔夊嚱鏁皍f_getdate()杩斿洖datetime鍙橀噺銆
datetime d_today
select getdate() into :d_today from tablename;
return d_today
灏卞彲浠ュ緱鍒版湇鍔″櫒鐨勭郴缁熸椂闂翠簡锛屽叾涓璯etdate()鏄疭ybase(鎴朚S SQL Server)鐨勭郴缁熷嚱鏁帮紝寰楀埌褰撳墠鏃堕棿锛岃繑鍥瀌atetime鍙橀噺銆傚湪鍏朵粬鏁版嵁搴撲笂涔熷簲璇ユ湁绫讳技鐨勫嚱鏁般
灏忓啓閲戦杞崲鎴愬ぇ鍐欓噾棰
鍦ㄥ緢澶氬鎵撳嵃鍙戠エ鐨勫湴鏂归渶瑕佹墦鍗伴噾棰濈殑涓枃澶у啓锛孭owerBuilder娌℃湁鎻愪緵杩欐牱涓涓暟瀛楄浆鎹㈡垚閲戦澶у啓鐨勫嚱鏁般傛垜灏辫嚜宸辩紪浜嗕竴涓紝鍦ㄥ疄闄呬娇鐢ㄤ腑鏁堟灉鑹ソ銆傜▼搴忔簮浠g爜濡備笅锛
int i,lendec,lenint
string numstr,a,b,c,d,bbak
numstr=string(aje,"#0.00")
lenint=len(mid(numstr,1,pos(numstr,'.') - 1))
if right(numstr,2)='00' then
lendec=0
else
lendec=2
end if
string dxint[13],dxdec ,sz[13]
string dxstr="涓囦粺浣版嬀浜夸粺浣版嬀涓囦粺浣版嬀鍏"
string szstr="闆跺9璐板弫鑲嗕紞闄嗘煉鎹岀帠"
for i=1 to 13
dxint[i]=mid(dxstr,26 - i*2+1,2)
if i<11 then
sz[i]=mid(szstr,i*2 - 1,2)
else
sz[i]=" "
end if
next
dxdec ="瑙"
dxdec ="鍒"
dxstr=" "
for i = 1 to lenint
a = mid(mid(numstr,1,lenint),i,1)
b = sz[integer(a)+1]
c = dxint[lenint - i +1]
if dxstr<>" " then
d = mid(dxstr,len(dxstr) - 1 ,2)
else
d = " "
end if
if b="闆" and (d="闆" or b=bbak or c="鍏" or c="涓" or c="浜") then b=""
if a="0" and c<>"鍏" and c<>"涓" and c<>"浜" then c=""
if (c="鍏" or c="涓" or c="浜") and d="闆" and a="0" then
dxstr=mid(dxstr,1,len(dxstr) - 2)
d = mid(dxstr,len(dxstr) - 1,2)
if (c="鍏" and d="涓" or c="涓"and d="浜") then c=""
end if
dxstr=dxstr + b + c
bbak = b
next
for i=1 to lendec
a = mid (mid(numstr,lenint+2,lendec),i,1)
if a="0" and dxdec[i]="鍒" then
b=""
else
b=sz[integer(a) + 1]
end if
if a<>"0" then
dxstr=dxstr+b+dxdec[i]
else
dxstr=dxstr+b
end if
next
if lendec=0 then dxstr=dxstr+"鏁"
return dxstr




发表于 2009-1-5 19:48
| 











