queryresult.cls
来自「通用书店管理系统」· CLS 代码 · 共 159 行
CLS
159 行
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "QueryResult"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
Const chrDefaultSplit = "|"
Private arrHeader As Variant '存放表列头
Private strHeaderMerge As String '列头合并处理
Private arrInputArray As Variant '存放输入数组
Private arrDataFieldsType As Variant '存放数据字段类型
Private defPrintInfo As New DefinePrintInfo '定义打印信息
Public arrGroup As Variant '分组
Public arrResizeColWidth As Variant '自动列宽缩放
Public arrResizeRowHeight As Variant '自动行高缩放
Public arrSort As Variant '排序
Public arrSubtotal As Variant '汇总
Dim frm As frmQueryResult
'设置数组
Public Property Let InputArray(ByVal vNewValue As Variant)
arrInputArray = vNewValue
End Property
'设置表列头
Public Property Let Header(ByVal vNewValue As Variant)
arrHeader = vNewValue
End Property
'设置列头合并串
Public Property Let HeaderMerge(ByVal vNewValue As String)
strHeaderMerge = vNewValue
End Property
'得到控件句柄
Public Property Get FlexGridHwnd() As Long
FlexGridHwnd = frm.fg.hWnd
End Property
'设置数据字段类型
Public Property Let DataFieldsType(ByVal vNewValue As Variant)
arrDataFieldsType = vNewValue
End Property
'设置打印信息
Public Property Set PrintInfo(ByVal vNewValue As DefinePrintInfo)
Set defPrintInfo = vNewValue
End Property
'显示结果窗体
Public Function ShowQueryResult() As Boolean
Set frm = New frmQueryResult
frm.arrInputArray = arrInputArray
frm.arrHeader = arrHeader
frm.strHeaderMerge = strHeaderMerge
frm.arrDataFieldsType = arrDataFieldsType
frm.arrGroup = arrGroup
frm.arrResizeColWidth = arrResizeColWidth
frm.arrResizeRowHeight = arrResizeRowHeight
frm.arrSort = arrSort
frm.arrSubtotal = arrSubtotal
Set frm.defPrintInfo = defPrintInfo
frm.Show vbModal
ShowQueryResult = True
Set frm = Nothing
End Function
'打印
Public Function showPrint() As Boolean
Dim ro As New ResultOutput
ro.hwnd_FlexGrid = frm.fg.hWnd
Set ro.PrintInfo = defPrintInfo
ro.showPrint
End Function
'调用分组功能
Public Sub Group(ByVal ColsIndex As String, Optional chrSplit As String = chrDefaultSplit)
Dim arr
Dim i%
arr = Split(Trim(ColsIndex), chrSplit)
If UBound(arr) > -1 Then
For i = 0 To UBound(arr)
frm.fg.ColSort(i) = flexSortGenericAscending
frm.fg.Sort = flexSortUseColSort
frm.fg.MergeCells = flexMergeRestrictRows
frm.fg.MergeCol(arr(i)) = True
Next i
frm.fg.Redraw = flexRDDirect
End If
End Sub
'调用统计方法
Public Sub Subtotal(ByVal lngFunction As SubtotalSettings, ByVal GroupOn As Long, ByVal TotalOn As Long, Optional Clear As Boolean = True)
If Clear Then frm.fg.Subtotal (flexSTClear)
Call frm.fg.Subtotal(lngFunction, GroupOn, TotalOn)
frm.fg.Redraw = flexRDDirect
End Sub
'调用列自动缩放
Public Sub AutoSizeColumn(ByVal ColsIndex As String, Optional chrSplit As String = chrDefaultSplit)
Dim arr
Dim i%
arr = Split(Trim(ColsIndex), chrSplit)
If UBound(arr) > -1 Then
For i = 0 To UBound(arr)
frm.fg.AutoSizeMode = flexAutoSizeColWidth
frm.fg.AutoSize (arr(i))
Next i
frm.fg.Redraw = flexRDDirect
End If
End Sub
'调用行自动缩放
Public Sub AutoSizeRow(Optional ByVal ColsIndex As String, Optional chrSplit As String = chrDefaultSplit)
Dim arr
Dim i%
arr = Split(Trim(ColsIndex), chrSplit)
If UBound(arr) > -1 Then
For i = 0 To UBound(arr)
frm.fg.AutoSizeMode = flexAutoSizeRowHeight
frm.fg.WordWrap = True
frm.fg.AutoSize (arr(i))
Next i
frm.fg.Redraw = flexRDDirect
End If
End Sub
'调用保存方法
Public Function Save(ByVal FileName As String)
Call frm.fg.SaveGrid(FileName, flexFileTabText)
End Function
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?