请教,关于调整列顺序的问题

ribut9225 2017-11-02 03:41:09
我先记录列的name、x和width信息,然后在下次打开窗口时读取信息,并根据信息调整位置
现在的问题是,调整后,总有几列是随机乱排序的,明明调整到第四列了,下次打开窗口的时候变成第六列了

记录列顺序的代码和调整列顺序的代码如下,请帮忙看看
谢谢


//保存列位置的代码
do while ll_pos>0

ls_name = mid(ls_object,ll_start, ll_pos - ll_start)
ls_text = ldt_temp.describe(ls_name + "_t.text")
ls_x = ldt_temp.Describe(ls_name + ".x")

//判断是否要
if ldt_temp.describe(ls_name + ".band") = "detail" then
ll_row = ldt_col.insertrow( ldt_col.rowcount()+1)
ldt_col.SetItem(ll_row,"zt","显示")
ldt_col.SetItem(ll_row,"col_text",ls_text)
ldt_col.SetItem(ll_row,"col_name",ls_name)
ldt_col.SetItem(ll_row,"col_width",ldt_temp.Describe(ls_name + ".width"))
ldt_col.SetItem(ll_Row,"col_x",long(ls_x)) //X位置
end if
ll_start = ll_pos + 1
ll_pos = pos(ls_object,"~t",ll_start)
loop


//按X位置排序
ldt_col.SetSort("col_x a")
ldt_col.Sort()

//写入文件
ldt_col.SaveAs(ls_FileName,text!,false)



//读取列位置的代码
ll_RowCount = ldt_col.RowCount()
for ll_row = 1 to ll_RowCount
ls_Name = Trim(ldt_Col.GetItemString(ll_Row,"Col_name"))
ls_x = String(ldt_Col.GetItemNumber(ll_Row,"col_x"))
ls_Width = trim(ldt_Col.GetItemString(ll_Row,"col_width"))

ldt_temp.Modify(ls_name + ".x=" + ls_x )
ldt_temp.Modify(ls_name + ".width=" + ls_Width )

next
...全文
601 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ribut9225 2017-11-03
  • 打赏
  • 举报
回复
哦,谢谢,我试一下
acen_chen 2017-11-02
  • 打赏
  • 举报
回复
只要纪录width和次序就行了,所有列先不可见,然后依次设置visible,自然就按次序显示了

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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