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

📄 frmyh_dwrjzqc.frm

📁 一个用VB写的财务软件源码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
                                        .Fields("jlhm").value & vbTab & _
                                        Format(.Fields("pzrq").value, "yyyy-mm-dd") & vbTab & _
                                        .Fields("pzzl").value & vbTab & _
                                        .Fields("pzbh").value & vbTab & _
                                        Trim$("" & .Fields("yhdz_jsfsCode").value) & " " & Trim$("" & .Fields("yhdz_jsfs").value) & vbTab & _
                                        Trim$("" & .Fields("yhdz_Bill").value) & vbTab & _
                                        Format(.Fields("je").value, "##,##0.00") & vbTab & _
                                        "" & vbTab & _
                                        Format(.Fields("yhdz_Date").value, "yyyy-mm-dd") & vbTab & _
                                        Trim$("" & .Fields("pzzy").value) & vbTab & i
                Else
                    mfgDwrjzqc.AddItem .Fields("kjqj").value & vbTab & _
                                        .Fields("jlhm").value & vbTab & _
                                        Format(.Fields("pzrq").value, "yyyy-mm-dd") & vbTab & _
                                        .Fields("pzzl").value & vbTab & _
                                        .Fields("pzbh").value & vbTab & _
                                        Trim$("" & .Fields("yhdz_jsfsCode").value) & " " & Trim$("" & .Fields("yhdz_jsfs").value) & vbTab & _
                                        Trim$("" & .Fields("yhdz_Bill").value) & vbTab & _
                                        "" & vbTab & _
                                        Format(.Fields("je").value, "##,##0.00") & vbTab & _
                                        Format(.Fields("yhdz_Date").value, "yyyy-mm-dd") & vbTab & _
                                        Trim$("" & .Fields("pzzy").value) & vbTab & i
                End If
                If .Fields("yhdz_lqbz").value > 0 Then
                    mfgDwrjzqc.Row = i
                    For j = 0 To mfgDwrjzqc.Cols - 1
                        mfgDwrjzqc.Col = j
                        mfgDwrjzqc.CellBackColor = &HFFFFC0
                    Next j
                End If
                .MoveNext
            Next i
        End If
    End With
    With mfgDwrjzqc
        For i = 1 To mfgDwrjzqc.Rows - 1
            .RowHeight(i) = cboEdit.Height
        Next i
        .Row = 0
        .Col = 0
    End With
    mfgDwrjzqc.Redraw = True
    IsRefresh = False
End Sub

Private Sub cboEdit_KeyDown(KeyCode As Integer, Shift As Integer)
    With mfgDwrjzqc
        Select Case KeyCode
            Case vbKeyLeft
                If .Col > 0 Then
                    .Col = .Col - 1
                End If
            Case vbKeyRight
                If .Col < .Cols - 1 Then
                    .Col = .Col + 1
                End If
            Case vbKeyReturn
                If .Col < .Cols - 1 Then
                    .Col = .Col + 1
                End If
        End Select
    End With
End Sub


Private Sub cmdHelp_Click()
    frmH_Summ.ubSelectStatus = True
    frmH_Summ.Show 1, Me
    txtEdit.text = frmH_Summ.txtName
End Sub

'根据所按方向键改变表格的焦点
Private Sub dtpEdit_KeyDown(KeyCode As Integer, Shift As Integer)
 If KeyCode = 13 Then
    With mfgDwrjzqc
          dtpEdit.Visible = False
         .TextMatrix(.Row, .Col) = Format(dtpEdit.value, "YYYY-MM-DD")
         If .Col < .Cols - 1 Then
            .Col = .Col + 1
         End If
        .Refresh
      End With
   End If
End Sub

'当进入新的单元格时, 判断新的单元格的行数是否于老的单元格行数不同并且老的单元格行数不等于0
'并且当前不是在表格刷新状态并且当前不是在删除状态,
'如果是, 判断老的单元格所在行的数据是否合法,
'如果合法, 判断老的单元格所在行的数据是否被修改并且当前行不是在增加状态,
'如果条件为真, 则修改数据库中表的内容
Private Sub mfgDwrjzqc_EnterCell()
    On Error GoTo err_handle
    With mfgDwrjzqc
        If .Visible And .Row > 0 And Not IsRefresh And Not IsDelete Then
            NewRow = .Row
            '单元格所在行改变后,
            If NewRow <> OldRow Then
                NewCol = .Col
                '当不是在新增状态时
                '进入某一数据行时,先赋值给变量;
                If tbr.Buttons("new").Enabled Then
                    If OldPzzl = "" Then
                        OldPzzl = .TextMatrix(.Row, 3)
                    End If
                    If OldPzbh = "" Then
                        OldPzbh = .TextMatrix(.Row, 4)
                    End If
                End If
                If OldRow > 0 Then
                    If Not IsValidate Then
                        IsRefresh = True
                        .Row = OldRow
                        .Col = ErrorCol
                        IsRefresh = False
                        Exit Sub
                    Else
                        If IsModify Then
                            If NewRow < OldRow Then
                                If Not tbr.Buttons("new").Enabled Then
                                    Call InsertCurrentRow
                                    With tbr
                                        .Buttons("print").Enabled = True
                                        .Buttons("preview").Enabled = True
                                        .Buttons("new").Enabled = True
                                        .Buttons("save").Enabled = False
                                        .Buttons("cancel").Enabled = False
                                        .Buttons("delete").Enabled = True
                                        .Buttons("filter").Enabled = True
                                        .Buttons("exit").Enabled = True
                                        mnuPrint.Enabled = True
                                        mnuPreview.Enabled = True
                                        mnuNew.Enabled = True
                                        mnuSave.Enabled = False
                                        mnuCancel.Enabled = False
                                        mnuDelete.Enabled = True
                                        mnuFilter.Enabled = True
                                        mnuExit.Enabled = True
                                    End With
                                Else
                                    Call UpdateCurrentRow
                                End If
                            Else
                                If Not tbr.Buttons("new").Enabled Then
                                    Call InsertCurrentRow
                                    OldPzzl = .TextMatrix(OldRow, 3)
                                    OldPzbh = .TextMatrix(OldRow, 4)
                                Else
                                    Call UpdateCurrentRow
                                End If
                            End If
                        End If
                        IsModify = False
                        If IsDateModify Then
                            IsDateModify = False
                            Call AutoDateSort
                        End If
                        If tbr.Buttons("new").Enabled Then
                            OldPzzl = .TextMatrix(.Row, 3)
                            OldPzbh = .TextMatrix(.Row, 4)
                        End If
                    End If
                End If
                '存入当前行的凭证种类、凭证日期;
            End If
        End If
    End With
    mfgDwrjzqc_GotFocus1
    Exit Sub
err_handle:
 dtpEdit.Visible = False
 cboEdit.Visible = False
 txtEdit.Visible = False
 txtPjrq.Visible = False
End Sub

'表格中的单元格获得焦点后, 动态的移动相应的控件到当前的单元格;
Private Sub mfgDwrjzqc_GotFocus1()
   On Error GoTo err_handle
    With mfgDwrjzqc
        If .Visible And .Row > 0 And .CellBackColor <> &HFFFFC0 And Not IsRefresh And Not IsDelete Then
            Select Case True
                Case .Col = 2
                    dtpEdit.Move .Left + .CellLeft, .Top + .CellTop, .cellWidth, .cellHeight
                    dtpEdit.Visible = True
                    
                    If .text <> "" Then
                        dtpEdit.value = .text
                    ElseIf .Row > 1 Then
                        dtpEdit.value = CDate(.TextMatrix(.Row - 1, .Col))
                    Else
                        dtpEdit.value = Date
                    End If
                    dtpEdit.SetFocus
                Case .Col = 3, .Col = 5
                    cboEdit.Move .Left + .CellLeft, .Top + .CellTop, .cellWidth
                    cboEdit.Visible = True
                    cboEdit.SetFocus
                 'for循环功能: 找出与表格中选中的结算方式相匹配的组合列表框内容;
                    Call FillCbo
                Case .Col = 4, .Col = 6
                    txtEdit.Move .Left + .CellLeft, .Top + .CellTop, .cellWidth, .cellHeight
                    txtEdit.Visible = True
                    txtEdit.SetFocus
                    txtEdit.text = .text
                    
                Case .Col = 7 Or .Col = 8
                    txtEdit.Move .Left + .CellLeft, .Top + .CellTop, .cellWidth, .cellHeight
                    txtEdit.Visible = True
                    txtEdit.SetFocus
                    txtEdit.text = Format(.text, "###0.00")
                Case .Col = 9
                    txtPjrq.Move .Left + .CellLeft, .Top + .CellTop, .cellWidth, .cellHeight
                    txtPjrq.Visible = True
                    txtPjrq.SetFocus
                    If .text <> "" Then
                        txtPjrq.text = .text
                    Else
                        txtPjrq.text = "____-__-__"
                    End If
                Case .Col = 10
                    txtEdit.Move .Left + .CellLeft, .Top + .CellTop, .cellWidth, .cellHeight
                    txtEdit.Visible = True
                    txtEdit.SetFocus
                    txtEdit.text = .text
                    cmdHelp.Move .Left + .CellLeft + .cellWidth - cmdHelp.Width, .Top + .CellTop + .cellHeight - cmdHelp.Height
                    cmdHelp.Visible = True
            End Select
        End If
    End With
 Exit Sub
err_handle:
 dtpEdit.Visible = False
 cboEdit.Visible = False
 txtEdit.Visible = False
 txtPjrq.Visible = False
End Sub

'根据当前获得焦点的单元格是凭证类别还是结算方式, 填充相应的内容;
Private Sub FillCbo()
    With mfgDwrjzqc
        Select Case True
            Case .Col = 3
                cboEdit.Clear
                cboEdit.AddItem " "
                For i = 1 To UBound(PzlbArray)
                    cboEdit.AddItem PzlbArray(i), i - 1
                Next i
                cboEdit.ListIndex = -1
                For i = 0 To cboEdit.ListCount - 1
                    If Trim(cboEdit.List(i)) = Trim(.text) Then
                        cboEdit.ListIndex = i
                        Exit For
                    End If
                Next i
            Case .Col = 5
                cboEdit.Clear
                For i = 1 To UBound(JsfsArray)
                    cboEdit.AddItem JsfsArray(i), i - 1
                Next i
                cboEdit.ListIndex = -1
                For i = 0 To cboEdit.ListCount - 1
                    If Trim(cboEdit.List(i)) = Trim(.text) Then
                        cboEdit.ListIndex = i
                        Exit For
                    End If
                Next i
        End Select
    End With
End Sub

'离开当前单元格处理
Private Sub mfgDwrjzqc_LeaveCell()
   On Error GoTo err_handle
    With mfgDwrjzqc
        If .Visible And .Row > 0 And Not IsRefresh And Not IsDelete Then
    '赋值当前单元格所在的行数给变量oldrow;
            OldRow = .Row
    '隐藏当前表格中活动的控件 ;

            Select Case True
                Case dtpEdit.Visible
                    If .text <> Format(dtpEdit.value, "yyyy-mm-dd") Then
                        .text = Format(dtpEdit.value, "yyyy-mm-dd")
                        IsModify = True
                        IsDateModify = True
                    End If
                    dtpEdit.Visible = False
                Case cboEdit.Visible
                    If .text <> Trim(cboEdit.text) Then
                        .text = Trim(cboEdit.text)
                        IsModify = True
                    End If
                    cboEdit.Visible = False
                Case txtEdit.Visible, cmdHelp.Visible
                    If .Col = 4 Then
                        If .text <> Format(txtEdit.text, "0000") Then
                            .text = Format(txtEdit.text, "0000")
                            IsModify = True
                        End If
                        txtEdit.Visible = False
                        cmdHelp.Visible = False
                    ElseIf .Col = 7 Then
                        If .text <> Format(txtEdit.text, "##,##0.00") Then
                            If Val(Format(txtEdit.text, "##,##0.00")) = 0 Then
                                .text = ""
                            Else

⌨️ 快捷键说明

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