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帮下我
...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2010-05-25
  • 打赏
  • 举报
回复
林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]


虽然不正确,可是也要谢谢你的热情帮助。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧