˪-i_
上传用户:zhpu1995
上传日期:2013-09-06
资源大小:61151k
文件大小:11k
源码类别:

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form RP_FrmYmjz 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "月末结帐"
  5.    ClientHeight    =   1650
  6.    ClientLeft      =   2760
  7.    ClientTop       =   3750
  8.    ClientWidth     =   4440
  9.    BeginProperty Font 
  10.       Name            =   "宋体"
  11.       Size            =   10.5
  12.       Charset         =   134
  13.       Weight          =   700
  14.       Underline       =   0   'False
  15.       Italic          =   0   'False
  16.       Strikethrough   =   0   'False
  17.    EndProperty
  18.    Icon            =   "应收_月末结帐.frx":0000
  19.    LinkTopic       =   "Form1"
  20.    MaxButton       =   0   'False
  21.    MinButton       =   0   'False
  22.    ScaleHeight     =   1650
  23.    ScaleWidth      =   4440
  24.    ShowInTaskbar   =   0   'False
  25.    StartUpPosition =   1  '所有者中心
  26.    Begin VB.CommandButton cmdExecute 
  27.       Caption         =   "确定(&O)"
  28.       BeginProperty Font 
  29.          Name            =   "宋体"
  30.          Size            =   9
  31.          Charset         =   134
  32.          Weight          =   400
  33.          Underline       =   0   'False
  34.          Italic          =   0   'False
  35.          Strikethrough   =   0   'False
  36.       EndProperty
  37.       Height          =   300
  38.       Left            =   2010
  39.       TabIndex        =   1
  40.       Top             =   1260
  41.       Width           =   1120
  42.    End
  43.    Begin VB.CommandButton cmdClose 
  44.       Caption         =   "取消(&C)"
  45.       BeginProperty Font 
  46.          Name            =   "宋体"
  47.          Size            =   9
  48.          Charset         =   134
  49.          Weight          =   400
  50.          Underline       =   0   'False
  51.          Italic          =   0   'False
  52.          Strikethrough   =   0   'False
  53.       EndProperty
  54.       Height          =   300
  55.       Left            =   3210
  56.       TabIndex        =   0
  57.       Top             =   1260
  58.       Width           =   1120
  59.    End
  60.    Begin VB.Label labTitle 
  61.       Caption         =   "月末结帐"
  62.       BeginProperty Font 
  63.          Name            =   "宋体"
  64.          Size            =   9
  65.          Charset         =   134
  66.          Weight          =   400
  67.          Underline       =   0   'False
  68.          Italic          =   0   'False
  69.          Strikethrough   =   0   'False
  70.       EndProperty
  71.       ForeColor       =   &H00000000&
  72.       Height          =   225
  73.       Left            =   600
  74.       TabIndex        =   2
  75.       Top             =   480
  76.       Width           =   3555
  77.    End
  78. End
  79. Attribute VB_Name = "RP_FrmYmjz"
  80. Attribute VB_GlobalNameSpace = False
  81. Attribute VB_Creatable = False
  82. Attribute VB_PredeclaredId = True
  83. Attribute VB_Exposed = False
  84. '********************************************************************
  85. '*    模 块 名 称 :月末结帐(应收、应付)
  86. '*    功 能 描 述 :执行月末的结帐
  87. '*    程序员姓名  :奚俊峰
  88. '*    最后修改人  :
  89. '*    最后修改时间:2002-01-18
  90. '*    备        注:
  91. '********************************************************************
  92. Dim Int_Year As Integer     '当前会计年度
  93. Dim Int_Period As Integer   '当前会计期间
  94. Const RPField = "ApJzbz"
  95. Const RPFlag = "AP"
  96. Const RPTitle = "百利/ERP5.0-应付系统"
  97. Const RPFinishParaName = "Ap_CshWbBs"
  98. Const RPAfterVouchName = "Ap_IsSettleAfterVouch"
  99. Const RPCheckFlag = "A2"
  100. Private Sub Form_Load()
  101.     Dim Rs As Recordset
  102.         
  103.     Set Rs = Cw_DataEnvi.DataConnect.Execute("Select top 1 * From gy_kjrlb Where " & RPField & "=0 Order by kjyear,period")
  104.     With Rs
  105.         If Not .EOF Then
  106.             Int_Year = .Fields("kjyear")
  107.             Int_Period = .Fields("period")
  108.         End If
  109.     End With
  110.     
  111.    labTitle.Caption = "请确认是否执行" & Trim(Str(Int_Year)) + "年" + Mid(Trim(Str(100 + Int_Period)), 2, 2) + "月月末结帐?"
  112.     
  113. End Sub
  114. '关闭窗体
  115. Private Sub cmdClose_Click()
  116.     Unload Me
  117. End Sub
  118. '执行结帐
  119. Private Sub cmdExecute_Click()
  120.     Dim tStr As String
  121.     
  122.     If IsFinish = False Then
  123.         MsgBox "初始化没有完成,不能月末结帐!", vbCritical, RPTitle
  124.         Exit Sub
  125.     End If
  126.    
  127.     tStr = IsCheck
  128.     If tStr <> "" Then
  129.         MsgBox tStr, vbCritical, RPTitle
  130.         Exit Sub
  131.     End If
  132.     
  133.     If IsContinueFlag = True Then
  134.         tStr = CheckVouch
  135.         If tStr <> "" Then
  136.             MsgBox tStr, vbCritical, RPTitle
  137.             Exit Sub
  138.         End If
  139.     End If
  140.     If Fun_JzCheck = True Then Unload Me
  141. End Sub
  142. '月末结帐过程处理
  143. Private Function Fun_JzCheck() As Boolean                         '月末结帐前检查
  144.     Dim RecTemp As New ADODB.Recordset   '临时使用动态集
  145.     Dim Rs As Recordset
  146.     Dim str_Sql As String
  147.     Dim int_NextYear As String           '下一会计年
  148.     Dim int_NextPeriod As Integer
  149.     
  150.     str_CurrentYear = CStr(Int_Year)
  151.     If Int_Period = 12 Then
  152.         int_NextYear = Int_Year + 1
  153.         int_NextPeriod = 1
  154.     Else
  155.         int_NextYear = Int_Year
  156.         int_NextPeriod = Int_Period + 1
  157.     End If
  158.     
  159.     On Error GoTo ErrHandle
  160.     Cw_DataEnvi.DataConnect.BeginTrans
  161.     
  162.     If Int_Period = 12 Then
  163.         '检测是否存在当前会计日历表
  164.         str_Sql = "select * from gy_kjrlb where kjyear='" & int_NextYear & "'"
  165.         Set Rs = Cw_DataEnvi.DataConnect.Execute(str_Sql)
  166.         If Rs.EOF Then
  167.             MsgBox "请先设置" & int_NextYear & "年度的会计日历表!", vbInformation, RPTitle
  168.             Cw_DataEnvi.DataConnect.RollbackTrans
  169.             Exit Function
  170.         End If
  171.     End If
  172.     
  173.     '设置总帐下期间的金额、数量、外币余额
  174.     If Int_Period = 12 Then
  175.         str_Sql = "insert into Rp_AccSum(RpFlag,PsCode,DeptCode,PersonCode,ForeignCurrCode,KjYear,Period,YbNcye,YbQcye,YbYsje,YbSsje,YbQmye,BbNcye,BbQcye,BbYsje,BbSsje,BbQmye) " & _
  176.         "select a.RpFlag,a.PsCode,a.DeptCode,a.PersonCode,a.ForeignCurrCode,'" & int_NextYear & "','" & int_NextPeriod & "'," & _
  177.         "a.YbQmye,a.YbQmye,0,0,a.YbQmye,a.BbQmye,a.BbQmye,0,0,a.BbQmye " & _
  178.         "From Rp_AccSum a " & _
  179.         "where a.Kjyear='" & Int_Year & "' and a.Period='" & Int_Period & "' and a.RpFlag='" & RPFlag & "'" & _
  180.         "order by AccSumId"
  181.     Else
  182.         str_Sql = "insert into Rp_AccSum(RpFlag,PsCode,DeptCode,PersonCode,ForeignCurrCode,KjYear,Period,YbNcye,YbQcye,YbYsje,YbSsje,YbQmye,BbNcye,BbQcye,BbYsje,BbSsje,BbQmye) " & _
  183.         "select a.RpFlag,a.PsCode,a.DeptCode,a.PersonCode,a.ForeignCurrCode,'" & int_NextYear & "','" & int_NextPeriod & "'," & _
  184.         "a.YbNcye,a.YbQmye,0,0,a.YbQmye,a.BbNcye,a.BbQmye,0,0,a.BbQmye " & _
  185.         "From Rp_AccSum a " & _
  186.         "where a.Kjyear='" & Int_Year & "' and a.Period='" & Int_Period & "' and a.RpFlag='" & RPFlag & "'" & _
  187.         "order by AccSumId"
  188.     End If
  189.     Cw_DataEnvi.DataConnect.Execute str_Sql
  190.     
  191.     str_Sql = "update gy_kjrlb set " & RPField & "=1 where kjyear='" & Int_Year & "' and period='" & Int_Period & "'"
  192.     
  193.     Cw_DataEnvi.DataConnect.Execute str_Sql
  194.     
  195.     Cw_DataEnvi.DataConnect.CommitTrans
  196.     
  197.     MsgBox Int_Year & "年" & Int_Period & "月末结帐成功!", vbInformation, RPTitle
  198.     
  199.     Fun_JzCheck = True
  200.     Exit Function
  201. ErrHandle:
  202.     Fun_JzCheck = False
  203.     Cw_DataEnvi.DataConnect.RollbackTrans
  204.     MsgBox "月末结帐出现意外错误,请重试!", vbCritical, RPTitle
  205. End Function
  206. '是否初始化完成
  207. Function IsFinish() As Boolean
  208.     Dim Rs As Recordset
  209.     Dim str_Sql As String
  210.     
  211.     str_Sql = "select isnull(ItemValue,'') from Gy_AccInformation where ItemCode='" & RPFinishParaName & "'"
  212.     Set Rs = Cw_DataEnvi.DataConnect.Execute(str_Sql)
  213.     
  214.     If Rs.EOF Then Exit Function
  215.     
  216.     If Val(Rs(0)) = 0 Then
  217.         IsFinish = False
  218.     Else
  219.         IsFinish = True
  220.     End If
  221. End Function
  222. '当存在未生成凭证的单据时,是否可以继续月末结帐
  223. Function IsContinueFlag() As Boolean
  224.     Dim Rs As Recordset
  225.     Dim str_Sql As String
  226.     
  227.     str_Sql = "select isnull(ItemValue,'') from Gy_AccInformation where ItemCode='" & RPAfterVouchName & "'"
  228.     Set Rs = Cw_DataEnvi.DataConnect.Execute(str_Sql)
  229.     
  230.     If Rs.EOF Then Exit Function
  231.     
  232.     If Val(Rs(0)) = 0 Then
  233.         IsContinueFlag = False
  234.     Else
  235.         IsContinueFlag = True
  236.     End If
  237. End Function
  238. '判断是否本期单据已全部审核
  239. Function IsCheck() As String
  240.     Dim Rs As Recordset
  241.     Dim str_Sql As String
  242.     Dim str_Result As String
  243.     
  244.     str_Sql = "select CloseBill=(select count(*) from RP_CloseBill where Kjyear=" & Int_Year & " and Period=" & Int_Period & " and isnull(Checker,'')='' and RpFlag='" & RPFlag & "')," & _
  245.                      "Note=(select count(*) from RP_Note where Kjyear=" & Int_Year & " and Period=" & Int_Period & " and isnull(Checker,'')='' and RpFlag='" & RPFlag & "')," & _
  246.                      "OtherBill=(select count(*) from RP_OtherBill where Kjyear=" & Int_Year & " and Period=" & Int_Period & " and isnull(Checker,'')='' and RpFlag='" & RPFlag & "')"
  247.     Set Rs = Cw_DataEnvi.DataConnect.Execute(str_Sql)
  248.     
  249.     If Rs("CloseBill") > 0 Then
  250.         str_Result = "RP_CloseBill存在未审核单据,"
  251.     End If
  252.     
  253.     If Rs("Note") > 0 Then
  254.         str_Result = str_Result & vbCrLf & "RP_Note存在未审核单据,"
  255.     End If
  256.     
  257.     If Rs("OtherBill") > 0 Then
  258.         str_Result = str_Result & vbCrLf & "RP_OtherBill存在未审核单据,"
  259.     End If
  260.     
  261.     If str_Result = "" Then
  262.         IsCheck = ""
  263.     Else
  264.         str_Result = Left(str_Result, Len(str_Result) - 1) & "!"
  265.         IsCheck = "系统存在未审核单据!"
  266.     End If
  267. End Function
  268. '检查当前期间是否有未生成凭证的单据
  269. Function CheckVouch() As String
  270.     Dim Rs As Recordset
  271.     Dim str_Sql As String
  272.     Dim str_Result As String
  273.     
  274.     str_Sql = "select AccList=(select count(*) from RP_AccList where Kjyear=" & Int_Year & " and Period=" & Int_Period & " and VouchId=0 and StartFlag=0 and RpFlag='" & RPFlag & "')," & _
  275.                      "Cancel=(select count(*) from RP_Cancel where CancelItemCode='" & RPCheckFlag & "' and  VouchId=0 and RpFlag='" & RPFlag & "')," & _
  276.                      "Note=(select count(*) from RP_Note where Kjyear=" & Int_Year & " and Period=" & Int_Period & " and VouchId=0 and StartFlag=0 and RpFlag='" & RPFlag & "')," & _
  277.                      "NoteClose=(select count(*) from RP_NoteClose where Kjyear=" & Int_Year & " and Period=" & Int_Period & " and VouchId=0 and RpFlag='" & RPFlag & "')"
  278.     Set Rs = Cw_DataEnvi.DataConnect.Execute(str_Sql)
  279.     
  280.     If Rs("AccList") > 0 Then
  281.         str_Result = "RP_AccList存在未生成凭证的单据,"
  282.     End If
  283.     
  284.     If Rs("Cancel") > 0 Then
  285.         str_Result = str_Result & vbCrLf & "RP_Cancel存在未生成凭证的单据,"
  286.     End If
  287.     
  288.     If Rs("Note") > 0 Then
  289.         str_Result = str_Result & vbCrLf & "RP_Note存在未生成凭证的单据,"
  290.     End If
  291.     
  292.     If Rs("NoteClose") > 0 Then
  293.         str_Result = str_Result & vbCrLf & "RP_NoteClose存在未生成凭证的单据,"
  294.     End If
  295.     If str_Result = "" Then
  296.         CheckVouch = ""
  297.     Else
  298.         str_Result = Left(str_Result, Len(str_Result) - 1) & "!"
  299.         CheckVouch = "系统存在未生成凭证的单据!"
  300.     End If
  301. End Function