请问各位朋友能不能讨论一下数据窗口EDIT修改的控制问题.......

cg 2000-09-02 09:15:00
本人第一次用PB编程 最普通的'修改'的控制一直没找到好方法
我想直接在DW中修改不弹出另一窗口
问题:
我不知怎么控制当点了窗体上的修改按钮后,只有焦点所在行才能修改而其他行是非编辑状态
不知朋友们都是怎么做DW显示后修改的 有什么好的方案 望能告知
谢谢
...全文
166 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihao24 2000-09-14
  • 打赏
  • 举报
回复
将该数据窗口的每个字段的expressions页中的protect项中填入if(isrownew() or isrowmodify(),0,1)该语句的作用是将新增行或修改行置为编辑状态,其他行为非编辑状态,然后在数据窗口控件的clicked事件中写入以下代码段:
long ll_row
ll_row=getclickedrow()//得到单击行的行号
if ll_row=0 then return
this.selectrow(0,false)//将所有行置为不靠选中状态
this.selectrow(ll_row,true)//将单击行选中
然后在修改按钮的clicked事件中写入以下代码段:(假设数据窗口的name属性为dw_1)
long ll_row
ll_row=dw_1.getselectedrow(0)//取得数据窗口的第一条选中行
if ll_row=0 then
messagebox("信息","请选择要修改的行!",information!,ok!)
return
else//将选中行整行置为修改状态
dw_1.setitemstatus(ll_row,modified!)//该函数的参数我已忘了,可以参考HELP
end if
xingxin 2000-09-10
  • 打赏
  • 举报
回复
可以在窗口中定义一个实例变量 long il_editrow
在EDIT cb_edit 按钮中
il_editrow = dw_1.getrow() //取得当前行
然后在datawindow的rowfocuschanged 或者其他合适的事件(我记不得)中,
将各字段的tab设为0
if currentrow = il_editrow then
//设tab<>0
else
//设tab = 0
end if
具体操作自己考虑,现在我也记不清楚了,sorry!
cg 2000-09-06
  • 打赏
  • 举报
回复
谢谢给我建议,但新增一列是用什么 COMPUTED FIELD?
longzu 2000-09-06
  • 打赏
  • 举报
回复
也可以,不过在建数据窗口的时候也可以在computed列中增加.
longzu 2000-09-02
  • 打赏
  • 举报
回复
用SETTAB()函数可以设置一列或若干列不可修改。如果是同一列中某些行不可修改而某些行可修改就要麻烦点了:先在数据窗口中新增一列flag,数值为0,1,然后定义每一列的Validation,定义为if flag=1 then 0(表示如果flag为1则该列不可用,具体语法可能不是这样,如果需要我下次写上来)

1,072

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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