怎么让某些行动态不显示出来

saiche05 2005-11-15 03:28:15
比如有字段
vc_id,state,content
其中state只有两个值:1、0
当某一行或某几行修改state为1时就不显示出来。
下面的不行:
我在数据窗口的属性visible写上:case(state when 1then 0 else 1)
但是在修改后只是数据不显示了,那一行还在(只是字段值看不见的或是空的)。



用dw_1setfilter("state"=1)和dw_1.filter()不知道保存的时候会不会有问题。

有没有其他的方法???
请帮忙,谢谢!!!
...全文
172 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hygougou 2005-11-23
  • 打赏
  • 举报
回复
retrieve(arg1,...)

就可
Methodor 2005-11-23
  • 打赏
  • 举报
回复
比如有字段
vc_id,state,content
其中state只有两个值:1、0
当某一行或某几行修改state为1时就不显示出来。
下面的不行:
我在数据窗口的属性visible写上:case(state when 1then 0 else 1)
但是在修改后只是数据不显示了,那一行还在(只是字段值看不见的或是空的)。


1、修改update后再retrieve或reselectrow后应该可行
2、filter不影响保存
3、楼上介绍的调整行高度的方法可行-但不推荐
saiche05 2005-11-23
  • 打赏
  • 举报
回复
数据窗口的某些字段为空的(但是数据库不允许为空),filter()后保存失败,(无法滚到那一行的空字段)。

例如:vc_id,state,content(3个字段保存时都不允许空)有5行(行号为1,2,3,4,5),filter()后剩下2行(1,3),其中被过滤掉的(2,4,5)中的(5)的content为空,在保存失败的时候也把第5行显示出来呢(1,3,5显示),而第2,4行被过滤或隐藏??
njz168 2005-11-23
  • 打赏
  • 举报
回复
filter虽然可以完成,但是有可能移动行的。当你再次filter()回来的时候,数据窗口的数据的行号会发生改变,不推荐。
njz168 2005-11-23
  • 打赏
  • 举报
回复
itemchanged事件中写:

if getcolumnname()="state" and data='1' then
setdetailheight(getrow(),getrow(),0)
end if
这样能保存,那么retrieve()后,仍然是可以看到的。
你如果要让可见,和不可见,你可以通过按纽来实现。
用一个循环,retrieve完了之后,你用find函数遍历所有行,发现state等于1即"隐藏"(把行高高设为0)
让其显示就是把其行高设为你的普通行高了,如80
hlp912 2005-11-18
  • 打赏
  • 举报
回复
解决用filter来得更方便。

保存的问题楼主可以将那些过滤掉的数据行copy到一个datastore中,这样楼主可以保存datastore。
jiangxj 2005-11-16
  • 打赏
  • 举报
回复
可以用filter处理,保存的时候dw_1.setfilter("")全部显示,保存好再dw_1.setfilter("state=1")过滤掉0值记录。
lzheng2001 2005-11-15
  • 打赏
  • 举报
回复
应该只能用FILTER()了,保存的时候DW应该不会处理已经被过滤掉的数据的,就是指过滤缓冲区中的数据. 具体楼主自己测试一下吧,在sqlpreview事件中messagebox一下sqlsyntax参数就知道了.

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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