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

📄 frmyh_yhdzdlr.frm

📁 一个用VB写的财务软件源码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
      Caption         =   "编辑(&E)"
      Begin VB.Menu mnuNew 
         Caption         =   "增加"
         Shortcut        =   ^N
      End
      Begin VB.Menu mnuSave 
         Caption         =   "保存"
         Shortcut        =   ^S
      End
      Begin VB.Menu mnuCancel 
         Caption         =   "取消"
         Shortcut        =   ^C
      End
      Begin VB.Menu mnuDelete 
         Caption         =   "删除"
         Shortcut        =   ^D
      End
      Begin VB.Menu mnuLine2 
         Caption         =   "-"
      End
      Begin VB.Menu mnuFilter 
         Caption         =   "筛选"
         Shortcut        =   ^L
      End
   End
   Begin VB.Menu mnuHelp 
      Caption         =   "帮助(&H)"
   End
End
Attribute VB_Name = "frmYH_Yhdzdlr"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'2001.01.22肖兆芹修改
Option Explicit


'以下一段常量用于窗体frm_print的CELL打印
'-------------------------------------------------------------
'Cell单元格对齐方式: 33 = 左对齐, 34 = 右对齐, 36 = 居中对齐;

Const ROWS_PAGE = 28                '每页行数

Const COL_START = 1                 '开始列
Const COL_RQ = 1                    '日期
Const COL_JSFS = 2                  '结算方式
Const COL_BILL_NUMBER = 3           '票号
Const COL_DEBIT_MONEY = 4           '借方金额
Const COL_CREDIT_MONEY = 5          '贷方金额
Const COL_BALANCE = 6               '余额
Const COL_ZY = 7                    '摘要
Const COL_END = 7                   '结束列

Const ROW_TITLE = 1                 '标题
Const ROW_BLANK = 2                 '空白行
Const ROW_SUBJNAME = 3              '页眉
Const ROW_HEAD1 = 4                 '页标头行
Const ROW_GRID_START = 5            '表格开始行

''''Const CRB_LINE = vbBlack            '表格线颜色

'缺省列宽
'CELL  1单元长度 = 3.8mm
Const ColWidth = "90,110,100,160,160,160,240"

Dim sEnterName As String                            '单位名称
Dim IsChangeCurrentTable As Boolean                 '是否改变当前表格中的内容
Dim frmP As frmPrint                                '通用打印窗体(CELL)
'-------------------------------------------------------------

Dim Myfrmcx As frmYH_Yhcxtj
Dim rstTemp As ADODB.Recordset
Dim adoCmd As ADODB.Command
Dim sSQL As String
Dim sSQLTemp As String
Dim i As Integer
Dim j As Integer
Dim Yhdzqyrq As String          '银行对账启用日期
Dim OldRow As Integer           '当前获得焦点的单元格所在行数
Dim ErrorCol As Integer         '存放出错列
Dim NewRow As Integer           '表格移动到下一个获得焦点的单元格的行数
Dim NewCol As Integer           '表格移动到下一个获得焦点的单元格的列数
Dim CurrentRowNum As Integer    '存放新增表格行的行数
Dim IsModify As Boolean         '判断当前行的内容是否被修改
Dim IsDateModify As Boolean     '判断当前行的日期是否被修改, 用于表格自动按日期排序
Dim IsRefresh As Boolean        '当移动单元格时判断当前是否在刷新表格
Dim IsDelete As Boolean         '判断当前是否在删除状态
Dim iYhqcye As Double          '银行对账期初余额

Dim frmH_Summ As New frmIN_Summary


Private Sub dtpEdit_Change()
mfgYhdzdlr.TextMatrix(mfgYhdzdlr.row, 1) = dtpEdit.value
End Sub

Private Sub form_load()
    Dim iYhtzqye As Double             '银行对账启用时的调整前余额
    Dim iYhqcLjj As Double             '银行对账启用时未核销的对账单的累计借方金额
    Dim iYhqcLjd As Double             '银行对账启用时未核销的对账单的累计贷方金额
    Dim iYhljjhx As Double             '对账单日期大于启用日期的已核销的对账单借方金额累计数
    Dim iYhljdhx As Double             '对账单日期大于启用日期的已核销的对账单贷方金额累计数
    
    OldRow = 0
    iYhqcye = 0
    iYhtzqye = 0
    iYhqcLjj = 0
    iYhqcLjd = 0
    iYhljjhx = 0
    iYhljdhx = 0
    
    IsModify = False
    IsDateModify = False
    IsDelete = False
    IsRefresh = False
    IsChangeCurrentTable = True
    
    Set Myfrmcx = New frmYH_Yhcxtj
    Set adoCmd = New ADODB.Command
    
    Load Myfrmcx
    
    adoCmd.ActiveConnection = glo.cnnMain
    Set rstTemp = New ADODB.Recordset
    rstTemp.CursorLocation = adUseClient
    sSQLTemp = "SELECT * FROM tZW_yhdzd" & glo.sOperateYear & _
                " WHERE kmdm = '" & frmYH_Yhkmxz.kmdm & _
                "'AND (qcbz = 0 OR (qcbz = 1 and hxbz = 0) OR (qcbz = 2 AND hxbz =-1))"
    rstTemp.Open sSQLTemp, glo.cnnMain, adOpenStatic, adLockReadOnly
    With rstTemp
        If .RecordCount <> 0 Then
            .MoveFirst
            Do Until .EOF
                If .Fields("qcbz").value = 0 Then
                    iYhtzqye = .Fields("je").value
                ElseIf .Fields("qcbz").value = 1 Then
                        If .Fields("fx").value = "借" Then
                            iYhqcLjj = iYhqcLjj + .Fields("je").value
                        Else
                            iYhqcLjd = iYhqcLjd + .Fields("je").value
                        End If
                ElseIf .Fields("qcbz").value = 2 Then
                        If .Fields("fx").value = "借" Then
                            iYhljjhx = iYhljjhx + .Fields("je").value
                        Else
                            iYhljdhx = iYhljdhx + .Fields("je").value
                        End If
                End If
                .MoveNext
            Loop
        End If
    End With
'银行期初余额 等于 银行对账启用时调整前余额 加 大于启用日期的已核销对账单的累计贷方余额
' 减 银行对账启用时未核销对账单的累计贷方余额
    iYhqcye = iYhtzqye '+ (iYhljdhx - iYhljjhx) - (iYhqcLjd - iYhqcLjj)
    lblKmmc.Caption = "科目:" & frmYH_Yhkmxz.Kmmc & "(" & frmYH_Yhkmxz.kmdm & ")"
    lblYhdzdqcye.Caption = "银行期初余额:" & Format(iYhqcye, "##,##0.00")
    
    Set rstTemp = New ADODB.Recordset
    rstTemp.CursorLocation = adUseClient
    sSQLTemp = "SELECT * FROM tZW_jsfs" & glo.sOperateYear & " WHERE bEnd =-1 order by cCode"
    rstTemp.Open sSQLTemp, glo.cnnMain, adOpenStatic, adLockReadOnly
    With rstTemp
        If .RecordCount <> 0 Then
            .MoveFirst
            cboEdit.AddItem "    "
            Do Until .EOF
                cboEdit.AddItem Trim$("" & .Fields("cCode").value) & " " & Trim$("" & .Fields("cName").value)
                .MoveNext
            Loop
        End If
    End With
    Set rstTemp = New ADODB.Recordset
    rstTemp.CursorLocation = adUseClient
    sSQLTemp = "SELECT * FROM tZW_Yhdzqyrq WHERE kmdm = '" & frmYH_Yhkmxz.kmdm & "'"
    rstTemp.Open sSQLTemp, glo.cnnMain, adOpenStatic, adLockReadOnly
    With rstTemp
        If .RecordCount <> 0 Then
            Yhdzqyrq = Format(.Fields("qyrq").value, "yyyy-mm-dd")
        End If
    End With
    rstTemp.Close
    Label5.Caption = "启用日期:" + Yhdzqyrq
    Set rstTemp = Nothing
    cboEdit.ListIndex = 0
    tBr.Buttons("save").Enabled = False
    tBr.Buttons("cancel").Enabled = False
    mnuSave.Enabled = False
    mnuCancel.Enabled = False
    Call SetHead
   ' sSQL = "SELECT * FROM tZW_yhdzd" & glo.sOperateYear & _
            " WHERE kmdm = '" & frmYH_Yhkmxz.kmdm & _
            "' AND qcbz <> 0 and hxbz = 0 and rq>=" + GetDateString(g_FLAT, Format(Yhdzqyrq, "yyyy-mm-dd")) + " ORDER BY rq,jsfsCode,Bill"
   sSQL = "SELECT * FROM tZW_yhdzd" & glo.sOperateYear & _
            " WHERE kmdm = '" & frmYH_Yhkmxz.kmdm & _
            "' AND qcbz <> 0  and rq>=" + GetDateString(g_FLAT, Format(Yhdzqyrq, "yyyy-mm-dd")) + " ORDER BY rq,jsfsCode,Bill"
   
    Call FillGrid(sSQL)
    
    '------------------------------
    
    '得到当前账套的单位名称
    sEnterName = GetDWMC
    If sEnterName = "" Then
        MsgBox "缺少单位名称!", vbInformation
        Exit Sub
    End If
    
    '根据当前MSFLEXGRID表格生成CELL表格
    If IsChangeCurrentTable Then
        IsChangeCurrentTable = False
        Call DrawCellTable
    End If
    '------------------------------
    
End Sub

'设置表头
Private Sub SetHead()
    With mfgYhdzdlr
'将表格的第一列隐藏, 第一列用于存放银行对账单表的主键id
        .ColWidth(0) = 0
        .ColWidth(1) = 0
        .ColWidth(2) = 1300
        .ColWidth(3) = 1200
        .ColWidth(4) = 1200
        .ColWidth(5) = 1800
        .ColWidth(6) = 1800
        .ColWidth(7) = 1800
        .ColWidth(8) = 3000
        .ColAlignment(0) = 4
        .ColAlignment(1) = 4
        .ColAlignment(2) = 4
        .ColAlignment(3) = 1
        .ColAlignment(4) = 4
        .ColAlignment(5) = 7
        .ColAlignment(6) = 7
        .ColAlignment(7) = 7
        .ColAlignment(8) = 1
        .row = 0
        .RowHeight(0) = 400
        For j = 0 To .Cols - 1
            .col = j
            .CellFontSize = 11
            .CellAlignment = 4
        Next j
    End With
    cmdHelp.Height = 300
    cmdHelp.Width = 320
    dtpEdit.value = Date
End Sub

'从银行对账单表中取出期初对账单, 然后填充表格;
Private Sub FillGrid(ByVal sSQL As String)
    Dim iYhdzdye As Double
    mfgYhdzdlr.Redraw = False
    IsRefresh = True
    Set rstTemp = New ADODB.Recordset
    rstTemp.CursorLocation = adUseClient
    With rstTemp
        .Open sSQL, glo.cnnMain, adOpenStatic, adLockReadOnly
        mfgYhdzdlr.Rows = 1
        If .RecordCount = 0 Then
            tBr.Buttons("delete").Enabled = False
            mnuDelete.Enabled = False
        Else
            .MoveFirst
            For i = 1 To .RecordCount
                If .Fields("fx").value = "借" Then
                    If i = 1 Then
                        iYhdzdye = GetQc(.Fields("ID").value, .Fields("Rq").value) - .Fields("je").value
                    Else
                        iYhdzdye = Val(Format(mfgYhdzdlr.TextMatrix(i - 1, 7), "###0.00")) _
                                    - .Fields("je").value
                    End If
                    mfgYhdzdlr.AddItem .Fields("id").value & vbTab & _
                                        .Fields("qcbz").value & vbTab & _
                                        Format(.Fields("rq").value, "yyyy-mm-dd") & vbTab & _
                                        Trim$("" & .Fields("jsfsCode").value) & " " & Trim$("" & .Fields("jsfsname").value) & vbTab & _
                                        Trim$("" & .Fields("bill").value) & vbTab & _
                                        Format(.Fields("je").value, "##,##0.00") & vbTab & _
                                        "" & vbTab & _
                                        Format(iYhdzdye, "##,##0.00") & vbTab & _
                                        Trim$("" & .Fields("zy").value) & vbTab & i
                       mfgYhdzdlr.RowHeight(i) = cboEdit.Height
                   If .Fields("hxbz") <> 0 Then
                    mfgYhdzdlr.RowHeight(i) = 0
                   End If
                Else
                    If i = 1 Then
                        iYhdzdye = GetQc(.Fields("ID").value, .Fields("Rq").value) + .Fields("je").value
                    Else
                        iYhdzdye = Val(Format(mfgYhdzdlr.TextMatrix(i - 1, 7), "###0.00")) _
                                    + .Fields("je").value
                    End If
                    mfgYhdzdlr.AddItem .Fields("id").value & vbTab & _
                                        .Fields("qcbz").value & vbTab & _
                                        Format(.Fields("rq").value, "yyyy-mm-dd") & vbTab & _
                                        Trim$("" & .Fields("jsfsCode").value) & " " & Trim$("" & .Fields("jsfsname").value) & vbTab & _
                                        Trim$("" & .Fields("bill").value) & vbTab & _
                                        "" & vbTab & _
                                        Format(.Fields("je").value, "##,##0.00") & vbTab & _
                                        Format(iYhdzdye, "##,##0.00") & vbTab & _
                                        Trim$("" & .Fields("zy").value) & vbTab & i
                    mfgYhdzdlr.RowHeight(i) = cboEdit.Height
                   If .Fields("hxbz") <> 0 Then
                    mfgYhdzdlr.RowHeight(i) = 0
                   End If
                End If
                If .Fields("lqbz").value > 0 Then
                    mfgYhdzdlr.row = i
                    For j = 0 To mfgYhdzdlr.Cols - 1
                        mfgYhdzdlr.col = j
                        mfgYhdzdlr.CellBackColor = &HFFFFC0
                    Next j
                End If
                .MoveNext
            Next i
        End If
    End With
    With mfgYhdzdlr
        For i = 1 To mfgYhdzdlr.Rows - 1
            .RowHeight(i) = cboEdit.Height
        Next i
        .row = 0
        .col = 0
    End With
    mfgYhdzdlr.Redraw = True
    IsRefresh = False
End Sub

Private Sub cboEdit_KeyDown(KeyCode As Integer, Shift As Integer)

⌨️ 快捷键说明

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