flex grid 控件VB编辑属性

对于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控件最后一行为前面所有行的总和的功能。