CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  DataWindow

关于datawindowchild和itemfoucschanged事件的问题,我真的没办法了。

楼主phonixman(alex)2003-12-03 14:53:42 在 PowerBuilder / DataWindow 提问

录入窗口有一数据窗口dw_1,风格为freeform,某列(收货人名称:shr_mc)的类型为dropdownDW   (dw_child),与之对应的列为:收货人纳税识别号,即一个收货人对应一个具体的纳税识别号。我的想法是:对已经输入过且保存成功的收货人名称,只要从收货人名称这一列中选择,然后纳税人识别号这一列自动跳出该收货人对应的纳税人识别号,如果是从未输过的,则不跳出,我原先在该数据窗口itemfocuschanged事件中写脚本,但一打开该窗口,纳税人识别号就自动填上了dw_child中第一行纳税人识别号,而且用鼠标选中某个纳税人后,纳税人识别号并未自动填上。后来我又在itemchanged事件中写了相应的脚本,这样一选上纳税人名称,纳税人识别号是自动跳出了,但从没输过得也跳出了纳税人识别号,我的dw_1中itemchanged脚本如下:  
   
  datawindowchild   dw_child  
   
  string   ls_shr_nsrsbh  
   
  int   li_rtn  
   
  choose   case   lower(dwo.name)  
  case   'shr_mc'  
   
  li_rtn=this.getchild("shr_mc",dw_child)  
   
   
  if   li_rtn=   -   1   then  
        messagebox("datawindow","not   is   a   datawindchild   object")  
        return  
  end   if  
   
  if   dw_child.getrow()>=1   then  
        ls_shr_nsrsbh=dw_child.getitemstring(dw_child.getrow     (),"shr_nsrsbh")  
       
        this.setitem(1,"shr_nsrsbh",ls_shr_nsrsbh)  
                    end   if  
   
  这只是实现了其中的一个自动功能,对没有输入过的则没办法。我试了用setfilter()和retrieve(value)来过滤和检索是否存在该用户名称,但好像很麻烦的样子。请高手帮帮我,对于这样的数据窗口该在什么事件中写脚本?我的脚本应该怎么改?谢谢。 问题点数:0、回复次数:3Top

1 楼lmby(鹿门布衣)回复于 2003-12-03 15:02:34 得分 0

原先在该数据窗口itemfocuschanged事件中写脚本,但一打开该窗口,纳税人识别号就自动填上了dw_child中第一行纳税人识别号  
  -----  
  这是因为窗口打开时你就retrieve了,就触发了itemfocuschanged  
   
  一选上纳税人名称,纳税人识别号是自动跳出了,但从没输过得也跳出了纳税人识别号  
  -----  
  你的收货人名称:shr_mc和纳税人识别号有什么关系?在itemchanged里写是对的。  
  if   dwo.name   =   'shr_mc'   then  
          //根据收货人名称和纳税人识别号的关系找纳税人识别号  
  end   ifTop

2 楼phonixman(alex)回复于 2003-12-03 15:27:54 得分 0

我可能没说清楚,shr_mc列所包含的dropdownDW有两个列:shr_mc,shr_nsrshb,且为allow   editing,shr_mc和纳税人识别号为一一对应的关系。另外,该dw_1还有一个自定义事件:ue_enterkey,用以处理回车,避免用tab键。在itemchanged中写上述脚本,用鼠标来选择已经输入过的收货人名称,纳税人识别号能自动跳出。问题是如果新输入的一个收货人名称,即dropdownDW中不存在的收货人名称,回车以后,纳税人识别号还是跳出了。我知道脚本有问题,可不知道怎么处理。Top

3 楼klbt(快乐白兔)回复于 2003-12-03 17:06:41 得分 0

你的脚本有问题:dw_child如果不存在的收货人,你不应该设置"shr_nsrsbh"列,应该判断一下,用dw_child.Find()函数实现Top

相关问题

  • 标准事件触发问题,谁有办法?
  • 有办法不通过事件而调用javascript么
  • dbgrid的"点击事件"为何爱抢"双击事件"的处理?有何办法使两者互不干扰?
  • 有没有办法给自编的ActiveX Control加事件??急急急!!!
  • 有没有办法触发鼠标的右键,另存事件?(asp.net C#)
  • asp.net中有办法让checkbox选中之后就触发事件吗?
  • DataGrid在编辑时,事件总丢,怎么回事?有解决办法吗?
  • 相同控件处理类似事件的简单解决办法
  • 还有什么别的办法响应对话框上的按钮事件吗??
  • 有没有办法用代码模拟用户鼠标点击事件?

关键词

  • 脚本
  • 数据
  • 纳税人识别号
  • shr
  • 收货人
  • nsrsbh
  • dw
  • itemchanged
  • 名称
  • dropdowndw

得分解答快速导航

  • 帖主:phonixman

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo