pb用纯函数实现在数据窗口中模拟资源管理器鼠标单击动作动态排序,并显示排序箭头

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

//函数名:f_dwsort(datawindow fdw_dw,dwobject fdwo_dwo) return none

//说明:用于在数据窗口中模拟资源管理器鼠标单击动作动态排序,并显示排序箭头

//调用规则:在数据窗口控件clicked!中写入f_dwsort(this,dwo)

//参数:fdw_dw datawindow

// fdwo_dwo dwobject

//返回值:无

//autor:xiaoluoxy萧云

String ls_clicked_pos,ls_col,ls_format,ls_tag

Long ll_pos

string ls_text,ls_column[]

int li_i

ls_clicked_pos = fdwo_dwo.Name

ll_pos = Pos(ls_clicked_pos,'_t')

If ll_pos >0 Then

//设置排序

ls_col = Left(ls_clicked_pos,ll_pos -1)

ls_tag = fdwo_dwo.tag

If ls_tag = ls_col + "A" Then

fdwo_dwo.tag = ls_col + "D"

ls_format = ls_col+" A"

ELSEIF ls_tag = ls_col + "D" Then

fdwo_dwo.tag = ls_col + "A"

ls_format = ls_col+" D"

Else

fdwo_dwo.tag = ls_col + "D"

ls_format = ls_col+" A"

End If

//设置列标题

for li_i = 1 to long(fdw_dw.object.datawindow.column.count)

ls_column[li_i] = fdw_dw.describe("#" + string(li_i) + ".Name") //得到列名

ls_text = fdw_dw.Describe(ls_column[li_i] + "_t.text")

if right(ls_text,2)="▽" or right(ls_text,2)="△" then

ls_text = left(ls_text,len(ls_text) - 2)

end if

fdw_dw.modify(ls_column[li_i] + "_t.text='"+ls_text + "'")

next

ls_text = fdw_dw.Describe(ls_clicked_pos + ".text")

if right(ls_text,2)="▽" or right(ls_text,2)="△" then

ls_text = left(ls_text,len(ls_text) - 2)

end if

if right(ls_format,1) = 'A' then

fdw_dw.modify(ls_clicked_pos + ".text='"+ls_text + "△'")

elseif right(ls_format,1) = 'D' then

fdw_dw.modify(ls_clicked_pos + ".text='"+ls_text + "▽'")

end if

fdw_dw.SetSort(ls_format)

fdw_dw.Sort()

End If

//本程序在pb6.5下通过测试

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航