在gx中有结构体类型(structure data type )
我们需要先定义此结构类型,如 &ArrayList (Collection = true)
item :
no decimal(8) 编号
num decimal(8) 数量
应用:在grid中的每一行数据,汇总合计,如果有相同编号的,数量要累加,最后出合计的报表。
思路:可以添加每行数据到结构体,为了结构体数据之编号保持唯一性,如果存在,数量相加,如果不存在,则添加。
for each line
&found_flag = 'N'
for &i = 1 to &ArrayList.count
if &no = &ArrayList.item(&i).no //比较编号,如果相同,数量累加
&ArrayList.item(&i).num += &num
&found_flag = 'Y'
exit //找到后,就不继续比较了,因为肯定没有相同编号,节约时间,提高效率
endif
endfor
if &found_flag <> 'Y'
&ArrayListItem.no = &no
&ArrayListItem.num = &num
&ArrayList.Add(&ArrayListItem)
endif
endfor