📄 treeview.txt
字号:
//insert
string ls_cbxm,ls_xmmc
treeviewitem tvi_data
integer li_num=0
il_num=al_num
is_before=as_before
long il_childnum
open get_cbxm;
fetch get_cbxm into :ls_cbxm,:ls_xmmc;
do while (SQLCA.SQLCODE=0)
li_num++
tvi_data.label=ls_xmmc
tvi_data.PictureIndex = ai_cc
tvi_data.SelectedPictureIndex = 7
tvi_data.data=ls_cbxm
select count(cbxm) into :il_childnum from dbo.cbxmb
where (substring(cbxm,1,:il_num+4) like :ls_cbxm+'.');
if isnull(il_childnum) or (il_childnum <= 0) then
tvi_data.children=false
else
tvi_data.children=true
end if
tv_cbxm.InsertItemLast(al_handle,tvi_data)
fetch get_cbxm into :ls_cbxm,:ls_xmmc;
loop
close get_cbxm;
return li_num
//delete
tv_cbxm.DeleteItem(alhandle)
delete from dbo.cbxmb where cbxm=:ascbxm;
delete from dbo.cbxmft where cbxm=:ascbxm;
if (sqlca.sqlcode=0) then
commit using sqlca;
return 1
else
rollback using sqlca;
return 0
end if
//itempopulate
treeviewitem tvi_data
this.getitem(handle,tvi_data)
integer li_level
string ls_cbxm
ls_cbxm = tvi_data.data
li_level = tvi_data.level
wf_set_treeitem((li_level - 1)*4+4,ls_cbxm+".",handle,li_level+1)
//selectionchanged
treeviewitem tvi_data
if GetItem(newhandle,tvi_data) > 0 then
is_cbxm=tvi_data.data
wf_retrieve()
integer li_kindnum
select count(distinct ftlx) into :li_kindnum from dbo.cbxmft where cbxm=:is_cbxm;
if isnull(li_kindnum) or (li_kindnum=0) then li_kindnum=1
if (li_kindnum=1) then
is_kind=""
select distinct ftlx into :is_kind from dbo.cbxmft where cbxm=:is_cbxm;
if isnull(is_kind) or is_kind="" then is_kind="按约旦产量分配"
dw_1.object.cbxm[1]=is_cbxm
dw_1.object.ffft[1]=is_kind
dw_1.setitemstatus(1,"cbxm",Primary!,NotModified!)
dw_1.setitemstatus(1,"ffft",Primary!,NotModified!)
rb_1.checked = true
dw_1.visible = true
dw_2.visible = false
else
rb_2.checked = true
dw_2.visible = true
dw_1.visible = false
end if
end if
//pop
//显示菜单
m_treeview lm_pop
lm_pop = create m_treeview
lm_pop.m_tree.popmenu(w_main.pointerx(),w_main.pointery())
//add2
treeviewitem tvi_data
long li_ParentHandle,li_rowinserted
li_ParentHandle = tv_cbxm.FindItem(CurrentTreeItem!,0)
if li_ParentHandle > 0 then
li_ParentHandle = tv_cbxm.FindItem(ParentTreeItem!,li_ParentHandle)
end if
long ll_len
string ls_newcbxm=""
if tv_cbxm.GetItem(li_ParentHandle,tvi_data) > 0 then
is_cbxm = tvi_data.data
ll_len=len(is_cbxm)
select max(cbxm) into :ls_newcbxm from dbo.cbxmb where (substring(cbxm,1,:ll_len)=:is_cbxm) and (char_length(cbxm) = :ll_len+4);
else
select max(cbxm) into :ls_newcbxm from dbo.cbxmb where (char_length(cbxm) = 3);
li_parentHandle = 0
if isnull(ls_newcbxm) or ls_newcbxm="" then
ls_newcbxm="001"
else
ls_newcbxm=string(integer(right(ls_newcbxm,3))+1,"000")
end if
end if
tvi_data.Label = ls_newcbxm
tvi_data.Children = false
tvi_data.PictureIndex = tvi_data.level + 1
tvi_data.SelectedPictureIndex = 7
tvi_data.Data = ls_newcbxm
is_cbxm = tvi_data.data
long l_liHandleInserted
l_liHandleInserted = tv_cbxm.InsertItemLast(li_ParentHandle,tvi_data)
tv_cbxm.ExpandItem(li_ParentHandle)
tv_cbxm.SelectItem(l_liHandleInserted)
tv_cbxm.EditLabel(l_liHandleInserted)
return 1
//add1
treeviewitem tvi_data
long li_ParentHandle,li_rowinserted
li_ParentHandle = tv_cbxm.FindItem(CurrentTreeItem!,0)
if li_ParentHandle > 0 then
if tv_cbxm.GetItem(li_ParentHandle,tvi_data) > 0 then
is_cbxm = tvi_data.data
long ll_len
ll_len=len(is_cbxm)
string ls_newcbxm=""
select max(cbxm) into :ls_newcbxm from dbo.cbxmb where (substring(cbxm,1,:ll_len)=:is_cbxm) and (char_length(cbxm) = :ll_len+4);
if isnull(ls_newcbxm) or ls_newcbxm="" then
ls_newcbxm=is_cbxm+".001"
else
ls_newcbxm=is_cbxm+"."+string(integer(right(ls_newcbxm,3))+1,"000")
end if
tvi_data.Label = ls_newcbxm
tvi_data.Children = false
tvi_data.PictureIndex = tvi_data.level + 1
tvi_data.SelectedPictureIndex = 7
tvi_data.Data = ls_newcbxm
is_cbxm = tvi_data.data
long l_liHandleInserted
l_liHandleInserted = tv_cbxm.InsertItemLast(li_ParentHandle,tvi_data)
tv_cbxm.ExpandItem(li_ParentHandle)
tv_cbxm.SelectItem(l_liHandleInserted)
tv_cbxm.EditLabel(l_liHandleInserted)
end if
end if
return 1
//delete
long CurItemHandle
treeviewitem tvi_tmp
CurItemHandle = tv_cbxm.FindItem(CurrentTreeItem!,0)
if tv_cbxm.GetItem(CurItemHandle,tvi_tmp) > 0 then
if MessageBox("警告","请问您是否真的确定要删除成本项目-"+string(tvi_tmp.data)+"?",question!,yesno!,2) = 1 then
wf_deleteitem(CurItemhandle,string(tvi_tmp.data))
end if
end if
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -