hur.cn - 华软网

 热门搜索

如何动态改变freeform数据窗口中字段控件的位置,多谢大家了

  作者:未知    来源:网络    更新时间:2018/5/16
就是我的表中有五个字段,我想实现如果所有的字段不为空的话,就按照正常的位置排列,如果其中一个字段为空的话,我就想动态改变控件的位置,不知能不能实现,多谢大家了
------华软网友回答------
不知我这么问,大家是否明白呢,多谢大家了
------华软网友回复------
用modify动态修改列的x,y属性就可以了
------华软网友回复------
对如楼上所说的用modify动态修改列的x,y属性.OK?
------华软网友回复------
dw_1.setredraw(false)
if dw_1.getitemstring(i,'列名') = '' or isnull(dw_1.getitemstring(i,'列名')) then
dw_1.modify('列名.x = ')
dw_1.modify('列名.y = ')
end if
dw_1.setredraw(true)
------华软网友回复------
int i

dw_1.setredraw(false)
dw_1.retrieve()
for i = 1 to dw_1.rowcount()
if dw_1.getitemstring(i,'user3') = '' or isnull(dw_1.getitemstring(i,'user3')) then
dw_1.modify('user1.x = 265')
dw_1.modify('user1.y = 320')
end if
next
dw_1.setredraw(true)



以上结果不是我想实现的,我是用根据每条记录的不同来确定控件的位置的,多谢大家了
------华软网友回复------
freeform是每次只显示一条记录,在显示这一条记录时做判断,而不是事先都判断好
------华软网友回复------
To  qianfl(毛毛熊) 

具体怎么做呢,多谢你了
------华软网友回复------
我是要一下子全部retrieve,然后再判断位置,要如何做呢,多谢大家了
------华软网友回复------
用MODIFY来动态改变位置。
楼主要排成什么样子?
------华软网友回复------
全部RETRIEVE也只能显示第一条,然后你想显示某一条记录时再根据这条记录的值做判断和改变位置
------华软网友回复------
可以全部显示的,如果我点上一条,下一条,然后再排位置,要怎么写着呢
------华软网友回复------
有人可以帮我一下么,多谢大家了!
------华软网友回复------
在rowfocuschanged事件里写Modify代码
------华软网友回复------
可以全部显示的,如果我点上一条,下一条,然后再排位置,要怎么写着呢

在rowfocuschanged中写判断脚本
------华软网友回复------
在rowfocuschanged中写

if dw_1.getitemstring(currentrow,'user3') = '' or isnull(dw_1.getitemstring(currentrow,'user3')) then
   dw_1.modify('user1.x = 265')
   dw_1.modify('user1.y = 320')
end if
------华软网友回复------
如果需要输入的你就只能是用MODIFY改了,如果不需要输入数据只是看看用的,那么你可以用compute来实现。放5个compute调用一个自己写的函数来实现,或是直接在compute里面写语句也行。
------华软网友回复------
回复人: herrick(找到七七) ( ) 信誉:105  2005-07-22 12:57:00  得分: 0  
 
 
   在rowfocuschanged中写

if dw_1.getitemstring(currentrow,'user3') = '' or isnull(dw_1.getitemstring(currentrow,'user3')) then
   dw_1.modify('user1.x = 265')
   dw_1.modify('user1.y = 320')
end if
  
 
多谢了,不过是需要按上一条,下一条,数据才会重新排列,不知能不能retrieve后,就是已经自动排列了呢,多谢你了
------华软网友回复------
有人知道这个问题么,可以帮我么,我不想这个问题得不到解决呀,多谢大家了
------华软网友回复------
就用七七的代码啊,retrieve时会自动触发rowfocuschanged事件,还有最前面最好加句:
if row < 1 then return
注:上面的代码只有在数据窗口大小为正好显示一整条记录下有效果      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。