liuwenming12 2023-02-21 21:01 采纳率: 75%
浏览 21
已结题

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

  • 写回答

1条回答 默认 最新

  • MarkHan_ 2023-02-21 22:06
    关注

    该回答引用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控件最后一行为前面所有行的总和的功能。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月1日
  • 已采纳回答 2月21日
  • 创建了问题 2月21日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效