对于wincc flex grid控件能用VB语言实现最后一行为前面所有行的总和么,就类似EXCEL一样,实现这个功能VB脚本该怎么写。
'---------------------设置MSHFlexGrid控件显示--------------------'
Dim olist
Set olist = ScreenItems("报表")
olist.clear
olist.Cols=6 '列数
olist.Rows = m+1 '行数量
For i = 0 To 2
olist.ColAlignment(i)=3'列内容居中显示
Next
'设置列宽
olist.ColWidth(0) = 800
olist.ColWidth(1) = 3000
olist.ColWidth(2) = 1500
olist.ColWidth(3) = 1500
olist.ColWidth(4) = 1500
olist.ColWidth(5) = 1500
'设置表头
oList.TextMatrix(0, 0)="序号"
oList.TextMatrix(0, 1)="时间"
oList.TextMatrix(0, 2) = "甲班运行时间"
oList.TextMatrix(0, 3) = "乙班运行时间"
oList.TextMatrix(0, 4) = "丙班运行时间"
oList.TextMatrix(0, 5) = "丁班运行时间"
'---------------------将数据写入表格--------------------'
oRs1.movefirst
For i = 1 To m
oList.TextMatrix(i ,0) = CStr (i)
oList.TextMatrix(i ,1) =CStr (oRs1.Fields(1).Value)
oList.TextMatrix(i ,2) =CStr (oRs1.Fields(3).Value)
oList.TextMatrix(i ,3) =CStr (oRs1.Fields(4).Value)
oList.TextMatrix(i ,4) =CStr (oRs1.Fields(5).Value)
oList.TextMatrix(i ,5) =CStr (oRs1.Fields(6).Value)
oRs1.movenext
Next
该回答引用GPTᴼᴾᴱᴺᴬᴵ
是的,可以用VB语言实现MSHFlexGrid控件最后一行为前面所有行的总和。以下是一个示例代码:
'---------------------设置MSHFlexGrid控件显示--------------------
Dim olist
Set olist = ScreenItems("报表")
olist.Clear
olist.Cols = 6 '列数
olist.Rows = m + 1 '行数量
For i = 0 To 2
olist.ColAlignment(i) = 3 '列内容居中显示
Next
'设置列宽
olist.ColWidth(0) = 800
olist.ColWidth(1) = 3000
olist.ColWidth(2) = 1500
olist.ColWidth(3) = 1500
olist.ColWidth(4) = 1500
olist.ColWidth(5) = 1500
'设置表头
oList.TextMatrix(0, 0) = "序号"
oList.TextMatrix(0, 1) = "时间"
oList.TextMatrix(0, 2) = "甲班运行时间"
oList.TextMatrix(0, 3) = "乙班运行时间"
oList.TextMatrix(0, 4) = "丙班运行时间"
oList.TextMatrix(0, 5) = "丁班运行时间"
'---------------------将数据写入表格--------------------
Dim total(5)
Dim j
oRs1.MoveFirst
For i = 1 To m
oList.TextMatrix(i, 0) = CStr(i)
oList.TextMatrix(i, 1) = CStr(oRs1.Fields(1).Value)
oList.TextMatrix(i, 2) = CStr(oRs1.Fields(3).Value)
oList.TextMatrix(i, 3) = CStr(oRs1.Fields(4).Value)
oList.TextMatrix(i, 4) = CStr(oRs1.Fields(5).Value)
oList.TextMatrix(i, 5) = CStr(oRs1.Fields(6).Value)
'计算总和
For j = 2 To 5
total(j) = total(j) + oRs1.Fields(j + 1).Value
Next
oRs1.MoveNext
Next
'设置最后一行为总和
For j = 2 To 5
oList.TextMatrix(m + 1, j) = CStr(total(j))
Next
在这个示例代码中,我们定义了一个名为“total”的数组来保存各列的总和。在每一行数据被写入表格时,我们同时计算每一列的总和并保存在“total”数组中。最后,我们将“total”数组的值写入最后一行,从而实现了MSHFlexGrid控件最后一行为前面所有行的总和的功能。