本帖最后由 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
如果合并相同内容的行?
谢谢。
|
|