|
|
pb用纯函数实现在数据窗口中模拟资源管理器鼠标单击动作动态排序,并显示排序箭头 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
//函数名: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下通过测试
|
|
相关文章:相关软件: |
|