📄 frmbankaccount.frm
字号:
End If
End If
Case vbKeyUp
For i = msgBook.Row - 1 To 1 Step -1
If msgBook.RowHeight(i) > 0 Then Exit For
Next i
' msgBook.SetFocus
If i > 0 Then msgBook.Row = i
Case vbKeyDown
For i = msgBook.Row + 1 To msgBook.Rows - 1
If msgBook.RowHeight(i) > 0 Then Exit For
Next i
If i < msgBook.Rows Then
' msgBook.SetFocus
msgBook.Row = i
End If
Case vbKeySpace
dteInput.DropDownPanel
Case vbKeyLeft
If dteInput.SelStart = 0 Then
If Not blnIsLeft Then
blnIsLeft = True
Else
msgBook.SetFocus
BKKEY msgBook.hwnd, vbKeyLeft
blnIsLeft = False
End If
End If
Case vbKeyRight
If dteInput.SelStart = Len(dteInput.Text) Then
msgBook.SetFocus
BKKEY msgBook.hwnd, vbKeyRight
End If
End Select
End Sub
Private Sub dteInput_LostFocus()
Dim iLeft As Integer, i As Integer
On Error Resume Next
If msgBook.Row = 0 Then Exit Sub
' GetColNO
If dteInput.Text >= mstrStartDate Then
ShowMsg hwnd, "单据日期不能大于等于对帐启用日期!", vbExclamation, Caption
' dteInput.Text = msgBook.TextMatrix(mintRow, mintDateCol)
msgBook.Row = mintPRow
msgBook.col = mintDateCol
iLeft = 0
For i = 1 To mintDateCol - 1
If msgBook.ColIsVisible(i) Then
iLeft = iLeft + msgBook.ColWidth(i)
End If
Next i
dteInput.Move msgBook.Left + iLeft, msgBook.top + msgBook.CellTop, msgBook.ColWidth(mintDateCol)
' If dteInput.Enabled Then dteInput.SetFocus
dteInput.SetFocus
dteInput.Text = Format(CDate(mstrStartDate) - 1, "yyyy-mm-dd")
mblnDateOK = False
Exit Sub
Else
mblnDateOK = True
End If
If dteInput.Text = "" And dteInput.Left > 0 Then
dteInput.Text = Format(CDate(mstrStartDate) - 1, "yyyy-mm-dd")
ShowMsg hwnd, "单据日期不能为空!", vbExclamation, Caption
'msgBook.Col = 2
' dteInput.Text = msgBook.TextMatrix(mintRow, mintDateCol)
' dteInput.Move msgBook.Left + iLeft, msgBook.top + msgBook.CellTop, msgBook.ColWidth(mintDateCol)
dteInput.SetFocus
mblnDateOK = False
Exit Sub
Else
mblnDateOK = True
End If
If Me.ActiveControl.Name <> "dteInput" Then
dteInput.Move -50000
End If
' If dteInput.Text <> "" And msgBook.TextMatrix(mintRow, mintDateCol) < mstrStartDate Then msgBook.TextMatrix(mintRow, mintDateCol) = dteInput.Text
' msgBook.TextMatrix(mintRow, mintResortCol) = Replace(msgBook.TextMatrix(mintRow, mintResortCol), mstrDate, dteInput.Text)
If mstrDate <> dteInput.Text Then
msgBook.TextMatrix(msgBook.Row, mintCheckCol) = ""
' msgBook.TextMatrix(mintRow, mintResortCol) = Replace(msgBook.TextMatrix(mintRow, mintResortCol), mstrDate, dteInput.Text)
If Not mblnIsAdd Then ReSort
End If
End Sub
Private Sub Form_Activate()
SetHelpID Me.HelpContextID
mclsMainControl_ChildActive
gclsSys.CurrFormName = Me.hwnd
UpdateMenuStatus
msgBook.SetFocus
End Sub
Private Sub Form_Deactivate()
frmMain.SetEditUnEnabled
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
If dteInput.Left > 0 Then
mclsMainControl_ListEditMenu 1
KeyCode = 0
ElseIf txtInput.Visible Then
txtInput.Text = ""
KeyCode = 0
msgBook.SetFocus
ElseIf txtCal.Visible Then
txtCal.Text = ""
KeyCode = 0
msgBook.SetFocus
Else
Unload Me
End If
End If
If Shift = 2 Then
MakeListEditMenu
SetMenu
Select Case UCase(Chr(KeyCode))
Case "N"
If frmMain.mnuListEditMenu(0).Enabled Then
mclsMainControl_ListEditMenu 0
End If
Case "D"
If frmMain.mnuListEditMenu(1).Enabled Then
mclsMainControl_ListEditMenu 1
End If
Case "H"
If frmMain.mnuListEditMenu(3).Enabled Then
mclsMainControl_ListEditMenu 3
End If
Case "S"
If frmMain.mnuListEditMenu(4).Enabled Then
mclsMainControl_ListEditMenu 4
End If
Case "P"
If frmMain.mnuListEditMenu(6).Enabled Then
mclsMainControl_ListEditMenu 6
End If
End Select
End If
End Sub
Private Sub Form_Load()
Dim edtErrReturn As ErrDealType
On Error GoTo ErrHandle
MsgForm.PleaseWait
' SetHelpID hwnd, 60103
If gclsBase.ControlAccount Then
mintViewId = 33
mintResortCol = 4
Else
mintViewId = 1104
mintResortCol = 5
End If
mlngNO = 100000
Set mclsSubClassform = New SubClass32.SubClass
mclsSubClassform.hwnd = Me.hwnd
mclsSubClassform.Messages(WM_GETMINMAXINFO) = True
frmCollate.IsShowCard(1) = True
Set mclsGrid = New Grid
Set mclsGrid.Grid = msgBook
mclsGrid.ListSet.ViewId = mintViewId
If Not gclsBase.ControlAccount Then
msgBook.FormatString = "|||||对帐| 日期 |凭证类型|凭证号|付款方式| 摘要 |票据号|> 借方|> 贷方|> 余额|"
End If
mblnIsInit = True
mlngAcnID = frmCollate.AccountID
mlngCurID = frmCollate.CurrencyID
msgBook.top = 441
mblnIsHide = False
mblnRowValid = False
mblnDateOK = True
mblnIsAdd = False
mblnIsChanged = False
InitHeadName
InitAccountList
InitCurrencyList
InitReceiptList
setlistbox lstInput(1), 33
' InitGrid
' mintDCBCol = mintDebitCol
Set mclsMainControl = gclsSys.MainControls.Add(Me)
' msgBook.Row = 1
' msgBook.col = mintBalCol
Unload MsgForm
txtInput.ParenthWnd = msgBook.hwnd
dteInput.ParenthWnd = msgBook.hwnd
lstInput(0).ParenthWnd = msgBook.hwnd
lstInput(1).ParenthWnd = msgBook.hwnd
lstInput(2).ParenthWnd = msgBook.hwnd
Exit Sub
ErrHandle:
edtErrReturn = Errors.ErrorsDeal
If edtErrReturn = edtResume Then
Resume
Else
On Error Resume Next
Unload MsgForm
Unload Me
End If
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' If UnloadMode <> vbFormControlMenu Then Exit Sub
' GetColNO
If mblnIsChanged Then
If ShowMsg(hwnd, "要保存本次银行帐编辑的结果吗?", _
vbQuestion + vbYesNo, Caption) = vbYes Then
' msgBill.TextMatrix(msgBill.Row, mintDateCol) = dteInput.Text
' If dteInput.Left > 0 Then dteInput_LostFocus
If Not mblnDateOK Then
Cancel = True
Exit Sub
End If
' BankIsValid vbFormControlMenu
' If Not mblnValueOK Then
' Cancel = True
' Exit Sub
' End If
MsgForm.PleaseWait
If Not SaveData Then
ShowMsg hwnd, "保存数据失败,本次银行帐期初编辑无效!", _
vbExclamation, Caption
Unload MsgForm
Exit Sub
End If
Unload MsgForm
End If
End If
End Sub
Private Sub Form_Resize()
Dim intWidth As Integer, i As Integer
If Me.WindowState = vbMinimized Then Exit Sub
' If Width < intFormMinWidth Then Width = intFormMinWidth
' If Height < intFormMinHeight Then Height = intFormMinHeight
cmdBook(0).Left = Me.ScaleLeft + 50
cmdBook(0).top = Me.ScaleHeight - 75 - cmdBook(0).Height
cmdBook(1).top = cmdBook(0).top
cmdBook(1).Left = cmdBook(0).Left + cmdBook(0).width
' chkAll.top = cmdBook(0).top
With msgBook
.Left = cmdBook(0).Left
.top = cboBook(0).top + cboBook(0).Height + 75
.width = Me.ScaleWidth - 100
.ColWidth(1) = 0
.ColWidth(2) = 0
.ColWidth(3) = 0
If gclsBase.ControlAccount Then
.ColWidth(5) = 450
Else
.ColWidth(6) = 450
End If
intWidth = .width - .ColWidth(1) - .ColWidth(2) - .ColWidth(3) - .ColWidth(4)
.Height = cmdBook(0).top - 575
' For i = 3 To .Cols - 1
' .ColWidth(i) = intWidth / (.Cols - 2)
' Next i
' .ColWidth(3) = intWidth / 7
' .ColWidth(4) = intWidth / 7
' .ColWidth(5) = intWidth / 7
' .ColWidth(6) = intWidth / 7
' .ColWidth(7) = intWidth / 7
' .ColWidth(8) = intWidth / 7
' .ColWidth(9) = intWidth / 7
' dteInput.Width = .ColWidth(2) + 4
' cboBook(2).Width = .ColWidth(3) + 3
cboBook(1).Left = .Left + .width - cboBook(1).width
lblBook(1).Left = cboBook(1).Left - lblBook(1).width - 60
' chkAll.Left = .Left + .Width - chkAll.Width + 40
dteInput.Left = -50000
lstInput(0).Left = -50000
lstInput(1).Left = -50000
lstInput(2).Left = -50000
txtInput.Visible = False
txtCal.Visible = False
End With
End Sub
Private Sub GetColNO()
Dim i As Integer
mintCheckCol = 2
mintDateCol = -1
mintTypeCol = -1
mintReceiptNOCol = -1
mintVoucherTypeCol = -1
mintVoucherNOCol = -1
mintRemarkCol = -1
mintBillNOCol = -1
mintDebitCol = -1
mintCreditCol = -1
mintPayMethodCol = -1
mintBalCol = -1
With msgBook
For i = 1 To .Cols - 1
If .TextMatrix(0, i) = mstrCheckCol Then
mintCheckCol = i
ElseIf .TextMatrix(0, i) = mstrDateCol Then
mintDateCol = i
ElseIf .TextMatrix(0, i) = mstrRemarkCol Then
mintRemarkCol = i
ElseIf .TextMatrix(0, i) = mstrBillNOCol Then
mintBillNOCol = i
ElseIf .TextMatrix(0, i) = mstrDebitCol Then
mintDebitCol = i
ElseIf .TextMatrix(0, i) = mstrCreditCol Then
mintCreditCol = i
ElseIf .TextMatrix(0, i) = mstrTypeCol Then
mintTypeCol = i
ElseIf .TextMatrix(0, i) = mstrReceiptNOCol Then
mintReceiptNOCol = i
ElseIf .TextMatrix(0, i) = mstrVoucherTypeCol Then
mintVoucherTypeCol = i
ElseIf .TextMatrix(0, i) = mstrVoucherNOCol Then
mintVoucherNOCol = i
ElseIf .TextMatrix(0, i) = mstrPayMethodCol Then
mintPayMethodCol = i
ElseIf .TextMatrix(0, i) = mstrBalCol Then
mintBalCol = i
End If
Next i
End With
' With mclsGrid.ListSet
' For i = 1 To mclsGrid.ListSet.Columns
' If InStr(.ColumnFieldName(i), "对帐") > 0 Then
' mintCheckCol = i + 1
' ElseIf InStr(.ColumnFieldName(i), "日期") > 0 Then
' mintDateCol = i + 1
' ElseIf InStr(.ColumnFieldName(i), "单据类型") > 0 Then
' mintTypeCol = i + 1
' ElseIf InStr(.ColumnFieldName(i), "单据号") > 0 Then
' mintReceiptNOCol = i + 1
' ElseIf InStr(.ColumnFieldName(i), "摘要") > 0 Then
' mintRemarkCol = i + 1
' ElseIf InStr(.ColumnFieldName(i), "票据号") > 0 Then
' mintBillNOCol = i + 1
' ElseIf InStr(.ColumnFieldName(i), "借方") > 0 Then
' mintDebitCol = i + 1
' ElseIf InStr(.ColumnFieldName(i), "贷方") > 0 Then
' mintCreditCol = i + 1
' End If
' Next i
' End With
End Sub
Private Sub InitAccountList()
Dim lngAcnID As Long, strSql As String
cboBook(0).Clear
strSql = "SELECT * FROM BANKACCOUNTVIEW ORDER BY lngAccountID,lngCurrencyID"
Set mrecBankAccount = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
With mrecBankAccount
If Not .EOF Then
lngAcnID = !lngAccountID
cboBook(0).AddItem Trim$(!strAccountCode) & String(4, " ") _
& Trim$(!strAccountName)
If mlngAcnID = !lngAccountID Then mstrAcnName = Trim$(!strAccountCode) _
& String(4, " ") & Trim$(!strAccountName)
cboBook(0).ItemData(cboBook(0).NewIndex) = !lngAccountID
.MoveNext
End If
Do Until .EOF
If lngAcnID <> !lngAccountID Then
cboBook(0).AddItem Trim$(!strAccountCode) & String(4, " ") _
& Trim$(!strAccountName)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -