社区
PowerBuilder
帖子详情
请教:怎样时数据窗口的一行变为不可编辑?
benshe
2001-12-26 03:11:39
并确保添加下一行,是可以编辑的?
...全文
225
24
打赏
收藏
请教:怎样时数据窗口的一行变为不可编辑?
并确保添加下一行,是可以编辑的?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
benshe
2001-12-28
打赏
举报
回复
不是啦,我的嘴太笨了。。。
因为a列的edit或者dddw属性,是根据其他列动态改变的。此行为dddw,下行为edit时,上一行的a列中的值就显示成id而不是name了。
leaf_cq
2001-12-28
打赏
举报
回复
a列edit的style type为什么要动态改变呢?
Leony
2001-12-27
打赏
举报
回复
小弟我以前是这样做的,增加的时候把每列的protect设成0,确定之后又把它设成1,多麻烦,现在好了,设if(isRowNew(),0,1)就行了,谢谢!谢谢1
poppyboy
2001-12-27
打赏
举报
回复
用这个:dw_1.setitem(row,"id",value)
benshe
2001-12-27
打赏
举报
回复
look
leaf_cq
2001-12-27
打赏
举报
回复
因为你的data column是id,所以你的每条记录的id的值等于a的值,所以你可以直接使用
a的值就可以了
benshe
2001-12-27
打赏
举报
回复
是这样的,a列在数据窗口的dw1,a列设置为dddw,其对应的数据窗口对象,有id和name2列。
(数据窗口对象设计时隐藏id,但让其只显示name.)
此dw1是用来生成查询用的where子句的,即查询时用a列的id.
我也不知道我说明白了没有。
benshe
2001-12-27
打赏
举报
回复
look
leaf_cq
2001-12-27
打赏
举报
回复
既然data column 是id,display column 是name,那么显示当然是name了,至于a列的查询和
a列的edit style为edit是一样的,如(设a列的列名为a,类型为numeric):
sle_1.text = 'a > 200 and a < 1000'
------------------------------------
dw_1.SetFilter( '' )
dw_1.Filter( )
dw_1.SetFilter( sle_1.text )
dw_1.Filter( )
不知道我对你的“用id查询”是否理解正确
benshe
2001-12-27
打赏
举报
回复
data column 是id,
display column 是name
即想显示name,用id查询。
leaf_cq
2001-12-27
打赏
举报
回复
还是你自己的方法管用:)
不知道你dw_1的a列中的数据类型是和id一样呢还是和name一样(也就是你的dddw选定后,你的data column和display column分别是选的哪一列呢?)
azjiao
2001-12-26
打赏
举报
回复
to benshe(小笨蛇) :
谢谢,我也正找答案。可巧,找到了。
benshe
2001-12-26
打赏
举报
回复
还有一个问题:
dw_1中a列为dddw,对应一个数据窗口对象,包括name,id。
显示name,用id查询。
我怎样用settext确保 a列上显示的是name而不是id??
benshe
2001-12-26
打赏
举报
回复
thank you you all.
我在 每列的 protect 里写 "if(getrow()<>rowcount(),1,0)" ,就可以了。
leaf_cq
2001-12-26
打赏
举报
回复
还有什么问题和特殊的要求吗?
benshe
2001-12-26
打赏
举报
回复
uupp
leaf_cq
2001-12-26
打赏
举报
回复
方法根据你的规范用户动作的不同而不同,给个一般例子:
dw_1的需要保护的列的 protect Expressions: if( isRowNew(), 0, 1 )
定义instance变量:
long il_newrow = 0
在“新增”按键中:
if il_newrow > 0 then
if dw_1.GetItemStatus( il_newrow, 0, Primary! ) = New! then // 不允许插入空列,可根据自己不同的要求而定
dw_1.setrow( il_newrow )
dw_1.ScrolltoRow( il_newrow )
dw_1.SetFocus( )
return
else
dw_1.SetItemStatus( il_newrow, 0, Primary!, DataModified! )
end if
end if
il_newrow = dw_1.InsertRow( 0 )
dw_1.ScrollToRow( il_newrow )
dw_1.SetFocus( )
……
return
在“删除”及相类似操作脚本中加入:
long ll_row
……
ll_row = dw_1.GetRow( )
if ll_row = il_newrow then il_newrow = 0 // ★★★
dw_1.DeleteRow( ll_row )
……
return
poppyboy
2001-12-26
打赏
举报
回复
在每个Column中,比如这样:if( isNull(Column),0, 1 )
poppyboy
2001-12-26
打赏
举报
回复
在Expressions中的protect中设定条件
benshe
2001-12-26
打赏
举报
回复
是要添加新一行前,把当前行变为不可编辑的。
加载更多回复(4)
工程项目管理学习体会.doc
工程项目管理学习体会.doc
工程项目管理模式研究.doc
工程项目管理模式研究.doc
网站SEO优化推广方案.doc
网站SEO优化推广方案.doc
公司网络信息规范化管理.doc
公司网络信息规范化管理.doc
施工项目管理的内容与程序.doc
施工项目管理的内容与程序.doc
PowerBuilder
1,108
社区成员
66,453
社区内容
发帖
与我相关
我的任务
PowerBuilder
PowerBuilder 相关问题讨论
复制链接
扫一扫
分享
社区描述
PowerBuilder 相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章