我给个思路:
这个如果排好序的话,应该从后往前循环比较方便,可以用双层循环实现。
循环每一个代码;
启动内层循环(后到前),如果内层循环的代码前面和外层循环代码一样,并且多2位长度,那么累加 额度
直到 内层循环 代码和 外层循环代码一致(或者循环到第一行也行)
如此
Int i,k,li_find
Long ll_total
String ls_kmdm,ls_kmdmA
For i = dw_1.RowCount() To 1 Step -1
ls_kmdm = Trim(dw_1.Object.科目代码[i])
ls_kmdmA = Left(ls_kmdm,Len(ls_kmdm)-2)
li_find = dw_1.Find('科目代码="'+ls_kmdmA+'"',1,dw_1.RowCount())
for k=li_find+1 to dw_1.rowcount()
if Left(Trim(dw_1.Object.科目代码[k]),Len(Trim(dw_1.Object.科目代码[k]))-2)=Trim(dw_1.Object.科目代码[li_find]) then
ll_total+=dw_1.Object.预算额度[k]
end if
next
dw_1.SetItem(li_find,"预算额度",ll_total)
ll_total=0
Next
你不说 预算额度 是按怎样的 件算出来 怎么帮你!