⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modpublic.bas

📁 网上销售源代码
💻 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 + -