当前位置: 代码迷 >> PB >> grid数据窗口各字段的自动计算有关问题
  详细解决方案

grid数据窗口各字段的自动计算有关问题

热度:96   发布时间:2016-04-29 05:36:21.0
grid数据窗口各字段的自动计算问题?

这是在grid数据窗口的一个自动计算的;我在itemchanged事件中写了判断,现在有个问题 ,如果单价 体积 重量 单价 这些都录入了 再来选择计费标准的话  下面的货到付款不会自动赋值 ?
现在想把他改为一个自定义函数来调用  ?这个函数需要哪些参数?谢谢

我的itemchanged 代码如下
long	ll_row
string ls_jsbzbm,ls_jsbzbm_old
dec li_hwzjs
dec dec_hwdj,dec_hwyf,dec_hwztj,dec_hwzzl
ll_row = this.getrow()
if ll_row<=0 then return 

ls_jsbzbm_old = this.object.jsbzbm[ll_row]
this.accepttext()
ll_row = this.getrow()
ls_jsbzbm = this.object.jsbzbm[ll_row]

if ls_jsbzbm_old<> ls_jsbzbm then
if ls_jsbzbm='01' then //件数
li_hwzjs = This.Object.hwzjs[ll_row]
dec_hwdj = This.Object.hwdj[ll_row]
if IsNull(li_hwzjs) or IsNull(dec_hwdj) then
this.object.enable_flag[ll_row]=1
else
this.object.enable_flag[ll_row]=0
end if
IF IsNull(li_hwzjs) Then li_hwzjs = 0
IF IsNull(dec_hwdj) Then dec_hwdj = 0
dec_hwyf = (li_hwzjs) * (dec_hwdj)
this.object.hwyf[ll_Row]=dec_hwyf

elseif ls_jsbzbm='02' then //体积
dec_hwztj = This.Object.hwztj[ll_row]
dec_hwdj = This.Object.hwdj[ll_row]
if IsNull(dec_hwztj) or IsNull(dec_hwdj) then
this.object.enable_flag[ll_row]=1
else
this.object.enable_flag[ll_row]=0
end if
IF IsNull(dec_hwztj) Then dec_hwztj = 0
IF IsNull(dec_hwdj) Then dec_hwdj = 0
dec_hwyf = (dec_hwztj) * (dec_hwdj)
this.object.hwyf[ll_Row]=dec_hwyf

elseif ls_jsbzbm='03' then //重量
dec_hwzzl = This.Object.hwzzl[ll_row]
dec_hwdj = This.Object.hwdj[ll_row]
if IsNull(dec_hwzzl) or IsNull(dec_hwdj) then
this.object.enable_flag[ll_row]=1
else
this.object.enable_flag[ll_row]=0
end if
IF IsNull(dec_hwzzl) Then dec_hwzzl = 0
IF IsNull(dec_hwdj) Then dec_hwdj = 0
dec_hwyf = round((dec_hwzzl/1000) * (dec_hwdj),3)
this.object.hwyf[ll_Row]=dec_hwyf

else //没有
this.object.enable_flag[ll_row]=1
end if
end if

//总费用计算
dec dec_hwyf_c,dec_bxf_c,dec_jhf_c,dec_shf_c,dec_zyf_c

dec_hwyf_c = This.Object.hwyf[ll_row]
dec_bxf_c = This.Object.bxf[ll_row]
dec_jhf_c = This.Object.jhf[ll_row]
dec_shf_c = This.Object.shf[ll_row]
IF IsNull(dec_hwyf_c) Then dec_hwyf_c= 0
IF IsNull(dec_bxf_c ) Then dec_bxf_c = 0
IF IsNull(dec_jhf_c) Then dec_jhf_c = 0
IF IsNull(dec_shf_c) Then dec_shf_c = 0
dec_zyf_c = dec_hwyf_c + dec_bxf_c + dec_jhf_c + dec_shf_c
this.object.zyf[ll_Row] = dec_zyf_c

以上代码 按顺序录入的话 没问题的 就是 最后选择计费标准的时候 不能赋值给zyf
this.object.zyf[ll_Row] = dec_zyf_c  这句不起作用 ,请高手帮忙做成自定义函数调用?谢谢
------解决方案--------------------
那你this.object.zyf[ll_Row] = dec_zyf_c是改dw_detail的总运费?和下面那个数据窗口有什么关系?
  相关解决方案