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

📄

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 5 页
字号:
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'**********************************************************
'*    模 块 名 称 :计划价调整
'*    功 能 描 述 :调整存货的计划单价
'*    程序员姓名  :白凤英
'*    最后修改人  :白凤英
'*    最后修改时间:2001/12/11
'*    备        注:
'**********************************************************

Dim BillCode As String                   '单据设计编码(索引号)
Dim Rec_CodeSet As New ADODB.Recordset   '编码设置表
Dim jdzygs As Integer                    '控件焦点转移个数
Dim Lrzt As Integer                      '录入状态标志(0-非录入状态 1-增加 2-修改)
Dim ReportTitle As String                '报表主标题
Public Str_QueryCondi As String          '单据组查询条件(接收查询条件)
Dim Str_RightEdit As String              '编辑(新增、修改、删除)权限索引
  
'以下为固定使用变量(网格)
Dim Cxnrrec As New ADODB.Recordset       '显示查询内容动态集
Dim Dyymctbl As New DY_Dyymsz            '打印页面窗体变量
Dim GridCode As String                   '显示网格网格代码
Dim GridInf() As Variant                 '整个网格设置信息
Dim Tsxx As String                       '系统提示信息
Dim Qslz As Long                         '网格隐藏(非操作显示)列数
Dim Sjhgd As Double                      '网格数据行高度
Dim GridBoolean() As Boolean             '网格列信息(布尔型)
Dim GridStr()  As String                 '网格列信息(字符型)
Dim GridInt() As Integer                 '网格列信息(整型)
Dim Szzls As Integer                     '数组总列数(网格列数-1)

'以下为固定使用变量(文本框)
Dim Textvar() As Variant                 '存储变体型文本框信息
Dim Textboolean() As Boolean             '存储布尔型文本框信息
Dim Textint() As Integer                 '存储整型文本框信息
Dim Textstr() As String                  '存储字符型文本框信息
Dim Max_Text_Index As Integer            '最大录入文本框索引值
Dim TextGroupCode As String              '文本框录入分组编码
Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
Dim CurTextIndex As Integer              '当前文本框索引值
Dim TextChangeLock As Boolean            '文本框内容变换控制锁
Dim Bln_Cancel As Boolean                '取消按钮信息传递

Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移

    jdzygs = 10
    
    Select Case KeyAscii
        Case vbKeyReturn
            If Kjjdzy(jdzygs) Then
                KeyAscii = 0
            End If
        Case 39           '屏蔽"'"
            KeyAscii = 0
    End Select
   
End Sub

Private Sub Form_Load()
  
    '打印报表标题信息
    ReportTitle = "计划价调整列表"
     
    '调入打印页面设置窗体
    XtReportCode = "Chhs_AdjustPlan"
    Load Dyymctbl
    
    BillCode = "1303"
    
    '以下为文本框处理程序(读入文本框录入信息)
    TextGroupCode = "Chhs_AdjustPlan"
    Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())
    Call Wbkcsh
    
    '调入显示网格设置信息
    GridCode = "Chhs_AdjustPlan"
    Call BzWgcsh(XsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
    XsGridQslz = GridInf(1)
    
    '调入列表网格设置信息
    GridCode = "Chhs_AdjustPlanList"
    Call BzWgcsh(CzxsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
    Qslz = GridInf(1)
    Sjhgd = GridInf(2)
    Szzls = CzxsGrid.Cols - 1
    
    '设置查询条件
    Str_QueryCondi = " kjyear=" & PGKjYear & " and period=" & PGNowmon
    
    '填 充 网 格
    Call Cxnrtcwg
       
    If Xtcdcs = "1" Then
        '初始化ToolBar,Tab卡状态
        StTab.Tab = 0
        StTab.TabEnabled(1) = False
        Frame1.Enabled = False
        
        '设置为非录入状态
        Lrzt = 0
        
        '调整工具条状态
        Call Toolfbjzt
    Else
        '初始化ToolBar,Tab卡状态
        StTab.Tab = 1
        StTab.TabEnabled(0) = False
        Frame1.Enabled = True
        Lrzt = 2
        Call Toolbjzt
        Call Cshlrxx(Lrzt, Val(Xtcdcsfz))
        LrText(0).Enabled = False
        LrText(1).Enabled = False
        LrText(2).Enabled = False
        LrText(3).Enabled = False
        LrText(4).Enabled = False
        LrText(5).Enabled = False
        GsToolbar.Visible = False
        SzToolbar.Buttons("fq").Enabled = False
    End If
    
    '编辑(新增、修改、删除)权限索引
    Str_RightEdit = "Chhs_PlanAdjustEdit"
    
 End Sub
 
Private Sub Cxnrtcwg()                               '查询内容填充网格

    Dim SqlStr As String              '查询连接串
    Dim Jsqte As Long                 '查询临时使用变量
  
    '为加快显示速度,将网格刷新动作冻结
    CzxsGrid.Redraw = False
  
    '[>>查询连接串
    SqlStr = "SELECT DISTINCT PlanAdjustMainId, BillDate, MNumber, MName, Model FROM Chhs_V_AdjustPlan a WHERE " & Str_QueryCondi & " order by a.Mnumber,a.billdate"
    '<<]
    Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(SqlStr)
    
    With Cxnrrec
        CzxsGrid.Rows = CzxsGrid.FixedRows
        If .EOF And .BOF Then
            CzxsGrid.Redraw = True
            Exit Sub
        End If
        Jsqte = CzxsGrid.FixedRows
        Do While Not .EOF
            CzxsGrid.AddItem ""
            Call Jltcwg(Cxnrrec, Jsqte)                              '调入填充网格子过程
            CzxsGrid.RowHeight(Jsqte) = Sjhgd                        '设置网格高度
            .MoveNext
            Jsqte = Jsqte + 1
        Loop
    End With
  
    '将网格刷新动作解冻
    CzxsGrid.Redraw = True
    
End Sub

Private Sub Jltcwg(Jlbrec As ADODB.Recordset, Rowjsq As Long)           '记录内容填充网格

    '[>>以下为自定义部分
    With Jlbrec
       
        CzxsGrid.TextMatrix(Rowjsq, 0) = Trim(.Fields("PlanAdjustMainId") & "")            '主表ID
        CzxsGrid.TextMatrix(Rowjsq, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("Mnumber") & "")          '存货编码
        CzxsGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("Mname") & "")            '存货名称
        CzxsGrid.TextMatrix(Rowjsq, Sydz("003", GridStr(), Szzls)) = Trim(.Fields("Model") & "")            '规格型号
        CzxsGrid.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls)) = Format(Trim(.Fields("BillDate") & ""), "yyyy-mm-dd")          '调整日期
       
    End With
    '以上为自定义部分<<]
    
End Sub

Private Sub Form_Unload(Cancel As Integer)             '窗体卸载

    Set Cxnrrec = Nothing
    Set Rec_CodeSet = Nothing
    Unload Dyymctbl
    
    '用户退出时写上机日志
    Security_Log "Chhs_AdjustPlan", Xtczybm, 2, False
   
End Sub
Private Function Sub_SaveBill() As Boolean                                   '保 存 单 据
  
    Dim Rectemp As New ADODB.Recordset                    '临时使用动态集
    Dim Rec_VouchMain As New ADODB.Recordset              '单据主表动态集
    Dim Rec_VouchSub As New ADODB.Recordset               '单据子表动态集
    Dim Rec_List As New ADODB.Recordset                   '明细帐表动态集
    Dim Rec_Mate As New ADODB.Recordset                   '总帐表动态集
    Dim Rowjsq As Long                                    '网格行计数器
    Dim Coljsq As Long                                    '网格列计数器
    Dim Jsqte As Integer                                  '临时计数器
    Dim Lng_RowCount As Long                              '有效数据行计数器
    Dim Lrywlz As Long                                    '录入有误列值
    Dim NewMainId As Integer                              '主表ID
    Dim mPeriod As Integer                                '当前会计期间
    
    Sub_SaveBill = False
  
    '如果文本框处于编辑状态,则先进性文本框的有效性判断
    If Not TextYxxpd(1) Then
       Sub_SaveBill = False
       Exit Function
    End If
    
    If Not TextYxxpd(4) Then
       Sub_SaveBill = False
       Exit Function
    End If
    
    '一.============先对单据内容进行有效性判断==============='
  
    '先进行字段不能为空或不能为零有效性判断(Fixed)
    For Jsqte = 0 To Max_Text_Index
        If Textint(Jsqte, 8) = 1 Then     '字段不能为空
            If Len(Trim(LrText(Jsqte).Text)) = 0 Then
                Tsxx = Textstr(Jsqte, 7) & "不能为空!"
                Call Xtxxts(Tsxx, 0, 1)
                LrText(Jsqte).SetFocus
                Exit Function
            End If
        Else
            If Textint(Jsqte, 8) = 2 Then   '字段不能为零
                If Val(Trim(LrText(Jsqte).Text)) = 0 Then
                    Tsxx = Textstr(Jsqte, 7) & "不能为零!"
                    Call Xtxxts(Tsxx, 0, 1)
                    LrText(Jsqte).SetFocus
                    Exit Function
                End If
            End If
        End If
    Next Jsqte
    
    '对需要进行事后判断的文本框录入内容进行有效性判断 (Fixed)
    For Jsqte = 0 To Max_Text_Index
        If Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2 Then
            If Not TextYxxpd(Jsqte) Then
                Call TextShow(Jsqte)
                Exit Function
            End If
        End If
    Next Jsqte
  
    '[>>
  
    '可在此区域写入其他对单据表头内容的有效性判断.
    
    '<<]
  
    '[>>下面将对所有有效数据行进行有效性判断
  
    Lng_RowCount = 0
  
    With XsGrid
        For Rowjsq = .FixedRows To .Rows - 1
            
           '1.首先进行为空或为零判断(Fixed)
           For Jsqte = Qslz To .Cols - 1
            
                '字段不能为空
                If GridInt(Jsqte, 5) = 1 Then
                    If Len(Trim(.TextMatrix(Rowjsq, Jsqte))) = 0 Then
                        Tsxx = GridStr(Jsqte, 2)
                        Lrywlz = Jsqte
                        GoTo Lrcwcl
                        Exit For
                    End If
                End If
                
                '字段不能为零
                If GridInt(Jsqte, 5) = 2 Then
                    If Val(Trim(.TextMatrix(Rowjsq, Jsqte))) = 0 Then
                        Tsxx = GridStr(Jsqte, 2)
                        Lrywlz = Jsqte
                        GoTo Lrcwcl
                        Exit For
                    End If
                End If
            Next Jsqte
           
        Next Rowjsq
        
        '[>>
        '此处可以定义整张单据不能通过有效性检查的理由
        '<<]
    End With  '网格
   
   
    '二.=============如果以上有效性检查均顺利通过,则执行存盘动作============'
   
    mPeriod = PGNowmon
    
    '对存盘进行事务处理(Fixed)
    On Error GoTo Swcwcl
    Cw_DataEnvi.DataConnect.BeginTrans
    
    '判断单据状态以进行不同处理
    
    '1.先对单据主表进行处理
    
    '开始存盘
     
    '打开单据主表动态集
    If Rec_VouchMain.State = 1 Then Rec_VouchMain.Close
    Rec_VouchMain.Open "Select * From Chhs_PlanAdjustMain Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
         
    With Rec_VouchMain
        .AddNew
        .Fields("PlanAdjustMainId") = CreatBillID(BillCode)                              'Id号
        .Fields("BillCode") = BillCode                                                   '单据编号
        .Fields("BillDate") = CDate(LrText(0).Text)                                      '日期
        .Fields("Mnumber") = Trim(LrText(1).Text)                                        '仓库
        .Fields("AdjustBeforePrice") = Val(LrText(3).Text)                               '调整前计划单价
        .Fields("AdjustAfterPrice") = Val(LrText(4).Text)                                '调整后计划单价
        .Fields("Remark") = Trim(LrText(5).Text)                                         '备注
        .Fields("kjyear") = Xtyear
        .Fields("period") = mPeriod
        .Update
        
        NewMainId = .Fields("PlanAdjustMainId")
    End With

⌨️ 快捷键说明

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