请各位大侠帮助小弟啊?我给你100分

anshan 2002-03-07 11:45:18
现在我做个系统里面有操作日志窗口,有三个字段,操作人,操作内容,操作时间。
我现在想当点击其中任何字段时,记录就自动排序,在窗口的doubleclicked事件如何编写代码啊,(A 升序,D降序)请各位高手把代码写给我
...全文
43 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjh7781 2002-03-08
  • 打赏
  • 举报
回复
就是这样做,给人捷足先登了以后还是早些好!!!
zc_ncepu 2002-03-08
  • 打赏
  • 举报
回复
UP
hwma 2002-03-08
  • 打赏
  • 举报
回复
UP
2000pinbo 2002-03-08
  • 打赏
  • 举报
回复
同意楼上说的
rock_csdn 2002-03-07
  • 打赏
  • 举报
回复
楼上兄弟们都对!
记得把你的题头改成 对应列名+‘_t' 的形式才会成功喔!
ideage 2002-03-07
  • 打赏
  • 举报
回复
1.定义实例变量:string is_sort
2.定义函数of_sort,无参数,在数据窗口的clicked中调用。

string ls_col, ls_sort
integer li_pos

SetPointer(HourGlass!)

/*******************************************************/
/* 取得光标所在位置下的对象名。 */
/*******************************************************/
ls_col = this.GetObjectAtPointer()

/*******************************************************/
/* 取得Tab位置 */
/*******************************************************/
li_pos = Pos(ls_col, "~t")

/*******************************************************/
/* 检查末尾两字符 */
/*******************************************************/
ls_col = Left(ls_col, li_pos - 1)

/*******************************************************/
/* 如果不存在列头,系统返回。 */
/*******************************************************/
if NOT Lower(Right(ls_col, 2)) = "_t" then Return

ls_col = Left(ls_col, Len(ls_col) - 2)
ls_sort = ls_col + " A"

if ls_sort = is_sort then
ls_sort = ls_col + " D"
else
ls_sort = ls_col + " A"
end if

is_sort = ls_sort

this.SetSort(is_sort)
this.Sort()
llitcwl 2002-03-07
  • 打赏
  • 举报
回复
doubleclicked事件中也可以
llitcwl 2002-03-07
  • 打赏
  • 举报
回复
////////////////////////////////////////
//函数作用 : 点击字段标题进行排序
//返回值 : ab_rtn(TRUE 点中标题;FALSE 点中记录)
//函数形参 : 数据窗口对象类型af_dwotype dwo
//函数形参 : 数据窗口对象名称af_dwoname string
//函数形参 : 数据窗口控制名称af_dwname string
//在CLICKED事件中调用
////////////////////////////////////////


string ls_columntext
string ls_column,ls_sort,ls_retrieveasneed
string ls_oldtext
string ls_oldsortcol,ls_temp
IF af_dwotype = "text" THEN
IF af_dwname.RowCount()<=0 THEN RETURN TRUE
ls_oldsortcol=af_dwname.Object.DataWindow.Table.Sort
ls_oldsortcol=left(ls_oldsortcol,len(ls_oldsortcol) - 2)
ls_column = Left(af_dwoname, Len(af_dwoname) - 2)
ls_oldtext=af_dwname.Describe(af_dwoname+".text")
ls_columntext = right(af_dwname.Describe(af_dwoname+".text"),2)
IF ls_columntext <>'↑' and ls_columntext <>'↓' THEN
af_dwname.Modify(af_dwoname+".text = '"+ls_oldtext+"↑'")
if ls_oldsortcol<>af_dwoname then //修改原排序列标题复原
ls_temp=af_dwname.Describe(ls_oldsortcol+"_t.text")
af_dwname.Modify(ls_oldsortcol+"_t.text = '"+mid(ls_temp,1,len(ls_temp) - 2)+"'")
end if

ls_sort = ls_column + " A"

ELSEIF ls_columntext = '↑' THEN
af_dwname.Modify(af_dwoname+".text = '"+mid(ls_oldtext,1,len(ls_oldtext) - 2)+"↓'")
ls_sort = ls_column + " D"

ELSEIF ls_columntext ='↓' THEN
af_dwname.Modify(af_dwoname+".text = '"+mid(ls_oldtext,1,len(ls_oldtext) - 2)+"'")
ls_sort = ""
END IF
ls_retrieveasneed = Upper(af_dwname.object.DataWindow.Retrieve.AsNeeded)
IF ls_retrieveasneed = "YES" THEN
af_dwname.object.DataWindow.Retrieve.AsNeeded = "NO"
af_dwname.SetSort(ls_sort)
af_dwname.Sort()
af_dwname.object.DataWindow.Retrieve.AsNeeded = "YES"
ELSE
af_dwname.SetSort(ls_sort)
af_dwname.Sort()
END IF
RETURN TRUE
ELSE
RETURN FALSE
END IF

400

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧