hur.cn - 华软网

 热门搜索

能否用变量来表示DW中OBJECT名?

  作者:未知    来源:网络    更新时间:2018/4/16
能否用变量来表示DW中的对象?
string ls_name
ls_name='username'
dw_1.objecj.ls_name.visible=false
------华软网友回答------
可以的,用modify
dw_1.modify(ls_name + ".visible = false")
------华软网友回复------
不错,来晚了,支持一下
------华软网友回复------
就是用modify来实现
------华软网友回复------
modify
------华软网友回复------
不用modify,用“点”状表示法不行吗?点状表示法非常灵活,读、写都很方便。
------华软网友回复------
不行的,一定要modify,其实我看不出来两个有什么不一样的,只看你习惯不习惯
------华软网友回复------
点标记法不适用于字段为变量的情况
------华软网友回复------
点标记效率高很多,但不够灵活
modify灵活但效率实在是差,有些复杂的 dw 界面操作我已经被他害得很惨
------华软网友回复------
当然如果你非要用占标记做的话也不是不可以
string ls_name
DWObject ldwo
ls_name='username'
GetEnvironment(env)
If env.PBMajorRevision > 6 And env.PBMajorRevision <= 10 Then
   ldwo = dw_1.Object.__get_attribute(name, True)
ElseIf env.PBMajorRevision = 6 Then
   ldwo = dw_1.Object.get_attribute(name, True)
Else
   //不支持
END IF 

ldwo.visible=false
------华软网友回复------
renwanly
能给我解释一下吗?
get_attribute是什么?
我想用点标记的原因是用点标记非常方便,如要读写一个字段的值只需要:
dw_1.object.ls_name[i] 就可以了,而不必知道ls_name的类型.用getitem需知道字段类型.
其实我真正想知道的是怎样把字符型的字段名ls_name传送给dwobject类型的ldwo.
------华软网友回复------
这个牛角尖还没完啊
------华软网友回复------
modify其实很好用,这种情况是最好的办法了
------华软网友回复------
用modify()函数非常好啊,

1、可以用字符变量指定数据窗口中对象名;
2、有返回值,可以知道语句执行后的结果;
3、更重要的是,它可以使程序更强壮:在对象名出现异常时,不会导致程序粗鲁地崩溃。
------华软网友回复------
modify

------华软网友回复------
MODIFY,用这个可以支持变量,点语法不支持的。。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。