📄 modpublic.bas
字号:
Attribute VB_Name = "ModPublic"
Function FillGrid(Rs As ADODB.Recordset, Grid As MSHFlexGrid, Optional FillTitle As Boolean = False)
'' 根据Rs填充网格控件
If Rs.State <> 1 Then Exit Function
Dim Row As Integer
Dim i As Integer
On Error GoTo err
With Grid
.Cols = Rs.Fields.Count + 1
If FillTitle Then
.FixedRows = 1
For i = 1 To Rs.Fields.Count
.Col = i
.Row = 0
.Text = Rs(i - 1).Name
Next i
End If
.ColWidth(0) = 400
If Rs.EOF Then Exit Function
Rs.MoveFirst
.Rows = 1
.ColWidth(0) = 600
.Visible = False
Do While Not Rs.EOF
.Rows = .Rows + 1
.Row = .Rows - 1
.Col = 0
.Text = .Row
For i = 1 To Rs.Fields.Count
.Col = i
.Text = Rs(i - 1).Value & ""
Next i
Rs.MoveNext
Loop
.Visible = True
End With
Exit Function
err:
Grid.Visible = True
End Function
Public Sub gFillFg(ByRef objFg As Object, _
ByRef objRst As Recordset, _
ByRef objButtons As MSComctlLib.Buttons, _
Optional ByRef CurPage As Integer, _
Optional ByVal PageSize As Integer, _
Optional ByVal MutiPageShow As Boolean = True)
Dim i As Integer
Dim j As Integer
With objFg
.Rows = 2 'updated by xhr on 2002-08-15
For i = 1 To .Cols - 1
.TextMatrix(1, i) = ""
Next
If MutiPageShow = True Then
If CurPage >= 0 Or CurPage = -1 Then
objRst.PageSize = PageSize
objButtons("prev").Enabled = True
objButtons("first").Enabled = True
objButtons("next").Enabled = True
objButtons("last").Enabled = True
If CurPage > objRst.PageCount Then
CurPage = objRst.PageCount
End If
If CurPage = 0 Then
CurPage = 1
End If
If CurPage = -1 Then
CurPage = objRst.PageCount
End If
If objRst.PageCount = 0 Then
objButtons("prev").Enabled = False
objButtons("first").Enabled = False
objButtons("next").Enabled = False
objButtons("last").Enabled = False
Exit Sub
End If
If CurPage = 1 Then
objButtons("prev").Enabled = False
objButtons("first").Enabled = False
objButtons("next").Enabled = True
objButtons("last").Enabled = True
End If
If CurPage = objRst.PageCount Then '末页
objButtons("prev").Enabled = True
objButtons("first").Enabled = True
objButtons("next").Enabled = False
objButtons("last").Enabled = False
End If
If objRst.PageCount = 1 Then
objButtons("prev").Enabled = False
objButtons("first").Enabled = False
objButtons("next").Enabled = False
objButtons("last").Enabled = False
End If
objRst.AbsolutePage = CurPage
For i = 1 To PageSize
If objRst.EOF Then Exit For
.Rows = i + 1
For j = 0 To .Cols - 1 - 1 'updated by xhr(reason:j+1=.col-1)
.TextMatrix(i, j + 1) = IIf(IsNull(objRst(j)), "", objRst(j))
Next
objRst.MoveNext
Next
Else
Set objFg.DataSource = objRst
End If
Else
While Not objRst.EOF
For j = 0 To .Cols - 1 - 1 'updated by xhr(reason:j+1=.col-1)
.TextMatrix(.Rows - 1, j + 1) = IIf(IsNull(objRst(j)), "", objRst(j)) '记录集中不包含顺序号,但是按照顺序号进行了排序
Next
objRst.MoveNext
Wend
End If
End With
gShowPage objRst, PageSize, CurPage
End Sub
Public Sub gShowPage(ByRef objRst As Recordset, _
ByVal PageSize As Integer, _
ByRef CurPage As Integer)
Dim a As New frmMain
' With a.sbStatusBar
' .Panels("PageInfo") = CurPage & "/" & objRst.PageCount
' .Panels("PageCount") = "每页" & PageSize & "行, 共" & objRst.RecordCount & "行"
' End With
End Sub
Public Function getComIndex(Com As ComboBox, Value As String) As Integer
'显示下拉柜数据
Dim i As Integer
getComIndex = -1
With Com
For i = 0 To .ListCount - 1
.ListIndex = i
If .Text = Value Then
getComIndex = i
Exit Function
End If
Next i
End With
getComIndex = -1
End Function
Public Function GetBillno(Value As String) As String
'生成流水号
Dim sql As String
Dim Ars As New ADODB.Recordset
Dim StrDate As String
Dim st As String
Dim MaxSt As String
'读取服务器的时间
sql = "select convert(varchar(10),getdate(),112)"
Set Ars = SQLDB.Execute(sql)
If Not Ars.EOF Then
StrDate = Ars.Fields(0).Value
Else
StrDate = Trim(Format(Now(), "yyyyMMdd"))
End If
If Value = "SI" Then
sql = "select max(Billno) from StockOrder where substring(Billno,3,8)='" & StrDate & "' and substring(Billno,1,2) ='SI'"
Set Ars = SQLDB.Execute(sql)
If Not Ars.EOF Then
If IsNull(Ars.Fields(0).Value) Then
MaxSt = Right("00000000000000001", 6)
Else
st = "0000000000000000000" & Trim(str(CLng(Val(Right(Ars.Fields(0).Value, 4))) + 1))
MaxSt = Right(st, 6)
End If
Else
MaxSt = Right("00000000000000001", 6)
End If
GetBillno = "SI" & StrDate & MaxSt
End If
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -