关于mshflexgrid中的列的选择计算.help
bghd 2008-04-17 11:26:09 问题描述如下:我设置的列为6列,a,b,c,d ,e,f,用一个combo 传递修改的值给mshflexgrid.cell ,其中b,c,e,f为数字列, d列可以选择combo中的数据,比如,select 学徒 ,select 员工.另有text1,text3可以输入值.u 为接收 e列的和,也就是每行的e列的累加值.text3为接收当d列选择学徒时的那一行的f 值(是一固定值,比如是20),如有多行:学徒: 行的话 ,即是多行f 列累加后的值.
要达到的目的是:当d列选择学徒时,f = text1/text2*e.当d列选择员工时,f=(text1-text3)/text2*e.指的是每行都是如此的计算.
现在的问题:其它部分没有问题,只是d列选择时,不知如何实现其计算.
另外,我的combo值有数字和文字两部分,如何控制,a列和d列只能输入文字,而其它列可以选择为数字?
我的代码如下,如有错误,敬请指教!
Private Sub Combo1_LostFocus()
'''''''''''''''''''''''''第一行除数为 0 会出现运行错误,未解决!''''''
Dim tmprow As Integer
Dim tmpcol As Integer
Dim sum As Integer
Dim t As Integer
Dim u As Integer
Dim e As Integer
tmprow = MSHFlexGrid1.Row
tmpcol = MSHFlexGrid1.Col
Combo1.SelStart = 0
Combo1.Visible = False
MSHFlexGrid1.RowSel = tmprow ''''''''''''''''''''''' rowsel=row ??????
MSHFlexGrid1.ColSel = tmpcol ''''''''''''''''''''''''colsel =col
If MSHFlexGrid1.TextMatrix(tmprow, 3) = "学徒" Then ''''''''''''设计一个循环,检测每行3列是否有”学徒“字样,如果有,累加其第5列的值''''''''''''
MSHFlexGrid1.TextMatrix(tmprow, 1) = 3 '''''''''''''''''''工资系数赋值为3
MSHFlexGrid1.TextMatrix(tmprow, 4) = 0 ''''''''工资总计赋值为0不参与分配计算
MSHFlexGrid1.TextMatrix(tmprow, 5) = (3 * Val(MSHFlexGrid1.TextMatrix(tmprow, 2)))
For t = 2 To MSHFlexGrid1.Rows
sum = sum + Val(MSHFlexGrid1.TextMatrix(t - 1, 4))
Text2.Text = sum
Next t
Else
MSHFlexGrid1.TextMatrix(tmprow, 4) = (Val(MSHFlexGrid1.TextMatrix(tmprow, 1)) * Val(MSHFlexGrid1.TextMatrix(tmprow, 2))) ''通过前两列的数值计算第三列的数值
For t = 2 To MSHFlexGrid1.Rows
sum = sum + Val(MSHFlexGrid1.TextMatrix(t - 1, 4))
Text2.Text = sum
If MSHFlexGrid1.TextMatrix(tmprow, 3) = "学徒" Then
u = u + Val(MSHFlexGrid1.TextMatrix(t - 1, 5))
Else
End If
Next t
MSHFlexGrid1.TextMatrix(tmprow, 5) = (Val(Text7.Text) - u) / Val(Text2.Text) * Val(MSHFlexGrid1.TextMatrix(tmprow, 4))
End If
我的思路是:当d选择为学徒 时,累加他的值到u.可不知道代码如何写.