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

📄

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 5 页
字号:
            !UseYearsNew = Val(LrText(20).Text)                                         '变动后使用年限
            !FAQuantityOld = Val(LrText(6).Text)                                        '变动前资产总量
            !FAQuantityNew = Val(LrText(7).Text)                                        '变动后资产数量
            !Opreator = Trim(Xt_Czy.Caption)                                            '操作员
            .Update
        End With
        Rs_Temp.Close
        Set Rs_Temp = Nothing
        
        Cw_DataEnvi.DataConnect.CommitTrans
        MsgBox "资产变动单生成完毕!变动单号--" + Trim(MaxCode), vbOKOnly + vbInformation, "百利/ERP5.0-固定资产"
        Unload Me
        Exit Function
    End If
Cwcl:
    Cw_DataEnvi.DataConnect.RollbackTrans
    Tsxx = "您的输入有误导致存盘失败,请核对数据!"
    Call Xtxxts(Tsxx, 0, 1)
    Exit Function
    
End Function

'录入有效性判断
Function IsValidity() As Boolean

    IsValidity = False
    
    '变动方式不能为空
    If Trim(Frame1.Caption) = "" Then
        Tsxx = "请先选择变动方式!"
        Call Xtxxts(Tsxx, 0, 4)
        Exit Function
    End If
    
    '变动原因不能为空
    If Trim(LrText(8).Text) = "" Then
        Tsxx = "变动原因不能为空!"
        Call Xtxxts(Tsxx, 0, 4)
        LrText(8).SetFocus
        Exit Function
    End If
    
    '累计折旧不能大于资产原值
    If Val(LrText(14).Text) - Val(LrText(5).Text) > 0 Then
        Tsxx = "累计折旧不能大于资产原值!"
        Call Xtxxts(Tsxx, 0, 4)
        LrText(14).SetFocus
        Exit Function
    End If
        
    '当折旧方法为“工作量法”后,工作总量不能为空
    If Trim(Com_DeprMethod(1).Text) = "工作量法" Then
        If Trim(LrText(16).Text) = "" Then
            Tsxx = "工作总量不能为空!"
            Call Xtxxts(Tsxx, 0, 4)
            LrText(16).SetFocus
            Exit Function
        End If
    End If
    
    IsValidity = True
    
End Function

'变动单自动编号
Function Vari()

    Dim Max_Code As Double                              '最大值数值变量
    
    Set rstemp = New ADODB.Recordset
    rstemp.Open "select max(VariVouCode) as Max_CardCode from Gdzc_Variation", Cw_DataEnvi.DataConnect, adOpenKeyset, adLockOptimistic
    If Val(rstemp.Fields("Max_CardCode") & "") = 0 Then
        Max_Code = 1
    Else
        Max_Code = Val(rstemp.Fields("Max_CardCode")) + 1
    End If
    rstemp.Close
    Set rstemp = Nothing
    
    MaxCode = IIf(Max_Code < 10, "00000" & Max_Code, IIf(Max_Code < 100, "0000" & Max_Code, IIf(Max_Code < 1000, "000" & Max_Code, IIf(Max_Code < 10000, "00" & Max_Code, IIf(Max_Code < 100000, "0" & Max_Code, Max_Code)))))

End Function
'*******************以上区域为编写自定义过程区域**********************

'************以下为文本框录入处理程序(固定不变部分)*************'
Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序

    '以下为依据实际情况自定义部分[
  
    '在此填写文本框录入事后处理程序
   
    ']以上为依据实际情况自定义部分

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Kpgl_CardList.Timer1.Enabled = True
End Sub

Private Sub LrText_Change(Index As Integer)
    
    '屏蔽程序改变控制
    If TextChangeLock Then
        Exit Sub
    End If
   
    TextValiJudgeLock(Index) = False    '打开有效性判断锁
    
    '限制字段录入长度
          
    TextChangeLock = True  '加锁(防止执行Lrtext_Change)
    Select Case Textint(Index, 1)
        Case 8, 11      '金额型
            Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
        Case 9, 12      '数量型
            Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
        Case 10          '单价型
            Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
        Case Else        '其他小数类型控制
            If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
                Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
            End If
        End Select
    TextChangeLock = False '解锁
    
End Sub

'文本框得到焦点,显示相应信息
Private Sub LrText_GotFocus(Index As Integer)
    
    Call TextShow(Index)
    CurTextIndex = Index
    LrText(Index).SelStart = Len(LrText(Index))

End Sub

'字段按F2键提供帮助
Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
    
    Select Case KeyCode
        Case vbKeyF2
            Call Text_Help(Index)
    End Select

End Sub

'文本框录入事中控制
Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)
    Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
End Sub

'文本框失去焦点进行有效性判断及相应处理
Private Sub LrText_LostFocus(Index As Integer)
    
    If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
        Call TextYxxpd(Index)
    End If
    
End Sub


Private Sub QdCommand_Click()
    Call Save
End Sub

Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
    
    Select Case Button.Key
        Case "bz"
            SendKeys "{F1}"
        Case "fh"                                            '退 出
            Unload Me
    End Select
    
End Sub

'单击树节点,执行相应功能
Private Sub TreeView_NodeClick(ByVal Node As MSComctlLib.Node)
    
    '将变动方式赋值给Frame
    Frame1.Caption = Mid(TreeView.SelectedItem.Text, 8)
    Frame1.Tag = Mid(TreeView.SelectedItem.Text, 2, 5)
    LrText(8).Text = Mid(TreeView.SelectedItem.Text, 8)
    
    If Frame1.Caption <> "" Then
        Call Add_Clock
        Set Rs_Temp = New ADODB.Recordset
        Rs_Temp.Open "select * from Gdzc_VariWbkBj where FAVariCode='" & Trim(Frame1.Tag) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
        If Not Rs_Temp.EOF Then
            For Jsqte = 0 To LblName.count - 1
                If Trim(Trim(LblName(Jsqte).Tag)) <> "" Then
                    If Rs_Temp.Fields(LblName(Jsqte).Tag) = True Then
                        LrText(Jsqte).Enabled = True
                        LblName(Jsqte).ForeColor = &H80&
                    End If
                End If
            Next Jsqte
            If Rs_Temp.Fields(LblCom(1).Tag) = True Then
                Com_DeprMethod(1).Enabled = True
                LblCom(1).ForeColor = &H80&
            Else
                Com_DeprMethod(1).Enabled = False
                LblCom(1).ForeColor = &H0&
            End If
        End If
        Rs_Temp.Close
        Set Rs_Temp = Nothing
        LrText(0).Enabled = True
        LrText(1).Enabled = True
        LrText(8).Enabled = True
        QdCommand.Enabled = True
    Else
        Call Add_Clock
    End If
    
End Sub

'按钮提供帮助
Private Sub ydcommand_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)
    
    If LrText(Index).Enabled = False Then
        Exit Sub
    End If
    Call Text_Help(Index)
    
End Sub

'录入字段帮助
Private Sub Text_Help(Index As Integer)
    
    If Not Textboolean(Index, 1) Then
        Exit Sub
    End If
    TextValiJudgeLock(Index) = True
   
    '先进行有效性判断
    If Not TextYxxpd(CurTextIndex) Then
        Exit Sub
    End If
     
    '[>>调入参照窗体
    Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
     '<<]

    If Len(Xtfhcs) <> 0 Then
        If Textint(Index, 3) = 1 Then
            LrText(Index).Text = Xtfhcsfz
            LrText(Index).Tag = Xtfhcs
        Else
            LrText(Index).Text = Xtfhcs
            LrText(Index).Tag = Xtfhcsfz
        End If
    End If
    TextValiJudgeLock(Index) = False
    LrText(Index).SetFocus
    
End Sub

'文本框得到焦点,显示相应信息
Private Sub TextShow(Index As Integer)

    '填写文本框得到焦点,进行相应信息处理程序
   
End Sub

'文本框有效性判断
Private Function TextYxxpd(Index As Integer) As Boolean
    
    Dim Sqlstr As String
    Dim Findrec As ADODB.Recordset
    
    If TextValiJudgeLock(Index) Then    '文本框内容未曾改变不进行有效性判断
        TextYxxpd = True
        Exit Function
    End If
    
    If Trim(LrText(Index)) = "" Then
        LrText(Index).Tag = ""
        Call Wbklrwbcl(Index)
        TextValiJudgeLock(Index) = True
        TextYxxpd = True
        Exit Function
    End If
    
    Select Case Textint(Index, 4)
        Case 1      '编码型
            Sqlstr = Trim(Textstr(Index, 5))
            Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
            Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
            If Findrec.EOF Then
                Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
                LrText(Index).SetFocus
                Exit Function
            Else
                Select Case Textint(Index, 3)
                    Case 0
                        If Len(Trim(Textstr(Index, 2))) <> 0 Then
                            LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
                        End If
                        If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
                            LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
                        End If
                    Case 1
                        If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
                            LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
                        End If
                        If Len(Trim(Textstr(Index, 2))) <> 0 Then
                            LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
                        End If
                End Select
            End If
        Case 2      '日期型
            If IsDate(LrText(Index).Text) Then
                LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
                If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
                    LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
                End If
            Else
                Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
                Call Xtxxts(Tsxx, 0, 1)
                LrText(Index).SetFocus
                Exit Function
            End If
        Case 3      '其他类型
    End Select
    TextValiJudgeLock(Index) = True
    TextYxxpd = True

End Function

⌨️ 快捷键说明

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