這是我樹形控制元件treeview中selectionchanged事件的代碼
treeviewitem it_new,it_old
tv_1.getitem(newhandle,it_new)
string dataname
dataname=trim(string(it_new.data))
string datanamelist
datanamelist='#admininfo#'+'#shuruguanli#'+'#product_type#'+'#merchant#';
if dataname='*' then
//顯示“系統管理子功能”
dw_1.title=trim(it_new.label)
dw_1.visible=false
dw_2.visible=true
cb_1.visible=true
cb_2.visible=true
cb_3.visible=true
cb_4.visible=true
else
if pos('#'+datanamelist+'#',dataname)>0 then
dw_1.visible=true
dw_1.title='資料表'+dataname+'('+trim(it_new.label)+')'+'內容:'
dw_1.dataobject='d_'+dataname
dw_1.modify("datawindow.vertical_size=300")
dw_1.object.#1.key="yes"
dw_1.settransobject(sqlca)
dw_1.retrieve()
if dw_1.rowcount()>0 then
dw_1.scrolltorow(1)
end if
else
dw_1.visible=false
openwithparm(w_add,dataname,w_login)
w_add.sle_product_type.text=it_new.label
end if
end if
問題:1、datanamelist='#admininfo#'+'#shuruguanli#'+'#product_type#'+'#merchant#'和dw_1.object.#1.key="yes" 這兩行代碼是什么意思啊 為什么有”#“號啊 2、if dataname='*'這行代碼什么意思啊 哈哈 菜鳥 沒辦法
uj5u.com熱心網友回復:
1、datanamelist,只是字串而已,這要看開發者的用意,這里估計他完全只是想把字串的分割開而已#1代表第一個欄位的,key是他的屬性,改為yes值
2、if dataname='*',這句話只能回答是‘如果dataname等于*......
該代碼中,dataname是樹被選中項的值
uj5u.com熱心網友回復:
1datanamelist='#admininfo#'+'#shuruguanli#'+'#product_type#'+'#merchant#';
就是
datanamelist='#admininfo##shuruguanli##product_type##merchant#';
原來的程式員,用#做分隔符,用來找it_new.data(看他邏輯,是資料庫中的表名),是不是在這4個表中的一個.
dw_1.object.#1.key
就是dw_1的第一列(不是你看到的第一列,而是SQL陳述句中的第一列),看樣子,原來程式員的習慣是只用一個ID做主鍵.
2.//瞎蒙的,因為你代碼不全,需要查TREEVIEW.insertitem(......)這樣的陳述句
你看看那個標簽(label)是不是"所有表"或"所有資料"
---------------------------------------------------------
看樣子,這是一個顯示對應表資料的功能,點那個表名,顯示哪張表的資料.
uj5u.com熱心網友回復:
先看下關于PB的書吧
uj5u.com熱心網友回復:
標簽(label)不是“所有表”或“所有資料”啊、樹形控制元件treeview所在視窗(w_main)的open事件代碼為
treeviewitem it_1
setpointer(hourglass!)
//為tv_1創立資料物件
datastore itdata
itdata=https://bbs.csdn.net/topics/create datastore
itdata.dataobject="d_shuruguanli"
itdata.settrans(sqlca)
//為it_1添加專案
int rows,i
rows=itdata.retrieve()
for i=1 to rows
it_1.label=itdata.object.cname[i]
it_1.data=https://bbs.csdn.net/topics/itdata.object.ename[i]
//設定itdata物件屬性
it_1.children=false
if it_1.data='' then
it_1.bold=true
it_1.pictureindex=0
it_1.selectedpictureindex=0
else
it_1.bold=false
it_1.pictureindex=1
it_1.selectedpictureindex=2
end if
tv_1.insertitemlast(0,it_1)
next
//隱藏管理子系統
dw_2.visible=false
cb_1.visible=false
cb_2.visible=false
cb_3.visible=false
cb_4.visible=false
dw_2.settransobject(sqlca)
dw_2.retrieve()
還有樹形控制元件treeview的selectionchanged代碼為
treeviewitem it_new,it_old
this.getitem(oldhandle,it_old)
this.getitem(newhandle,it_new)
dw_1.accepttext()
int li_net
//判斷修改或洗掉的項
if trim(it_old.label)<>'' and (dw_1.modifiedcount() &
+ dw_1.deletedcount()>0) then
li_net=messagebox("提示","所有的修改還沒有保存,~n~r 需要保存嗎?"&
, Question!,YesNoCancel!)
if li_net=1 then
if dw_1.update()=1 then
commit;
end if
elseif li_net=3 then
return 1
end if
end if
麻煩大家再幫我看看 小弟先在這里道謝了
uj5u.com熱心網友回復:
itdata.retrieve() 的結果 是不是“所有表”或“所有資料”呢?也可以直接在資料視窗 d_shuruguanli 先 preview 一下結果
uj5u.com熱心網友回復:
再幫你看啥啊,你還哪里不明白,樓上好幾個人不都解釋代碼的含義了嗎至于if dataname='*'為什么=‘*’而不是='x'或='@',那是你得業務邏輯,別人不可能知道。
uj5u.com熱心網友回復:
頂下2樓,順但支持下樓上的uj5u.com熱心網友回復:
ding
uj5u.com熱心網友回復:
行號吧uj5u.com熱心網友回復:
關注uj5u.com熱心網友回復:
代碼的含義解釋的已經很清楚了uj5u.com熱心網友回復:
都什么人啊,這么簡單的問題都好意思拿出來問uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/100850.html
標籤:腳本語言
