子数据窗口回卷事件

子数据窗口回卷事件


这里有一个例子教你如何在脚本中使用这些未公开的通知代码。


有一个地址表的数据窗口,对city,zip字段用DDDW显示方式。city字段的DDDW会给用户一个城市列表,每一个又有分别的州及邮政编码,用户从下拉城市列表中选中一个城市时,希望可以同时确定州及邮政编码。


同时要注意到:许多城市有多个邮政编码(如:西雅图就有几百个!),当用户从如:西雅图,WA 98001...西雅图,WA 98019 列表中选择一个时,仅仅只会触发Itemchanged事件一次。如果不管用户可能选择一个完全不同的邮编的情况,将不会触发别的PB事件。如果有的话,只可能是子数据窗口的RowFocusChanged事件。(记住,此事件仅当用户用鼠标或箭头键在数据窗口中的行间移动时触发)。


好了,我们要作的既是截获子数据窗口发送的wm_command消息。我们可以用上面处理命令按钮的方法来处理,不过有一点不同。首先,DDDW实际上是个子数据窗口,所有的通知消息会传给它的父数据窗口(不是父窗口)。所以你必须在数据窗口控件中定义自定义事件“ue_command". 下面是ue_command事件中的脚本:


// s cript for ue_command event (WM_COMMAND)
int iRet, iDWRow, iDDRow
string sDWCol
DataWindowChild dwc
// Is the notification message from our DDDW?
sDWCol = This.GetColumnName()
IF sDWCol = 'city' THEN
// Is it the RowFocusChanged Notification Code?
IF IntHigh(Message.LongParm) = 2048 THEN
// Get child DataWindow control
iRet = This.dwGetChild(sDWCol, dwc)
// Get the DataWindow's current row
iDWRow = This.GetRow()
// Get the DropDown's current row
iDDRow = dwc.GetRow()
IF iDDRow > 0 THEN
iRet = This.SetItem(iDWRow, 'state', dwc.GetItemString(iDDRow, 'state'))
iRet = This.SetItem(iDWRow, 'zip', dwc.GetItemString(iDDRow, 'zip'))
ELSE
iRet = This.SetItem(iDWRow, 'state', '')
iRet = This.SetItem(iDWRow, 'zip', '')
END IF
END IF
END IF
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值