关于datawindowchild和itemfoucschanged事件的问题,我真的没办法了。
录入窗口有一数据窗口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)来过滤和检索是否存在该用户名称,但好像很麻烦的样子。请高手帮帮我,对于这样的数据窗口该在什么事件中写脚本?我的脚本应该怎么改?谢谢。