;
帖子
3919 
精华
积分
11710 
鱼币
0 ¥ 
来自
大连 
在线时间
1858 小时 
注册时间
2007-6-11 
最后登录
2009-10-20 

贴图大师勋章新人进步勋章宣传大使勋章论坛元老勋章

3
发表于 2009-1-5 19:48 | 只看该作者
鍦≒B涓阀鐢ㄤ笅鎷夋暟鎹獥鍙 - 缂栫▼搴 - Powered by SupeSite

浣犵殑浣嶇疆锛缂栫▼搴 >> 璧勮 >> Power Builder >> DataWindow >> 璇︾粏鍐呭 鍦ㄧ嚎鎶曠ǹ

鍦≒B涓阀鐢ㄤ笅鎷夋暟鎹獥鍙

鍙戝竷: 2008-6-26 20:47 |  浣滆: admin |   鏌ョ湅: 47娆

PowerPB鎻愪緵浜嗕笅鎷夋暟鎹獥鍙(DropDown DataWindow),浣挎暟鎹獥鍙f洿鐏垫椿銆佹洿鏂逛究銆傚湪鐢ㄦ暟鎹獥鍙h繘琛屾暟鎹綍鍏ユ椂,缁忓父瑕佺敤鍒颁唬鐮佸綍鍏,鍗冲缁忓父杈撳叆鐨勬煇浜涘艰缃唬鐮,褰曞叆鏃剁洿鎺ュ綍鍏ヤ唬鐮佸嵆鍙備緥濡,鏈変袱涓〃,涓昏〃main_table鍜屼唬鐮佽〃code_table锛屽綍鍏ユ椂涓昏〃涓渶瑕佷唬鐮佽〃涓殑鏁版嵁锛屼絾涓嶅厑璁稿綍鍏ヤ笉鍦ㄤ唬鐮佽〃涓殑鏁版嵁銆備笅闈粙缁嶅浣曚娇鐢ㄤ笅鎷夋暟鎹獥鍙e疄鐜颁笂杩板姛鑳姐

闈欐佽璁′笅鎷夋暟鎹獥鍙

棣栧厛瀵逛富琛ㄥ拰浠g爜琛ㄨ璁′袱涓暟鎹獥鍙w_main鍜宒w_code,鍏朵腑dw_main鍖呮嫭瀛楁id銆乶ame銆乻ex銆乧ity鍜寀nit;dw_code鍖呮嫭瀛楁code鍜宒ata銆傚亣璁緐nit瀛楁鏈夊嚑涓父鐢ㄥ煎彲浣跨敤浠g爜褰曞叆,鍒欏湪璁捐dw_main鏃,鐢ㄩ紶鏍囧彸閿偣鍑诲瓧娈祏nit,鍦ㄤ笅鎷夎彍鍗曚腑閫夋嫨Properties...(灞炴),鍒欑郴缁熶細寮瑰嚭unit鍒楃殑灞炴у璇濇;鍦ㄥ叾涓夋嫨Edit(缂栬緫)椤,骞跺湪Style(椋庢牸)涓嬫媺鍒楄〃妗嗕腑閫夋嫨DropDownDW椤;鐒跺悗鍦ㄤ笅闈㈢殑Options(閫夐」)妗嗕腑浣滃叿浣撶殑閫夐」閰嶇疆:鍦―ataWindow涓嬫媺妗嗕腑閫夋嫨宸茶璁″ソ鐨勪唬鐮佹暟鎹獥鍙w_code浣滀负涓嬫媺鏁版嵁绐楀彛;鍦―isplayColumn(鏄剧ず鍒)涓嬫媺妗嗕腑閫夋嫨code瀛楁;鍦―ata Column(鏁版嵁鍒)涓嬫媺妗嗕腑閫夋嫨data瀛楁 ,杩欒〃绀烘樉绀虹殑鏄痗ode瀛楁鐨勫唴瀹,鑰屽疄闄呭瓨浜庤〃main_table涓殑鏄痙ata瀛楁鐨勫唴瀹广傝嚦姝,鏁版嵁绐楀彛璁捐瀹屾瘯銆

璁捐瀹屾暟鎹獥鍙e悗,闇瑕佸缓绔嬩竴涓暟鎹綍鍏ョ殑绐楀彛(window),鍚嶅瓧涓簑_input;鍦ㄧ獥鍙_input涓婂缓绔嬩竴涓暟鎹獥鍙g殑鎺т欢dw_1,鍏跺睘鎬ataWindow Object Name璁句负dw_main,骞跺湪w_input鐨刼pen浜嬩欢涓啓鍏ヤ笅鍒楄鍙:

dw_1.SetTransObject(SQLCA)

dw_1.Retrieve()

杩欐牱,鍦ㄦ墽琛屾绐楀彛鏃,鍦╱nit瀛楁涓婂氨浼氬嚭鐜颁竴涓笅鎷夊垪琛ㄦ,鍒楀嚭浜嗚〃code_table涓墍鏈夌殑鍐呭,鐢ㄦ埛鍙互鐢ㄩ紶鏍囬夋嫨褰曞叆銆

鍔ㄦ佹敼鍙楽QL璇彞

鍦ㄤ笂闈㈢殑渚嬪瓙涓,濡傛灉琛╩ain_table涓殑瀛楁city涔熼渶瑕佷唬鐮佸綍鍏,鍒欒繕闇涓篶ity瀛楁鏂板缓涓涓〃,杩欐牱寰堥夯鐑,鍥犱负鏈夊嚑涓瓧娈甸渶瑕佷唬鐮,灏遍渶鏈夊嚑涓〃涓庝箣瀵瑰簲銆傛垜浠彲鍒╃敤涓嬫媺鏁版嵁绐楀彛鐨勪竴浜涚壒鐐规潵瑙e喅杩欎竴闂銆傚彲浠ョ浉搴斿湴淇敼琛╟ode_table鐨勭粨鏋,鍔犱竴

涓瓧娈礷ield(char(30)),浠ュ瓨鍌ㄩ渶瑕佷唬鐮佺殑瀛楁鍚,杩欐牱,灏卞彲鍒╃敤SQL璇彞瀵逛箣杩涜妫绱,浠ュ緱鍒版煇瀛楁鐨勬墍鏈変唬鐮併傚叿浣撳疄鐜板涓:

閲嶆柊璁捐鏁版嵁绐楀彛dw_code,鎶奻ield瀛楁鍔犱笂骞朵娇瀹冧笉鍙(鍥犱负鐢ㄦ埛涓嶉渶瑕佽鍒拌瀛楁鐨勫唴瀹),鏁版嵁绐楀彛dw_main鍜岀獥鍙_input鐨勮缃悓涓,鍙槸鍦ㄦ暟鎹獥鍙w_1涓渶瑕佽繘琛屼竴浜涚紪绋嬨傚湪ItemFocusChanged浜嬩欢涓,鍔犲叆濡備笅浠g爜:

String ls_sql

Integer rtncode

DataWindowChild field_child

//dwo涓鸿浜嬩欢鐨勫弬鏁,鍏秐ame灞炴х殑鍊艰〃绀鸿幏寰楃劍鐐圭殑瀛楁鍚

Choose Case lower(dwo.name)

Case 鈥榗ity'

//city瀛楁鑾峰緱鐒︾偣

//鑾峰緱city瀛楁涓嬫媺鏁版嵁绐楀彛鐨勫彞鏌

rtncode = dw_1.GetChild("city",field_child)

If rtncode = -1 Then MessageBox( "Error", "Not a DataWindowChild")

//璁剧疆浜嬪姟瀵硅薄

field_child.SetTransObject(SQLCA)

//鑾峰緱涓嬫媺鏁版嵁绐楀彛鐨凷QL璇彞

ls_sql=field_child.GetSQLSelect()

//閲嶆柊璁剧疆SQL璇彞,鍔犱笂Where鏉′欢

ls_sql=ls_sql+"Wherefield=鈥"+dwo.name+"'"

field_child.SetSQLSelect(ls_sql)

//鍙栧緱婊¤冻鏉′欢鐨勬暟鎹

field_child.Retrieve()

Case 鈥榰nit'

unit瀛楁鑾峰緱鐒︾偣

//鑾峰緱unit瀛楁涓嬫媺鏁版嵁绐楀彛鐨勫彞鏌

rtncode = dw_1.GetChild("unit",field_child)

鈥︹(姝ゅ缂栫▼鍚屼笂)

End Choose

鍔ㄦ佽缃彇鍊煎弬鏁

涓婁緥涓噰鐢ㄥ姩鎬佹敼鍙楽QL璇彞,鍏跺疄,涓嬫媺鏁版嵁绐楀彛鏈変竴绉嶆洿绠鍗曠殑鏂规硶灏辨槸璁剧疆鍙栧煎弬鏁(Retrieval Arguments),浣嗚繖绉嶆柟娉曢傚悎浠庡浐瀹氳〃涓彇鏁版嵁,濡傛灉鏄粠鍔ㄦ佽〃(鍗宠〃鍚嶄笉鍥哄畾)涓彇鏁版嵁,鍒欏彧鑳介氳繃鏀瑰彉SQL璇彞鏉ュ疄鐜般

淇敼鏁版嵁绐楀彛dw_code,鍦ㄥ浘褰㈡柟寮忎笅,閫夋嫨Design鑿滃崟涓嬬殑Retrieval Arguments鈥,璁剧疆鍙栧煎弬鏁扮殑绫诲瀷涓篠tring,鍚嶅瓧鍙换鍙,鍋囪涓篺ield_data銆傜劧鍚庡湪绐楀彛涓嬮潰鐨刉here鏍囩涓夋嫨Column涓"code_table.field",Operator涓"=",Value涓哄彇鍊煎弬鏁扮殑鍊:field_data(鍙橀噺鍚嶅墠鍔犲啋鍙疯〃绀鸿鍙橀噺鐨勫),鑷虫,鍙栧煎弬鏁拌缃畬姣曘傚悓涓婁緥,涔熼渶瑕佸湪绐楀彛w_input涓殑鏁版嵁绐楀彛鎺т欢dw_1涓殑ItemFocusChanged浜嬩欢涓繘琛屽涓嬬紪绋:

Integer rtncode

DataWindowChild field_child

//dwo涓鸿浜嬩欢鐨勫弬鏁,鍏秐ame灞炴х殑鍊艰〃绀鸿幏寰楃劍鐐圭殑瀛楁鍚

Choose Case lower(dwo.name)

Case 鈥榗ity'//city瀛楁鑾峰緱鐒︾偣

//鑾峰緱city瀛楁涓嬫媺鏁版嵁绐楀彛鐨勫彞鏌

rtncode = dw_1.GetChild("city",field_child)

If rtncode = -1 Then MessageBox( "Error", "Not a DataWindowChild")

//璁剧疆浜嬪姟瀵硅薄

field_child.SetTransObject(SQLCA)

//鍒╃敤鍙栧煎弬鏁板彇寰楁弧瓒虫潯浠剁殑鏁版嵁,濡傛灉娌℃湁鏁版嵁,鍒欐彃鍏ヤ竴绌鸿褰,鍚﹀垯绯荤粺浼氭彁绀轰竴涓嫳鏂囧璇濇,瑕佹眰杈撳叆鍙栧煎弬鏁扮殑鍊

If field_child.Retrieve(dwo.name)<1 Then

field_child.InsertRow(0)

Case 鈥榰nit'

//unit瀛楁鑾峰緱鐒︾偣

//鑾峰緱unit瀛楁涓嬫媺鏁版嵁绐楀彛鐨勫彞鏌

rtncode = dw_1.GetChild("unit",field_child)

鈥︹(姝ゅ缂栫▼鍚屼笂)

End Choose

鎵撳嵃 | 鏀惰棌姝ら〉 |  鎺ㄨ崘缁欏ソ鍙 | 涓炬姤
涓婁竴绡 涓嬩竴绡
 

璇勫垎锛0

鍙戣〃璇勮
鏌ョ湅鍏ㄩ儴鍥炲銆愬凡鏈0浣嶇綉鍙嬪彂琛ㄤ簡鐪嬫硶銆