mshflexgrid问题(Tiger_Zhao)

YTencent 2010-05-20 09:17:31
在vb6.0中
mshflexgrid控件里有N条纪录,

RT:

序号 料号 数量 组
1 123455 1.2000 01
2 343587 1.0003 0
3 222222 2.2000 0
4 343585 1.0003 05
5 351351 2.0000 0
6 687486 3.0000 07
7 988754 4.0000 02
8 474845 2.2222 08
9 444845 2.2222 07
....


全部的料号都不相同的,只想通过这个控件显示出来的"组的值"进行相同合并,
(忽略组的值是0的,是0的不理会因为要保留)

然后相同组值的数量相加,然后料号显示最大数量的一条。另一条则不要

请问如何处理? 多谢!



上次多谢Tiger_Zhao的回答,下面的代码只能在组的值不是0并且排序的情况下才可以,还有我还需要合并后显示最大数量的那条纪录?!
With MSHFlexGrid1
.Sort = 9

i = .FixedRows
While i < .Rows - 1
If Val(.TextMatrix(i, 3)) = Val(.TextMatrix(i + 1, 3)) Then
.TextMatrix(i + 1, 2) = Val(.TextMatrix(i, 2)) + Val(.TextMatrix(i + 1, 2))
.RemoveItem i
Else
i = i + 1
End If
Wend
End With

请高手和Tiger_Zhao帮下我
...全文
52 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
林MM又不是一家的吧:)
  • 打赏
  • 举报
回复
slowgrace 2010-05-24
什么人?居然用小F的头像?!
  • 打赏
  • 举报
回复
chuifengde 2010-05-20
Dim I As Integer, J As Integer
With M
For I = 1 To .Rows - 1
If .TextMatrix(I, 3) <> 0 Then
For J = I + 1 To .Rows - 1
If .TextMatrix(J, 3) = .TextMatrix(I, 3) Then
If Val(.TextMatrix(J, 1)) > Val(.TextMatrix(I, 1)) Then .TextMatrix(I, 1) = .TextMatrix(J, 1)
.TextMatrix(I, 2) = Val(.TextMatrix(I, 2)) + Val(.TextMatrix(J, 2))
.TextMatrix(J, 0) = "-1"
End If
Next J
End If
Next I
For I = .Rows - 1 To 1 Step -1
If .TextMatrix(I, 0) = "-1" Then .RemoveItem I
Next I
End With
  • 打赏
  • 举报
回复
chuifengde 2010-05-20
老实说没看懂你的意图,以为是分组列中0留着,相同的将值求和取一条料号最大的
  • 打赏
  • 举报
回复
YTencent 2010-05-20
[Quote=引用 1 楼 chuifengde 的回复:]
VB code
Dim I As Integer, J As Integer
With M
For I = 1 To .Rows - 1
If .TextMatrix(I, 3) <> 0 Then
For J = I + 1 To .Rows - 1
If .TextMatrix(J, 3) = .Tex……
[/Quote]


虽然不正确,可是也要谢谢你的热情帮助。
  • 打赏
  • 举报
回复
相关推荐
发帖
控件
创建于2007-09-28

1429

社区成员

VB 控件
申请成为版主
帖子事件
创建了帖子
2010-05-20 09:17
社区公告
暂无公告