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

📄

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 5 页
字号:
    End If
    With WglrGrid
        '限制字段录入长度
        Wbkbhlock = True
        Select Case GridInt(.Col, 1)
            Case 8
                Call Sjgskz(Ydtext, Xtjezws - Xtjexsws - 1, Xtjexsws)
            Case 9
                Call Sjgskz(Ydtext, Xtslzws - Xtslxsws - 1, Xtslxsws)
            Case 10
                Call Sjgskz(Ydtext, Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
            Case Else
                If GridInt(.Col, 3) <> 0 Or GridInt(.Col, 4) <> 0 Then
                    Call Sjgskz(Ydtext, GridInt(.Col, 3), GridInt(.Col, 4))
                End If
        End Select
        Wbkbhlock = False
    End With
End Sub
Private Sub ydtext_LostFocus()            '如果由于选中网格之外的控件而发生有效性判断(选中网格会先发生Rowcolchange事件置Valiock为TRUE)
    With WglrGrid
        If Valilock = False Then
            Call Lrsjhx
            If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then Exit Sub
            If Not Sjhzyxxpd(Dqlrwgh) Then
                Exit Sub
            End If
        End If
    End With
End Sub

Private Sub Qkwlzd(sjh As Long, Sjl As Long)                            '清空为零字段
    If Not GridBoolean(Sjl, 5) Then Exit Sub
    With WglrGrid
        If Val(Trim(.TextMatrix(sjh, Sjl))) = 0 Then .TextMatrix(sjh, Sjl) = ""
    End With
End Sub
Private Sub fhyxh()                                                     '返回录入数据有效行,同时让得到焦点网格可见
    With WglrGrid
        If .Row >= .FixedRows Then
            If .TextMatrix(.Row, 0) <> "*" Then     '点击网格空区域时执行此语句
                For Rowjsq = .FixedRows To .Rows - 1        '为找到最后一数据行的下一行
                    If .TextMatrix(Rowjsq, 0) <> "*" Then
                    Exit For
                    End If
                Next Rowjsq
                If Rowjsq <= .Rows - 1 Then
                    Changelock = True
                    .Select Rowjsq, .Col
                    Changelock = False
                Else
                    Changelock = True
                    .Select .Rows - 1, .Col
                    Changelock = False
                End If
            End If
            Call Xldqh
        End If
    End With
End Sub
Private Sub Xldqh()                                                      '显露当前行
    Dim Toprowte As Long
    With WglrGrid
        Toprowte = 0
        Do While .CellTop + .RowHeight(.Row) + Fzxwghs * Sjhgd > .Height And .TopRow <> Toprowte
            Toprowte = .TopRow
            .TopRow = .TopRow + 1
        Loop
        Toprowte = 0
        Do While .CellTop < .FixedRows * .RowHeight(0) And .TopRow <> Toprowte
            Toprowte = .TopRow
            .TopRow = .TopRow - 1
        Loop
    End With
End Sub
Private Sub Xldql()                                                     '显露当前列
    Dim Leftcolte As Long
    With WglrGrid
        If .Col >= Qslz Then
            If .LeftCol > .Col Then
                .LeftCol = .Col
            End If
            Leftcolte = 0
            Do While .CellLeft + .CellWidth > .Width And .LeftCol <> Leftcolte
                Leftcolte = .LeftCol
                .LeftCol = .LeftCol + 1
            Loop
        End If
    End With
    
End Sub
Private Function pdhwk(sjh As Long)                                     '判断网格行是否为空行(所有录入字段均为空*非录入字段除外)
    With WglrGrid
        For Coljsq = Qslz To .Cols - 1
            If Len(Trim(.TextMatrix(sjh, Coljsq))) <> 0 And GridBoolean(Coljsq, 1) Then
                pdhwk = False
                Exit Function
            End If
        Next Coljsq
        pdhwk = True
    End With
End Function
Private Sub Xyxhbz(sjh As Long)                                         '写行有效性标志,并判断是否增行
    With WglrGrid
        If .TextMatrix(sjh, 0) = "*" Then
            Exit Sub
        End If
        .TextMatrix(sjh, 0) = "*"
        If sjh >= .Rows - Fzxwghs - 1 Then
            .AddItem ""
            .RowHeight(.Rows - 1) = Sjhgd
        End If
    End With
End Sub
Private Sub Sub_OperStatus(Str_Status As String)                 '工具条依据不同状态所进行的变化
    With Tlb_Action
        Select Case Str_Status
            Case "10"   '浏览
                '工具条
                '.Buttons("dy").Enabled = False     '打印
                '.Buttons("yl").Enabled = False     '预览
                .Buttons("run").Enabled = False
            Case "11"   '浏览
                 '工具条
            Case "30"   '修改
                '工具条
        End Select
    End With
End Sub
Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)   '表格格式设置(通用)
    Select Case Button.Key
        Case "bcgs"                              '保存表格格式
            Call Bcwggs(WglrGrid, GridCode, GridStr())
        Case "hfmrgs"                            '恢复默认格式
            Call Hfmrgs(WglrGrid, GridCode, GridStr())
        Case "szxsxm"                            '设置显示项目
            Call Szxsxm(WglrGrid, GridCode)
    End Select
End Sub
Private Sub bbyl(bbylte As Boolean)                                     '打印预览(通用)
    Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
    Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
    Bbxbtgs = 1                                          '报 表 小 标 题 行 数
    Bbbwhgs = 0                                          '报 表 表 尾 行 数
    ReDim Bbxbt(1 To Bbxbtgs)
    ReDim bbxbtzzxs(1 To Bbxbtgs)
    If Bbbwhgs <> 0 Then
        ReDim Bbbwh(1 To Bbbwhgs)
        ReDim Bbbwhzzxs(1 To Bbbwhgs)
    End If
    Bbzbt = ReportTitle
    
    '判断是否为空
    SqlStr = "Select Count(*) From Cb_CostObject"
    Set RecTemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
    If RecTemp.Fields(0) <= 0 Then
        Bbxbt(1) = ""
    Else
        Bbxbt(1) = Mid(CStr(Combo_KJQJ.List(Combo_KJQJ.ListIndex)), 1, 4) + "年" + Right(CStr(Combo_KJQJ.List(Combo_KJQJ.ListIndex)), 2) + "月"
    End If
  
    bbxbtzzxs(1) = 1                                     '报表行组织形式(0-居左 1-居中 2-居右)
    Call Scyxsjb(WglrGrid)                               '生成报表数据
    Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
    If Not bbylte Then
        Unload DY_Tybbyldy
    End If
End Sub
'************以下为文本框录入处理程序(固定不变部分)*************'
Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序

  '以下为依据实际情况自定义部分[
  
      '在此填写文本框录入事后处理程序
   
  ']以上为依据实际情况自定义部分
End Sub
Private Sub Cxxswbk()                                                  'Formresize中重新显示文本框,列表框,帮助按钮(通用)
    Dim Wbkpy As Integer, Wbkpy1 As Integer
    Wbkpy = 30
    Wbkpy1 = 15
    With WglrGrid
        If YdCombo.Visible Then
            YdCombo.Left = .CellLeft + .Left + Wbkpy
            YdCombo.Top = .CellTop + .Top + Wbkpy
            YdCombo.Width = .CellWidth - Wbkpy1
        End If
        If Ydcommand.Visible Then
            Ydcommand.Left = .Left + .CellLeft + .CellWidth - Ydcommand.Width + Wbkpy
            Ydcommand.Top = .Top + .CellTop + .CellHeight - Ydcommand.Height + Wbkpy
        End If
        If Ydtext.Visible Then
            If Ydcommand.Visible Then
                If Sfblbzkd Then
                    Ydtext.Width = .CellWidth - Ydcommand.Width
                Else
                    Ydtext.Width = .CellWidth - Wbkpy1
                End If
            Else
                Ydtext.Width = .CellWidth - Wbkpy1
            End If
            Ydtext.Left = .CellLeft + .Left + Wbkpy
            Ydtext.Top = .CellTop + .Top + Wbkpy
            Ydtext.Height = .CellHeight - Wbkpy1
        End If
    End With
End Sub
'=================以下自定义部分=================
Sub Run2()                          '结转产成品
    Dim Rec_SubTemp As New ADODB.Recordset
    Dim lng_OperationNum As Long
    Dim i As Integer
    Dim CF_Count As Integer
    Dim IdCount As Integer
    
    Bln_DeleteFlag = True
    Changelock = False
    CF_Count = 0
    If CF_Judge = False Then                 '结转之前判断
        Exit Sub
    End If
    
    On Error GoTo Err1
    Screen.MousePointer = 11
    Cw_DataEnvi.DataConnect.BeginTrans
    IdCount = 0
    For jsq = 1 To Tranjsq
        
        '有无可结转的数据
        SqlStr = "Select Sum(ThmonConsumeMoney) As ThmonConsumeMoney From Cb_Fn_CFProduceCost('" + CStr(TranNum(jsq)) + "'," + CStr(PrivateYear) + "," + CStr(PrivateMm) + ") "
        Set Rec_SubTemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
        If Not IsNull(Rec_SubTemp.Fields("ThmonConsumeMoney")) Or Rec_SubTemp.Fields("ThmonConsumeMoney") = 0 Then
            '写临时凭证主表
            lng_OperationNum = CreatBillID("0102")
            Call Save_TempPz_Main(OperationNum, lng_OperationNum)
            
            '写临时凭证子表
            SqlStr = "Select '成本结转' As Digest,0 As Jfje,Sum(ThmonConsumeMoney) As Dfje,0 As ye,0 As Jfsl,Sum(ThmonConsumeAmount) As Dfsl,Ccode1 As Ccode " _
                        & "From Cb_Fn_CFProduceCost('" + CStr(TranNum(jsq)) + "'," + CStr(PrivateYear) + "," + CStr(PrivateMm) + ") Group By Ccode1  Having Sum(ThmonConsumeMoney)<>0 Union " _
                        & "Select '成本结转',Sum(ThmonConsumeMoney),0,0,Sum(ThmonConsumeAmount),0,B.Ccode From Cb_Fn_CFProduceCost('" + CStr(TranNum(jsq)) + "'," + CStr(PrivateYear) + "," + CStr(PrivateMm) + ") A " _
                        & "Left Outer Join Cb_CostObject B On A.ObjectCode=b.ObjectCode " _
                        & "Group By B.Ccode"
                        
            Set Rec_SubTemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
            i = 1
            Do Until Rec_SubTemp.EOF
                Call Save_TempPz_Ass(Rec_SubTemp, lng_OperationNum, i)
                Rec_SubTemp.MoveNext
                i = i + 1
            Loop
            If IdCount = 0 Then
                ReDim Glo_ObjectId1.OId(IdCount)
                ReDim Glo_ObjectId1.ONum(IdCount)
                Glo_ObjectId1.OId(IdCount) = TranNum(jsq)
                Glo_ObjectId1.ONum(IdCount) = lng_OperationNum
            End If
            If IdCount > 0 Then
                ReDim Preserve Glo_ObjectId1.OId(IdCount)
                ReDim Preserve Glo_ObjectId1.ONum(IdCount)
                Glo_ObjectId1.OId(IdCount) = TranNum(jsq)
                Glo_ObjectId1.ONum(IdCount) = lng_OperationNum
            End If
            IdCount = IdCount + 1
            CF_Count = CF_Count + 1
        Else
            Tsxx = "对象没有可结转的数据!"
            Call Xtxxts(Tsxx, 0, 3)
        End If
        
    Next
    
    Cw_DataEnvi.DataConnect.CommitTrans
    Screen.MousePointer = 0
    If CF_Count > 0 Then
        AutoTran_PzFrm.OperationNumPz = OperationNum
        AutoTran_PzFrm.vouchsourcePz = "成本核算"
        AutoTran_PzFrm.HelpContextID = "0705003"
        AutoTran_PzFrm.Show 1
    End If
    
    Call WriteVouchId(OperationNum, 2)  '写数据
    Call Clean                        '删除信息
    Call Sub_Query                    '查询信息
    Exit Sub
Err1:
    Cw_DataEnvi.DataConnect.RollbackTrans
    Screen.MousePointer = 0
    Exit Sub
End Sub
Sub Run1()                              '结转生产成本
    Dim jsq As Integer
    Dim Rec_SubTemp As New ADODB.Recordset
    Dim lng_OperationNum As Long
    Dim i As Integer
    Dim CF_Count As Integer
    Dim IdCount As Integer
    
    Bln_DeleteFlag = True
    Changelock = False
    CF_Count = 0
    If CF_Judge = False Then                 '结转之前判断
        Exit Sub
    End If
    
    On Error GoTo Err1
    Screen.MousePointer = 11
    Cw_DataEnvi.DataConnect.BeginTrans
    IdCount = 0
    For jsq = 1 To Tranjsq
        
        '有无可结转的数据
        SqlStr = "Select Sum(Isnull(ThmonConsumeMoney,0)) As ThmonConsumeMoney From Cb_Fn_CFProduceCost('" + CStr(TranNum(jsq)) + "'," + CStr(PrivateYear) + "," + CStr(PrivateMm) + ") "
        Set Rec_SubTemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
        If Not IsNull(Rec_SubTemp.Fields("ThmonConsumeMoney")) Or Rec_SubTemp.Fields("ThmonConsumeMoney") = 0 Then
            '写临时凭证主表
            lng_OperationNum = CreatBillID("0102")
            Call Save_TempPz_Main(OperationNum, lng_OperationNum)
            
            '写临时凭证子表
            SqlStr = "Select '成本结转' As Digest,0 As Jfje,isnull(ThmonConsumeMoney,0) As Dfje,0 As ye,0 As Jfsl,isnull(ThmonConsumeAmount,0) As Dfsl,Ccode2 As Ccode From Cb_Fn_CFProduceCost('" + CStr(TranNum(jsq)) + "'," + CStr(CStr(PrivateYear)) + "," + CStr(PrivateMm) + ") Where isnull(ThmonConsumeMoney,0)<>0" _
                        & "U

⌨️ 快捷键说明

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