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

📄 billstart.cls

📁 金算盘软件代码
💻 CLS
📖 第 1 页 / 共 5 页
字号:
    Next i
    If frmName.cmdButton(0).Visible = False Then
        For i = 0 To frmName.cmdButton.Count - 1
            frmName.cmdButton(i).Visible = True
        Next i
    End If
    If Not frmName.grdCol.Visible Then
        frmName.grdCol.Visible = True
    End If
    For i = 0 To frmName.chkPrint.Count - 1
        frmName.chkPrint(i).Left = frmName.ScaleWidth - 5 * Screen.TwipsPerPixelX _
                                   - frmName.cmdButton(0).Width
        If frmName.chkPrint(i).Visible = False Then
            frmName.chkPrint(i).Visible = True
        End If
    Next i
    frmName.Refresh
End Sub
Private Sub TotalRowAdjust()
 '合计行位置及宽度及当前可视性调整
    Dim i As Integer
    Dim lngWidth As Long
    Dim lngLeft As Long
    Dim lngTop As Long
    Dim lngHeight As Long
    On Error Resume Next
    
    lngHeight = frmName.grdCol.RowHeight(0) - 5
    lngTop = frmName.lblNote(0).Top - lngHeight - 1 * Screen.TwipsPerPixelY

    For i = 0 To frmName.grdCol.Cols - 1
        If i > frmName.lblTotal.Count - 1 Then
            Exit For
        End If
        If i = 0 Then
            lngLeft = frmName.grdCol.Left + 1 * Screen.TwipsPerPixelX
            lngWidth = 4 * frmName.FontSize * 10
            frmName.lblTotal(0).Move lngLeft, lngTop, lngWidth, lngHeight
            frmName.lblTotal(0).Visible = True
        Else
            If frmName.grdCol.ColIsVisible(i) And frmName.grdCol.ColWidth(i) > 0 Then
                ' frmname.lblTotal(i) is visible
                If frmName.grdCol.ColPos(i) + frmName.grdCol.ColWidth(i) > frmName.grdCol.Width Then
                    lngLeft = frmName.grdCol.Left + frmName.grdCol.ColPos(i) + 2 * intSpace
                    lngWidth = IIf(frmName.grdCol.Width - frmName.grdCol.ColPos(i) - intGrdBorderWidth - 4 * intSpace > 0, _
                                    frmName.grdCol.Width - frmName.grdCol.ColPos(i) - intGrdBorderWidth - 4 * intSpace, 0)
                Else
                    lngLeft = frmName.grdCol.Left + frmName.grdCol.ColPos(i) + 2 * intSpace
                    lngWidth = IIf(frmName.grdCol.ColWidth(i) - 4 * intSpace > 0, _
                                    frmName.grdCol.ColWidth(i) - 4 * intSpace, 0)
                End If
            End If
            If frmName.grdCol.LeftCol = i Or (frmName.grdCol.LeftCol = 0 And i = 1) Then
                lngLeft = lngLeft + 5 * frmName.FontSize * 10
                lngWidth = lngWidth - 5 * frmName.FontSize * 10
            End If
            frmName.lblTotal(i).Move lngLeft, lngTop, lngWidth, lngHeight
            frmName.lblTotal(i).Alignment = IIf(ColProperty(i).lngCtrType = TCurrency, 1, 0)
            frmName.lblTotal(i).Visible = frmName.grdCol.ColIsVisible(i) And _
                                frmName.grdCol.ColWidth(i) > 0
        End If
    Next i
End Sub
Private Sub grdColWidthAdjust()
  Dim inti As Integer
  Dim lngSumWidthOfCols As Long
    frmName.grdCol.ColWidth(0) = 0
        
 '-----------------------
    lngSumWidthOfCols = 0
    For inti = 1 To frmName.grdCol.Cols - 1
        lngSumWidthOfCols = lngSumWidthOfCols + frmName.grdCol.ColWidth(inti)
    Next inti
    If lngSumWidthOfCols = 0 Then
        lngSumWidthOfCols = frmName.grdCol.Width
    End If
    If lngSumWidthOfCols < frmName.grdCol.Width - grdBorderWidth Then
        For inti = 0 To frmName.grdCol.Cols - 1
            frmName.grdCol.ColWidth(inti) = frmName.grdCol.ColWidth(inti) / lngSumWidthOfCols * (frmName.grdCol.Width)
        Next inti
    End If
End Sub


Public Sub ButtonLocal(ByVal lngRowNo As Long, ByVal lngColNo As Long, Optional ByVal blnCtrNotResize As Boolean = False)
 'CommandButton 的上下位置及当前可视性
 'GRD当前行上的粘贴控件上下左右位置调整及当前可视性
    GrdInputButtonLocal lngRowNo, lngColNo, blnCtrNotResize
'合计框
    TotalRowAdjust
'    及第三栏控件组
'    Special3Col blnHScroll, blnVScroll
End Sub
Private Sub GrdInputButtonLocal(ByVal lngRowNo As Long, ByVal lngColNo As Long, Optional ByVal blnCtrNotResize As Boolean = False)
'CommandButton 的上下位置及当前可视性
'GRD当前行上的粘贴控件上下左右位置调整及当前可视性
'blnCtrNotResize=true 时表示粘贴控件不改变大小
    Dim i As Integer
    Dim blnHscroll As Boolean
    Dim blnVscroll As Boolean
    Dim lngUsableHeight As Long    'GRID有效高度
    Dim lngUsableWidth As Long     'GRID有效宽度
    Dim lngL As Long, lngT As Long, lngW As Long, lngH As Long
    If Not My.blnCtrlBinding Then
        ' 未绑定grd输入控件状态
        Exit Sub
    End If
    If lngRowNo < frmName.grdCol.FixedRows Or lngRowNo > frmName.grdCol.Rows - 1 _
        Or lngColNo < 1 And lngColNo > frmName.grdCol.Cols - 1 Then
        Exit Sub
    End If
'   grd上粘贴的输入控件
    If ctrInput Is Nothing Then Exit Sub
    ctrInput.Visible = False
    
    If Not blnRowIsVisible(lngRowNo) Then
        Exit Sub
    End If
    
    ScrollBarExist blnHscroll, blnVscroll
    If blnHscroll Then
        lngUsableHeight = frmName.grdCol.Height - gclsEniv.HScrollHeight
    Else
        lngUsableHeight = frmName.grdCol.Height
    End If
    If blnVscroll Then
        lngUsableWidth = frmName.grdCol.Width - gclsEniv.VScrollWidth
    Else
        lngUsableWidth = frmName.grdCol.Width - intGrdBorderWidth
    End If
      
    If frmName.grdCol.ColIsVisible(frmName.grdCol.Col) And frmName.grdCol.ColWidth(frmName.grdCol.Col) > 0 Then
        If Not blnCtrNotResize Then
            lngT = frmName.grdCol.Top + frmName.grdCol.RowPos(lngRowNo) + 0 * intSpace
            lngL = frmName.grdCol.Left + frmName.grdCol.ColPos(lngColNo) + 0 * intSpace
            If frmName.grdCol.ColPos(lngColNo) + frmName.grdCol.ColWidth(lngColNo) > lngUsableWidth Then
                lngW = lngUsableWidth - frmName.grdCol.ColPos(lngColNo) - 2 * intSpace
            Else
                lngW = IIf(frmName.grdCol.ColWidth(lngColNo) - 2 * intSpace > 0, _
                                        frmName.grdCol.ColWidth(lngColNo) - 2 * intSpace, 0)
            End If
'            If frmname.grdCol.RowPos(lngRowNo) + frmname.grdCol.RowHeight(lngRowNo) > lngUsableHeight Then
'                lngH = lngUsableHeight - frmname.grdCol.RowPos(lngRowNo) - 4 * intSpace
'            Else
'                lngH = frmname.grdCol.RowHeight(lngRowNo) - 1 * intSpace
'            End If
            If frmName.grdCol.RowPos(lngRowNo) + frmName.grdCol.RowHeight(0) > lngUsableHeight Then
                lngH = lngUsableHeight - frmName.grdCol.RowPos(lngRowNo) - 4 * intSpace
            Else
                lngH = frmName.grdCol.RowHeight(0) - 0 * intSpace
            End If
            If lngT < frmName.grdCol.Top + frmName.grdCol.RowHeight(0) Or _
                lngT + lngH > frmName.grdCol.Top + lngUsableHeight Or _
                lngL < frmName.grdCol.Left Or _
                lngL > frmName.grdCol.Left + lngUsableWidth Then
                Exit Sub
            Else
                If lngW <= 0 Or lngH <= 0 Then
                    ctrInput.Visible = False
                Else
                    ctrInput.Move lngL, lngT, lngW, lngH
                    ctrInput.Visible = True
                End If
            End If
        Else
            If frmName.grdCol.Col >= 3 Then
                If frmName.grdCol.ColPos(lngColNo) + frmName.grdCol.ColWidth(lngColNo) > lngUsableWidth Then
                    lngW = lngUsableWidth - frmName.grdCol.ColPos(lngColNo) - 2 * intSpace
                Else
                    lngW = IIf(frmName.grdCol.ColWidth(lngColNo) - 2 * intSpace > 0, _
                                        frmName.grdCol.ColWidth(lngColNo) - 2 * intSpace, 0)
                End If
                If lngW < ctrInput.Width Then lngW = ctrInput.Width
            Else
                lngW = ctrInput.Width
            End If
            lngT = frmName.grdCol.Top + frmName.grdCol.RowPos(lngRowNo) + 0 * intSpace
            lngL = frmName.grdCol.Left + frmName.grdCol.ColPos(lngColNo) + 0 * intSpace
            lngH = ctrInput.Height
                        
            If lngL + lngW > frmName.grdCol.Left + lngUsableWidth Then
                lngL = frmName.grdCol.Left + lngUsableWidth - lngW
            End If
            If lngT < frmName.grdCol.Top + frmName.grdCol.RowHeight(0) Or _
                lngT > frmName.grdCol.Top + lngUsableHeight Or _
                lngL < frmName.grdCol.Left Or _
                lngL > frmName.grdCol.Left + lngUsableWidth Then
                Exit Sub
            Else
                ctrInput.Move lngL, lngT, lngW, lngH
                ctrInput.Visible = True
            End If
        End If
    End If
    
'    Special3Col blnHScroll, blnVScroll
    ctrInput.ZOrder 0
End Sub

Public Sub InsertARow(Optional ByVal blnBeforeOrAppend As Boolean = True)
'参数: blnBeforeOrAppend=True 时在当前行前插入一行
'       blnBeforeOrAppend=False时在最后添加一行

    Dim i%, j%
    With frmName.grdCol
        .Redraw = False
        If .Rows = 1 Then
            blnBeforeOrAppend = False
        End If
        If blnBeforeOrAppend Then
            .Rows = .Rows + 1
            For i% = .Rows - 1 To .Row + 1 Step -1
                For j% = 0 To .Cols - 1
                    .TextMatrix(i%, j%) = .TextMatrix(i% - 1, j%)
                Next j%
            Next i%
            For j% = 0 To .Cols - 1
                .TextMatrix(.Row, j%) = ""
            Next j%

        Else
            .Rows = .Rows + 1
        End If
        Dim lngR As Long, lngC As Long
        lngR = .Row
        lngC = .Col
        .Row = .Rows - 1
        For i% = 1 To .Cols - 1
            If ColProperty(i%).blnReadOnly Then
                .Col = i%
                .CellBackColor = RGB(192, 192, 192)
            End If
        Next i%
        .Row = lngR
        .Col = lngC
        .Redraw = True
        If .Rows = 2 Then
            grdCol_EnterCell
        End If
    End With
    BuildNoteMsg True
End Sub
Public Sub CopyAccountProperty(ByVal lngRow As Long)
    Dim intB As Integer
    Dim intF As Integer
    Dim recTmp As Recordset
    Set recTmp = gclsBase.BaseDB.OpenRecordset( _
        "SELECT * FROM Account WHERE lngAccountID=" & _
                            C2Lng(frmName.grdCol.TextMatrix(lngRow, ColProperty(2).bytGrdIDCol)), _
                            dbOpenSnapshot)
    If recTmp Is Nothing Then
        Exit Sub
    End If
    If recTmp.RecordCount = 0 Then
        recTmp.Close
        Exit Sub
    End If
    With recTmp
            .MoveFirst
                    
        '币种
        intB = 5
        intF = 12
        If C2Lng(frmName.grdCol.TextMatrix(lngRow, ColProperty(intB).bytGrdIDCol)) <= 1 Then
            frmName.grdCol.TextMatrix(lngRow, intB) = frmName.lblField(intF).Caption
            frmName.grdCol.TextMatrix(lngRow, ColProperty(intB).bytGrdIDCol) = Field(intF).lngID
        End If
        '汇率
        intB = 6
        intF = 11
        frmName.grdCol.TextMatrix(lngRow, intB) = frmName.lblField(intF).Caption
        '单位
        If !blnIsCustomer Then
            frmName.grdCol.TextMatrix(lngRow, 10) = frmName.lblHead(1).Caption
            frmName.grdCol.TextMatrix(lngRow, ColProperty(10).bytGrdIDCol) = frmName.lblHead(0).Tag
        Else
            frmName.grdCol.TextMatrix(lngRow, 10) = ""
            frmName.grdCol.TextMatrix(lngRow, ColProperty(10).bytGrdIDCol) = "1"
        End If
        '部门
        intB = 11
        intF = 4
        If !blnIsDepartment Then
            frmName.grdCol.TextMatrix(lngRow, intB) = frmName.lblField(intF).Caption
            frmName.grdCol.TextMatrix(lngRow, ColProperty(intB).bytGrdIDCol) = Field(intF).lngID
        Else
            frmName.grdCol.TextMatrix(lngRow, intB) = ""
            frmName.grdCol.TextMatrix(lngRow, ColProperty(intB).bytGrdIDCol) = "1"
        End If
        '职员
        intB = 12
        intF = 3
        If !blnIsEmployee Then
            frmName.grdCol.TextMatrix(lngRow, intB) = frmName.lblField(intF).Caption
            frmName.grdCol.TextMatrix(lngRow, ColProperty(intB).bytGrdIDCol) = Field(intF).lngID
        Else
            frmName.grdCol.TextMatrix(lngRow, intB) = ""
            frmName.grdCol.TextMatrix(lngRow, ColProperty(intB).bytGrdIDCol) = "1"
        End If
        '工程
        intB = 13
        intF = 8
        If !blnIsJob Then
            frmName.grdCol.TextMatrix(lngRow, intB) = frmName.lblField(intF).Caption
            frmName.grdCol.TextMatrix(lngRow, ColProperty(intB).bytGrdIDCol) = Field(intF).lngID
        Else
            frmName.grdCol.TextMatrix(lngRow, intB) = ""
            frmName.grdCol.TextMatrix(lngRow, ColProperty(intB).bytGrdIDCol) = "1"
        End If
        '统计
        intB = 14
        intF =

⌨️ 快捷键说明

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