关于datawindow控件,GetChild()函数的一点经验

        我在软件开发过程中,用Getchild函数曾经出现过一些问题,我想有必要拿出来讨论一下,也请大家引以为戒。  在datawindow中,Getchild函数主要被用来得到一个数据窗口的子数据窗口,格式如下:数据窗口控件名.(列名,用户定义的子数据窗口变量)

如:a)、dw_cx.GetChild(“xt_czy”,dwc_cx)

  b)、dw_tj.GetChild(“dw_1”,dwc_tj)

      该函数在两种情况下可以使用,1、取出数据窗口对象的下拉式数据窗口;2、取出复合风格(composite)数据窗口对象里所嵌入的子数据窗口对象。

       需要注意的是第二种情况,一定要composite风格的数据窗口对象中的子数据窗口才能使用该函数,如果是别的风格的,该函数会返回-1,表示执行失败 。(我曾经用freedom嵌套了一个子数据窗口,然后用GetChild(),结果执行失败。);另外还需要注意的是;如果是composite数据窗口,GetChild()函数的第一个参数是子数据窗口的NAME(需要自己起),而不是子数据窗口对象的名字。如果子数据窗口是下拉式的数据窗口,那么参数就是列名。第二个参数是用户自定义的子数据窗口变量。执行完GetChild()以后,这个变量就是得到的子数据窗口了,可以对他进行过滤,排序等等的操作。

例如,这段程序取出一个composite数据窗口对象的两个子数据窗口,并对他们进行过滤,和排序的操作。/*dw_dy是连接一个composite数据窗口对象的一个数据窗口控件。dw_1、dw_2分别是嵌套的数据窗口的NAME*/

String ls_filter

DataWindowChild dwc_czrw,dwc_czx//定义子数据窗口变量

dw_dy.Settransobject(sqlca)

dw_dy.Retrieve()

dw_dy.GetChild("dw_2",dwc_czrw)

dw_dy.Getchild("dw_1",dwc_czx)

ls_filter = "czrw_bh = '"+dw_3.GetItemString(dw_3.GetRow(),"czrw_bh")+"'"//过滤条件

dwc_czrw.SetFilter(ls_filter)

dwc_czrw.Filter()

ls_filter = "czx_rwbh = '"+dw_3.GetItemString(dw_3.GetRow(),"czrw_bh")+"'"

dwc_czx.SetSort("czx_sx A")

dwc_czx.Sort()

dwc_czx.SetFilter(ls_filter)

dwc_czx.filter()

当然也可以通过数据共享(ShareData)等方式操作子数据窗口中的数据。

 

    Email:oceanaut@163.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值