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

📄

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 3 页
字号:

Private Sub CxbbGrid_BeforeMoveColumn(ByVal Col As Long, Position As Long)           '网格列发生移动时自动交换网格索引信息
 
    
End Sub

Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)                '网格格式调整(Fixed)
    Dim iSumEndCol As Integer
    Select Case Button.Key
       Case "szxsxm"                                        '设置显示项目
        Dim frm As New Qr_ShowItemsFrm
        Set frm.vs = Me.CxbbGrid
        frm.iBeginCol = iSumEndCol + 1
        frm.Show 1
        Set frm = Nothing
    End Select
    
End Sub

Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
    
    Select Case Button.Key
    Case "ymsz"                                          '页面设置
        Dyymctbl.Show 1
    Case "yl"                                            '预 览
        bbyl (True)
    Case "dy"                                            '打 印
        bbyl (False)
    Case "cx"                                            '查 询
        Qr_RsBscCndFrm.Show 1
    Case "edit"
        CxbbGrid_DblClick
    Case "Order" '排序
        Dim frm As New Order_Frm
        With frm
            .Show 1
            If .bOrder = True Then
                If Trim(.str_SQLOrderBy) = "" Then
                    sSqlOrder = " Order by Rs_BasicInfo.EmpNo "
                Else
                    sSqlOrder = .str_SQLOrderBy
                End If
                ShowRecord Me.sSqlWhere
            End If
        End With
        Set frm = Nothing
    Case "Locate"
        With Locate_Frm
            Set .frm = Me
            .Show 1
        End With
    Case "Refresh"      '刷新
        ShowRecord sSqlWhere
    Case "bz"                                            '帮 助
        Call F1bz
    Case "fh"                                            '退 出
        Unload Me
    End Select
    
    
End Sub
Public Function Locate(sPerson As String) As Integer
    '根据工号或姓名定位人员,成功返回1,没有找到返回0,错误返回-1
    On Error GoTo ErrCtrl
    Dim i As Long, j As Long
    Dim iCol(1) As Integer
    Dim bFound As Boolean
    
    sPerson = UCase(Trim(sPerson))
    
    With Me.CxbbGrid
        If .Rows = .FixedRows Then
            Exit Function
        End If
        
        If GetCol(sFieldValue, iCol(0), iCol(1), Val(GridInf(1)) + 1) <> 1 Then
            MsgBox "无法找到工号和姓名列,定位失败!", vbOKOnly + vbCritical
            Exit Function
        End If
        bFound = False
        For j = 0 To 1
            If iCol(j) >= 0 And bFound = False Then
                 '从当前行的下一行找到末尾
                For i = .Row + 1 To .Rows - 1
                    If UCase(Trim(.TextMatrix(i, iCol(j)))) = sPerson Then
                        bFound = True
                        .Row = i
                        .TopRow = i
                        Exit For
                    End If
                Next i
                '如果没有找到,从数据开始行找到当前行
                If bFound = False Then
                    For i = .FixedRows To .Row
                        If UCase(Trim(.TextMatrix(i, iCol(j)))) = sPerson Then
                            bFound = True
                            .Row = i
                            .TopRow = i
                            '.Cell(flexcpBackColor, .Row, .FixedCols, .Row, .Cols - 1) = &HFFC0C0
                            Exit For
                        End If
                    Next i
                End If
            End If
        Next j
        
        If bFound = False Then
            Locate = 0
        Else
            Locate = 1
        End If
        
    End With
    Exit Function
ErrCtrl:
    Locate = -1
End Function

Public Function ShowRecord(sWhere As String)                                    '生成查询结果(Define)
    '显示数据
Dim sExec As String
Dim j As Integer
    On Error GoTo ErrCtrl
    
    
    Dim rs As New ADODB.Recordset
    Dim s As String
    Dim i As Long
    
    If Trim(sSqlWhere) = "" Or Trim(sSqlFrom) = "" Then
        Exit Function
    End If
    Me.MousePointer = 11
    sExec = " select Rs_BasicInfo.EmpID  as Rs_BasicInfo#EmpID " & Chr(10)
    
    ReDim sFieldValue(0)
    sFieldValue(0).FieldValueName = ""

    
    s = "select rtrim(TableName) as TableName " & Chr(10) _
        & ",rtrim(FieldName) as FieldName " & Chr(10) _
        & ",Width as FieldWidth " & Chr(10) _
        & ",FieldLength as FieldLength " & Chr(10) _
        & ",FieldDotL as FieldDotL " & Chr(10) _
        & ",YnShow as FieldIsShow " & Chr(10) _
        & ",FieldType as FieldType " & Chr(10) _
        & ",rtrim(ChName) as FieldNameC " & Chr(10) _
        & ",rtrim(CorTable) as CorTable " & Chr(10) _
        & ",rtrim(IndexCode) as IndexCode " & Chr(10) _
        & ",rtrim(IndexName) as IndexName " & Chr(10) _
        & "from  Rs_Items  " & Chr(10) _
        & "where (SID=1 or Rs=1) and FieldName<>'Pic' " _
        & "Order by Tab "


    '填充报表的其他字段信息
    Set rs = Cw_DataEnvi.DataConnect.Execute(s)
    With rs
        Do While Not .EOF()
            If sFieldValue(0).FieldName <> "" Then
                ReDim Preserve sFieldValue(UBound(sFieldValue) + 1)
            End If
            sFieldValue(UBound(sFieldValue)).FieldNameC = Trim(!FieldNameC)
            sFieldValue(UBound(sFieldValue)).FieldType = Trim(!FieldType)
            sFieldValue(UBound(sFieldValue)).FieldName = Trim(!TableName) & "." & Trim(!FieldName)
            sFieldValue(UBound(sFieldValue)).FieldWidth = Val(!FieldWidth & "")
            sFieldValue(UBound(sFieldValue)).FieldIsShow = !FieldIsShow
            sFieldValue(UBound(sFieldValue)).FieldLengthInt = !FieldLength - !FieldDotL
            sFieldValue(UBound(sFieldValue)).FieldLengthFra = !FieldDotL
            If Trim(!CorTable) <> "" Then
                sFieldValue(UBound(sFieldValue)).FieldValueName = Trim(!TableName) & "#" & Trim(!FieldName) & "#N"
                sExec = sExec & ", " & sFieldValue(UBound(sFieldValue)).FieldValueName & " =" _
                 & "(select " & Trim(!IndexName) & " from " & Trim(!CorTable) & " a where a." & Trim(!IndexCode) & "=" & Trim(!TableName) & "." & Trim(!FieldName) & ")" & Chr(10)
            Else
                sFieldValue(UBound(sFieldValue)).FieldValueName = Trim(!TableName) & "#" & Trim(!FieldName)
                sExec = sExec & ", " & sFieldValue(UBound(sFieldValue)).FieldName & " as " & sFieldValue(UBound(sFieldValue)).FieldValueName
            End If
            
            .MoveNext
        Loop
    End With
    rs.Close
        
    With Me.CxbbGrid
        '初始化网格
        .Redraw = False
        .Cols = Qslz
        .Cols = UBound(sFieldValue) + 1 + Qslz + 1
        .FixedCols = Qslz + 1
        .Rows = .FixedRows
        
        For i = Qslz + 1 To .Cols - 1
            .ColWidth(i) = (sFieldValue(i - Qslz - 1).FieldLengthInt + sFieldValue(i - Qslz - 1).FieldLengthFra) * 105
            .TextMatrix(.FixedRows - 1, i) = sFieldValue(i - Qslz - 1).FieldNameC
            .ColHidden(i) = IIf(sFieldValue(i - Qslz - 1).FieldIsShow, False, True)
            If sFieldValue(i - Qslz - 1).FieldType = DATA_NUMERIC Then
                .ColAlignment(i) = flexAlignRightCenter
                .ColFormat(i) = IIf(sFieldValue(i - Qslz - 1).FieldLengthFra = 0, "#,##0", "#,##0." & String(sFieldValue(i - Qslz - 1).FieldLengthFra, "0"))
            Else
                .ColAlignment(i) = flexAlignLeftCenter
                .ColFormat(i) = ""
            End If
            If UCase(sFieldValue(i - Qslz - 1).FieldName) = UCase("Rs_BasicInfo.YnStop") Then
                .ColDataType(i) = flexDTBoolean
            End If
            .FixedAlignment(i) = flexAlignCenterCenter
        Next i
        .ColWidth(Qslz) = 1000
        .ColAlignment(Qslz) = flexAlignRightCenter
        .ColFormat(Qslz) = ""
        .FixedAlignment(Qslz) = flexAlignCenterCenter
        .TextMatrix(.FixedRows - 1, Qslz) = "编号"
        
        sExec = sExec & Me.sSqlFrom & Me.sSqlWhere & sSqlOrder
'-----------------------------------------------
        Ed_EmpArInfoFrm.QuerySql = sExec
'-----------------------------------------------
        
        Set rs = Cw_DataEnvi.DataConnect.Execute(sExec)
        .Rows = .FixedRows + rs.RecordCount

        '初始化进度条
        Me.PB_Proc.Min = .FixedRows
        Me.PB_Proc.Max = .Rows + 1
        Me.PB_Proc.Value = Me.PB_Proc.Min
        Me.PB_Proc.Visible = True
        '填充数据
        For i = .FixedRows To .Rows - 1
            .RowHeight(i) = Sjhgd
            Me.PB_Proc.Value = i
            For j = Qslz + 1 To .Cols - 1
                If sFieldValue(j - Qslz - 1).FieldType = DATA_DATE Then
                    .TextMatrix(i, j) = Format(Trim(rs.Fields(Trim(sFieldValue(j - Qslz - 1).FieldValueName)) & ""), "yyyy-mm-dd")
                Else
                    .TextMatrix(i, j) = Trim(rs.Fields(Trim(sFieldValue(j - Qslz - 1).FieldValueName)) & "")
                End If
            Next j
            .TextMatrix(i, 0) = rs.Fields("Rs_BasicInfo#EmpID")
            .TextMatrix(i, Qslz) = i - .FixedRows + 1
            rs.MoveNext
        Next i
        rs.Close
        Me.PB_Proc.Visible = False
        .Redraw = True
    End With
    Set rs = Nothing
    Me.MousePointer = 0
    Exit Function
    
ErrCtrl:
    If rs.State = 1 Then
        rs.Close
    End If
    Set rs = Nothing
    Me.PB_Proc.Visible = False
    Me.CxbbGrid.Redraw = True
    Me.MousePointer = 0
    
End Function

Private Sub bbyl(bbylte As Boolean)                    '报表打印预览
    
    Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
    Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
    Bbxbtgs = 1                                         '报 表 小 标 题 行 数
    Bbbwhgs = 0                                          '报 表 表 尾 行 数
    ReDim Bbxbt(1 To Bbxbtgs)
    ReDim bbxbtzzxs(1 To Bbxbtgs)
    If Bbbwhgs <> 0 Then
        ReDim Bbbwh(1 To Bbbwhgs)
        ReDim Bbbwhzzxs(1 To Bbbwhgs)
    End If
    Bbzbt = ReportTitle
    
    bbxbtzzxs(1) = 0                                     '报表行组织形式(0-居左 1-居中 2-居右)
    Call Scyxsjb(CxbbGrid)                               '生成报表数据
    Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
    If Not bbylte Then
        Unload DY_Tybbyldy
    End If
    
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -