找回密码
 立即注册

QQ登录

只需一步,快速开始

chris_zhu

注册会员

7

主题

18

帖子

103

积分

注册会员

积分
103
chris_zhu
注册会员   /  发表于:2019-6-6 07:52  /   查看:2735  /  回复:1
本帖最后由 chris_zhu 于 2019-6-6 07:55 编辑

    Private Sub TDBGrid_realtime_style()

        Dim i As Integer

            With TrueDBGrid_Realtime


            .Columns(xl).Caption = "线路"
            .Columns(zh).Caption = "站号"
            .Columns(dw).Caption = "单位"
            .Columns(zllj).Caption = "质量1" & Chr(13) & Chr(13) & "(t)"
            .Columns(zlss).Caption = "质量2" & Chr(13) & Chr(13) & "(Kg/h)"
            .Columns(rlss).Caption = "热量" & Chr(13) & Chr(13) & "(Gj/h)"
            .Columns(wd).Caption = "温度" & Chr(13) & Chr(13) & "(℃)"
            .Columns(yl).Caption = "压力" & Chr(13) & Chr(13) & "(Mpa)"
            .Columns(md).Caption = "密度" & Chr(13) & Chr(13) & "(Kg/M3)"
            .Columns(jlsj).Caption = "记录时间"
            .Columns(sj).Caption = "事件"
            .Columns(zt).Caption = "状态"
            .Columns(jly).Caption = "记录仪"
            .Columns(txfs).Caption = "通讯方式"
            .Columns(txhm).Caption = "通讯号码"
            .Columns(sqll).Caption = "申请流量"
            .Columns(wdsx).Caption = "温度上限"
            .Columns(wdxx).Caption = "温度下限"
            .Columns(ylsx).Caption = "压力上限"
            .Columns(ylxx).Caption = "压力下限"


            .Columns(zllj).NumberFormat = "#0.0"
            .Columns(zlss).NumberFormat = "#0.0"
            .Columns(rlss).NumberFormat = "#0.0"
            .Columns(wd).NumberFormat = "#0.0"
            .Columns(yl).NumberFormat = "#0.00"
            .Columns(md).NumberFormat = "#0.00"
            .Columns(jlsj).NumberFormat = "yyyy-MM-dd HH:mm:ss"


            .Splits(0).DisplayColumns(xl).Width = 100
            .Splits(0).DisplayColumns(zh).Width = 50
            .Splits(0).DisplayColumns(dw).Width = 200

            .Splits(1).DisplayColumns(zllj).Width = 150
            .Splits(1).DisplayColumns(zlss).Width = 150
            .Splits(1).DisplayColumns(rlss).Width = 150
            .Splits(1).DisplayColumns(wd).Width = 150
            .Splits(1).DisplayColumns(yl).Width = 150
            .Splits(1).DisplayColumns(md).Width = 150
            .Splits(1).DisplayColumns(jlsj).Width = 200
            .Splits(1).DisplayColumns(sj).Width = 100
            .Splits(1).DisplayColumns(zt).Width = 100

            For i = 0 To Col_i
                '表头水平居中
                .Splits(0).DisplayColumns.Item(i).HeadingStyle.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center
                '单元格水平居中
                .Splits(0).DisplayColumns.Item(i).Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center
                '单元格垂直居中
                .Splits(0).DisplayColumns.Item(i).Style.VerticalAlignment = C1.Win.C1TrueDBGrid.AlignVertEnum.Center

                '表头水平居中
                .Splits(1).DisplayColumns.Item(i).HeadingStyle.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center
                '单元格水平居中
                .Splits(1).DisplayColumns.Item(i).Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center
                '单元格垂直居中
                .Splits(1).DisplayColumns.Item(i).Style.VerticalAlignment = C1.Win.C1TrueDBGrid.AlignVertEnum.Center
            Next


            '第一个表格隐藏不需要的列
            For i = 3 To Col_i
                .Splits(0).DisplayColumns(i).Visible = False
            Next

            '第二个表格隐藏不需要的列
            For i = 0 To 2
                .Splits(1).DisplayColumns(i).Visible = False
            Next


            '第二个表格隐藏不需要的列
            For i = 12 To 19
                .Splits(1).DisplayColumns(i).Visible = False
            Next



            .Splits(0).OddRowStyle.BackColor = Color.FromArgb(Val(ReadINI("表格", "奇数行颜色", "", INIFilePath)))
            .Splits(0).EvenRowStyle.BackColor = Color.FromArgb(Val(ReadINI("表格", "偶数行颜色", "", INIFilePath)))

            .Splits(1).OddRowStyle.BackColor = Color.FromArgb(Val(ReadINI("表格", "奇数行颜色", "", INIFilePath)))
            .Splits(1).EvenRowStyle.BackColor = Color.FromArgb(Val(ReadINI("表格", "偶数行颜色", "", INIFilePath)))

            .AlternatingRows = True
            .ColumnFooters = True
            .ColumnHeaders = True
            .Dock = DockStyle.Fill
            .Splits(0).SplitSize = 3
            .Splits(0).SplitSizeMode = C1.Win.C1TrueDBGrid.SizeModeEnum.NumberOfColumns
            .Splits(0).SpringMode = 0
            .RowHeight = Val(ReadINI("表格", "行高", "", INIFilePath))
            .MarqueeStyle = 3

            .Splits(0).ColumnCaptionHeight = 50
            .Splits(1).ColumnCaptionHeight = 50

            ' .Splits(0).MarqueeStyle = C1.Win.C1TrueDBGrid.MarqueeEnum.HighlightRow


            ' .ColumnFooters = True
            '是相同线路合并显示
            ' .Columns(xl).Merge = dbgMergeFree
            '  .Columns(xl).Style.Alignment = dbgCenter
            '  .Columns(xl).Style.VerticalAlignment = dbgVertCenter


            End With
    End Sub




Private Sub View_data()


        Dim SQL_str As String
        Dim Row_i As Integer = 0



        SQL_str = "SELECT * from consumer"
        Call Open_RecordDataset(SQL_DSN, SQL_str, "custom")

        If R_Dataset.Tables("custom").Rows.Count > 0 Then

            ReDim Realtime_array(R_Dataset.Tables("custom").Rows.Count, 19)

            Me.TrueDBGrid_Realtime.Rebind(True)

            For Each DataRows As DataRow In R_Dataset.Tables("custom").Rows
                Realtime_array(Row_i, xl) = DataRows("线路")
                Realtime_array(Row_i, zh) = DataRows("站号")
                Realtime_array(Row_i, dw) = DataRows("单位")
                Realtime_array(Row_i, zllj) = DataRows("质量1")
                Realtime_array(Row_i, zlss) = DataRows("质量2")
                Realtime_array(Row_i, rlss) = DataRows("热量")
                Realtime_array(Row_i, wd) = DataRows("温度")
                Realtime_array(Row_i, yl) = DataRows("压力")
                Realtime_array(Row_i, md) = DataRows("密度")
                Realtime_array(Row_i, jlsj) = DataRows("记录时间")
                Realtime_array(Row_i, sj) = DataRows("事件代码")
                Realtime_array(Row_i, zt) = DataRows("状态")
                Realtime_array(Row_i, jly) = DataRows("记录仪")
                Realtime_array(Row_i, txfs) = DataRows("通讯方式")
                Realtime_array(Row_i, txhm) = DataRows("通讯号码")
                Realtime_array(Row_i, sqll) = DataRows("申请流量")
                Realtime_array(Row_i, wdsx) = DataRows("温度上限")
                Realtime_array(Row_i, wdxx) = DataRows("温度下限")
                Realtime_array(Row_i, ylsx) = DataRows("压力上限")
                Realtime_array(Row_i, ylxx) = DataRows("压力下限")

                Row_i += 1
            Next


        End If


        ' 调用无参的SetDataBinding方法,不然以下代码无效
        TrueDBGrid_Realtime.SetDataBinding()
        TrueDBGrid_Realtime.AddRows(UBound(Realtime_array))


        For Row_i = 0 To UBound(Realtime_array) - 1

            TrueDBGrid_Realtime(Row_i, xl) = Realtime_array(Row_i, xl)
            TrueDBGrid_Realtime(Row_i, zh) = Realtime_array(Row_i, zh)

            TrueDBGrid_Realtime(Row_i, dw) = Realtime_array(Row_i, dw)
            TrueDBGrid_Realtime(Row_i, zllj) = Realtime_array(Row_i, zllj)

            TrueDBGrid_Realtime(Row_i, zlss) = Realtime_array(Row_i, zlss)
            TrueDBGrid_Realtime(Row_i, rlss) = Realtime_array(Row_i, rlss)

            TrueDBGrid_Realtime(Row_i, wd) = Realtime_array(Row_i, wd)
            TrueDBGrid_Realtime(Row_i, yl) = Realtime_array(Row_i, yl)

            TrueDBGrid_Realtime(Row_i, md) = Realtime_array(Row_i, md)
            TrueDBGrid_Realtime(Row_i, jlsj) = Realtime_array(Row_i, jlsj)

            TrueDBGrid_Realtime(Row_i, sj) = Realtime_array(Row_i, sj)
            TrueDBGrid_Realtime(Row_i, zt) = Realtime_array(Row_i, zt)

            TrueDBGrid_Realtime(Row_i, jly) = Realtime_array(Row_i, jly)
            TrueDBGrid_Realtime(Row_i, txfs) = Realtime_array(Row_i, txfs)

            TrueDBGrid_Realtime(Row_i, txhm) = Realtime_array(Row_i, txhm)
            TrueDBGrid_Realtime(Row_i, sqll) = Realtime_array(Row_i, sqll)

            TrueDBGrid_Realtime(Row_i, wdsx) = Realtime_array(Row_i, wdsx)
            TrueDBGrid_Realtime(Row_i, wdxx) = Realtime_array(Row_i, wdxx)

            TrueDBGrid_Realtime(Row_i, ylsx) = Realtime_array(Row_i, ylsx)
            TrueDBGrid_Realtime(Row_i, ylxx) = Realtime_array(Row_i, ylxx)

        Next

        'Me.TrueDBGrid_Realtime.SetDataBinding(R_Dataset.Tables("custom"), "",  True) '直接绑定dataset


    End Sub



如果采用Me.TrueDBGrid_Realtime.SetDataBinding(R_Dataset.Tables("custom"), "",  True) '直接绑定dataset就可以一下隐藏不需要的列代码生效
'第一个表格隐藏不需要的列
            For i = 3 To Col_i
                .Splits(0).DisplayColumns(i).Visible = False
            Next

            '第二个表格隐藏不需要的列
            For i = 0 To 2
                .Splits(1).DisplayColumns(i).Visible = False
            Next


            '第二个表格隐藏不需要的列
            For i = 12 To 19
                .Splits(1).DisplayColumns(i).Visible = False
            Next


如果用数组写入,则无法隐藏不需要的列,

请问需要在数组写入的情况下需要如何设置才能隐藏不需要的列?
另问:  '是相同线路合并显示
            ' .Columns(xl).Merge = dbgMergeFree
            '  .Columns(xl).Style.Alignment = dbgCenter
            '  .Columns(xl).Style.VerticalAlignment = dbgVertCenter


如果合并相同内容的行?

谢谢。





1 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-6-6 16:20:30
沙发
本帖最后由 Richard.Ma 于 2019-6-6 16:22 编辑

您好,建议您将代码打包上传上来,这样验证问题可能更快些,
你需要要解决的问题也请单独列出来
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部