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

📄 frmfixedmethodcard.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 4 页
字号:

'Private WithEvents mclsMainControl As MainControl '主控对象
Private mblnAddRecord As Boolean                  '是增加记录还是修改记录
Private mblnIsExist As Boolean
Private mblnIsList As Boolean
Private mblnIsRefer As Boolean
Private mstrListTextBuffer(3) As String           '暂存列表框输入值,以备新增
Private mlngListIDBuffer(3) As Long               '暂存列表框选择的ID,以备修改或删除
Private mfmrFixedMethod As FixedMethodRecord      '暂存读写记录的数据
Private mstrSQLBuffer() As String                 '暂时存储对数据库的增删改操作
Private mintSQLIndex As Integer                   'strSQLBuffer的索引
Private mstrInitCode As String                    '暂存编码的初始值,以备判断是否修改
Private ID As Long
Private mlngTemplateID As Long
Private mblnIsEditAdd As Boolean   'listtext框的edit和Add事件是否发生
Private mblnIsChanged As Boolean  '编辑是否改变
Private mtext As String   '直接输入的摘要内容
Private mblnIsCancel As Boolean     '是否是敲了CANCEL键

Public Function AddFixedMethod(ByVal strFixed As String) As Integer
    Dim strFixedMethodCode As String, strFixedMethodName As String
    Dim blnIsInActive As Boolean, strFixedMethodType As String
    Dim lngAccountID As Long, lngVoucherTypeID As Long
    Dim lngTemplateID As Long, strRemark As String
    Dim strTemp As String
    
    AddFixedMethod = 0
    If Not GetString(strFixed, strFixedMethodCode, 1) Then Exit Function
    If Not GetString(strFixed, strFixedMethodName, 2) Then Exit Function
    If Not GetString(strFixed, strTemp, 6) Then Exit Function
    blnIsInActive = (strTemp = "1")
    If Not GetString(strFixed, strFixedMethodType, 7) Then Exit Function
    If Not GetString(strFixed, strTemp, 5) Then Exit Function
    lngAccountID = CLng(strTemp)
    If Not GetString(strFixed, strTemp, 3) Then Exit Function
    lngVoucherTypeID = CLng(strTemp)
    If Not GetString(strFixed, strTemp, 4) Then Exit Function
    lngTemplateID = CLng(strTemp)
    If Not GetString(strFixed, strRemark, 8) Then Exit Function
    
    If strFixedMethodCode = "" Or strFixedMethodName = "" Then Exit Function
'    txtInput(0).Text = strFixedMethodCode
'    txtInput(1).Text = strFixedMethodName
    mfmrFixedMethod.strFixedMethodCode = strFixedMethodCode
    mfmrFixedMethod.strFixedMethodName = strFixedMethodName
    If ItemIsExist("Account", "lngAccountID", lngAccountID) Then
        mfmrFixedMethod.lngAccountID = lngAccountID
    Else
        mfmrFixedMethod.lngAccountID = 0
    End If
    If ItemIsExist("VoucherType", "lngVoucherTypeID", lngVoucherTypeID) Then
        mfmrFixedMethod.lngVoucherTypeID = lngVoucherTypeID
    Else
        mfmrFixedMethod.lngVoucherTypeID = 0
    End If
    If ItemIsExist("Template", "lngTemplateID", lngTemplateID) Then
        mfmrFixedMethod.lngTemplateID = lngTemplateID
    Else
        Exit Function
    End If
    mfmrFixedMethod.blnIsInActive = blnIsInActive
    mfmrFixedMethod.strFixedMethodType = strFixedMethodType
    mfmrFixedMethod.strRemark = strRemark
    mintSQLIndex = 0
'    chkPause.Value = IIf(blnIsInActive, Checked, Unchecked)
    mblnAddRecord = True
    If Not SaveCard(True, True) Then Exit Function
    AddFixedMethod = 1
End Function


'进入新增固资变动方式
Public Function AddCard(Optional strName As String = "", Optional intModal As Integer = 0, _
    Optional ByVal IsList As Boolean = False) As Long
    mblnAddRecord = True
    frmFixedMethodCard.Caption = "新增固资变动方式"
    cmdOKCancel(2).Visible = True
    mblnIsList = IsList
    InitAddCard strName
    Show intModal
    AddCard = ID
End Function

'初始化暂存读写记录的数据的自定义类型变量和卡片
Private Sub InitAddCard(Optional strName As String)
    Dim intCounter As Integer
    
    With mfmrFixedMethod
        .lngFixedMethodID = 0
        .strFixedMethodName = ""
        .strFixedMethodCode = ""
        .blnIsInActive = False
        .strFixedMethodType = "1"
        .lngTemplateID = 0
        .lngAccountID = 0
        .lngVoucherTypeID = 0
        .strRemark = ""
    End With
    
    If txtInput(0).Text = "Text1" Or txtInput(0).Text = "" Then
        txtInput(0).Text = ""
    Else
        txtInput(0).Text = GetNextCode(txtInput(0).Text)
        mstrInitCode = txtInput(0).Text
    End If
    txtInput(1).Text = strName
    For intCounter = 0 To 3
        lstMethod(intCounter).Text = ""
        mstrListTextBuffer(intCounter) = ""
        mlngListIDBuffer(intCounter) = 0
    Next intCounter
    mtext = ""
    chkPause.Value = Unchecked
    InitBuffer '清空暂时存储数据库操作的数组
End Sub

'进入修改固资变动方式
Public Sub EditCard(ByVal lngID As Long, Optional intModal As Integer = 0)
    mblnAddRecord = False
    frmFixedMethodCard.Caption = "修改固资变动方式"
    cmdOKCancel(2).Visible = False
    SelectRecord lngID   '查找记录
'    SendKeys "%C"
    Show intModal
End Sub

'查找出想修改的固资变动方式编码记录,存放在自定义类型变量中,设置想修改项
Private Sub SelectRecord(ByVal lngRecordID As Long)
    Dim strSql As String
    Dim recSetting As rdoResultset
    Dim lngID As Long
    
    With mfmrFixedMethod
        .lngFixedMethodID = lngRecordID
        strSql = "SELECT * FROM FixedMethod WHERE lngFixedMethodID=" & .lngFixedMethodID
        Set recSetting = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
        If recSetting.EOF Then
            mblnAddRecord = True
            InitAddCard
            recSetting.Close
            Exit Sub
        End If
        .strFixedMethodName = recSetting!strFixedMethodName
        .strFixedMethodCode = recSetting!strFixedMethodCode
        .blnIsInActive = (recSetting!blnIsInActive = 1)
        .strFixedMethodType = recSetting!strFixedMethodType
        .lngAccountID = recSetting!lngAccountID
        .lngTemplateID = recSetting!lngTemplateID
        .lngVoucherTypeID = recSetting!lngVoucherTypeID
        .strRemark = recSetting!strRemark
        
        txtInput(0).Text = .strFixedMethodCode
        txtInput(1).Text = .strFixedMethodName
        If .blnIsInActive Then
            chkPause.Value = Checked
        Else
            chkPause.Value = Unchecked
        End If
        If .strFixedMethodType = "1" Then
            optType(0).Value = True
        Else
            optType(1).Value = True
        End If
        strSql = "SELECT lngAccountID FROM Account WHERE lngAccountID =" & .lngAccountID
        Set recSetting = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
        If Not recSetting.EOF Then
          ' lstMethod(0).Text = recSetting!strAccountName
           lngID = recSetting!lngAccountID
           settlistbox lstMethod(0), 0
           lstMethod(0).SeekCol = "1,2,3"
           lstMethod(0).SeekId lngID
        End If
        strSql = "SELECT lngTemplateID FROM Template  WHERE lngTemplateID=" & .lngTemplateID
        Set recSetting = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
        If Not recSetting.EOF Then
           'lstMethod(1).Text = recSetting!strTemplateName
           lngID = recSetting!lngTemplateID
           settlistbox lstMethod(1), 1
           lstMethod(1).SeekCol = "1,2"
           lstMethod(1).SeekId lngID
        End If
        strSql = "SELECT lngVoucherTypeID FROM VoucherType WHERE lngVoucherTypeID=" _
            & .lngVoucherTypeID
        Set recSetting = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
            If Not recSetting.EOF Then
               'lstMethod(2).Text = recSetting!strVoucherTypeName
               lngID = recSetting!lngVoucherTypeID
               settlistbox lstMethod(2), 2
               lstMethod(2).SeekCol = "1,2,3"
               lstMethod(2).SeekId lngID
            End If
'        Strsql = "select * from remark where strRemarkCode='" & .strRemark & "'"
'        Set recSetting = gclsBase.BaseDB.openresultset(Strsql, rdopenstatic)
'        If Not recSetting.EOF Then
'           lngID = recSetting!lngRemarkID
           setlistbox lstMethod(3), 14
'           lstMethod(3).SeekCol = "1,2,3"
'           lstMethod(3).SeekId lngID
'        Else
'           lstMethod(3).Text = ""
'        End If
        lstMethod(3).Text = .strRemark
        mtext = .strRemark
        InitBuffer '清空暂时存储数据库操作的数组
        txtInput(0).SelStart = 0
        txtInput(0).SelLength = StrLen(txtInput(0).Text)
'        txtInput(0).SetFocus
        recSetting.Close
    End With
End Sub

'进入删除固资变动方式,判断记录是否是末级和被使用,删除记录
Public Function DelCard(ByVal lngID As Long, Optional ByVal lnghWnd As Long = 0) As Boolean
    Dim strSql As String
    Dim recSelect As rdoResultset
    Dim intMsgReturn As Integer
    Dim blnSQLExec As Boolean

    DelCard = False
    strSql = "SELECT * FROM FixedMethod WHERE lngFixedMethodID=" & lngID
    Set recSelect = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    If recSelect.EOF Then
        recSelect.Close
        Exit Function
    End If
'    If frmFixedTypeList.IsShowCard(1) Then
'       If lngID = frmFixedMethodListCard.FixedMethodID Then
'          ShowMsg lnghWnd, "不能删除正在修改的固资变动方式!", _
'                     vbExclamation + MB_TASKMODAL, "删除固资变动方式"
'          'frmFixedMethodCard.Show
'          Exit Function
'       End If
'    End If
    If CodeUsed(lngID) Then
        intMsgReturn = ShowMsg(lnghWnd, "“" & recSelect!strFixedMethodName & "”固资变动方式已经有业务发生,不能删除!", _
            vbExclamation + MB_TASKMODAL, "删除固资变动方式")
    Else
        intMsgReturn = ShowMsg(lnghWnd, "你确实要删除" & recSelect!strFixedMethodName & "固资变动方式?", _
            vbQuestion + vbYesNo + MB_TASKMODAL, "删除固资变动方式")
        If intMsgReturn = vbYes Then
            strSql = "DELETE FROM FixedMethod  WHERE lngFixedMethodID = " & lngID
            blnSQLExec = gclsBase.ExecSQL(strSql)
            If blnSQLExec Then
               gclsSys.SendMessage CStr(Me.hwnd), Message.msgFixedMethod
            End If
        End If
    End If
    DelCard = blnSQLExec
   ' frmFixedMethodList.IsShowCard = False
    recSelect.Close
End Function

'判断记录是否被使用(可能有多张表会使用此编码)
Private Function CodeUsed(lngID As Long) As Boolean
    CodeUsed = True
    If CheckIDUsed("FixedAlter", "lngFixedMethodID", lngID) Then Exit Function
    CodeUsed = False
End Function


Private Sub chkPause_Click()
    mblnIsChanged = True
End Sub

Private Sub cmdOKCancel_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
    If Index = 1 Then mblnIsCancel = True
End Sub

Private Sub Form_Activate()
    SetHelpID Me.HelpContextID
    frmMain.mnuEditShowList.Enabled = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim i As Integer
    
    mblnIsRefer = False
    If KeyCode = vbKeyEscape Or KeyCode = vbKeyReturn Then
        For i = 0 To 3
            If lstMethod(i).ReferVisible Then mblnIsRefer = True
        Next i
    End If
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
    If mblnIsList Then
        mblnIsList = False
        Exit Sub
    End If
    If KeyAscii = vbKeyReturn Then
        If Not mblnIsRefer Then
            BKKEY Me.ActiveControl.hwnd, vbKeyTab
        End If
    ElseIf KeyAscii = vbKeyEscape Then
        cmdOKCancel(1).Value = Not mblnIsRefer
    End If
End Sub

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn And Shift = 2 Then
        cmdOKCancel(0).Value = True
    End If
End Sub

Private Sub Form_Load()
    On Error GoTo ErrHandle
    Utility.LoadFormResPicture Me

    'Set mclsMainControl = gclsSys.MainControls.Add(Me)
'    SetHelpID Me.hwnd, 30049
   ' frmFixedMethodList.IsShowCard = True
    mlngTemplateID = 41
'    SendKeys "%{C}"

⌨️ 快捷键说明

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