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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form RP_FrmYmjz 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "月末结帐"
  5.    ClientHeight    =   2025
  6.    ClientLeft      =   2760
  7.    ClientTop       =   3750
  8.    ClientWidth     =   4515
  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     =   2025
  23.    ScaleWidth      =   4515
  24.    ShowInTaskbar   =   0   'False
  25.    StartUpPosition =   1  '所有者中心
  26.    Begin VB.CheckBox chkVouch 
  27.       Caption         =   "存在未生成凭证的单据时,是否执行月末结帐"
  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          =   285
  38.       Left            =   330
  39.       TabIndex        =   3
  40.       Top             =   780
  41.       Width           =   3855
  42.    End
  43.    Begin VB.CommandButton cmdExecute 
  44.       Caption         =   "结帐(&E)"
  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            =   1890
  56.       TabIndex        =   1
  57.       Top             =   1530
  58.       Width           =   1120
  59.    End
  60.    Begin VB.CommandButton cmdClose 
  61.       Caption         =   "关闭(&C)"
  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.       Height          =   300
  72.       Left            =   3090
  73.       TabIndex        =   0
  74.       Top             =   1530
  75.       Width           =   1120
  76.    End
  77.    Begin VB.Label labTitle 
  78.       Caption         =   "2002年01月月末结帐"
  79.       BeginProperty Font 
  80.          Name            =   "宋体"
  81.          Size            =   12
  82.          Charset         =   134
  83.          Weight          =   700
  84.          Underline       =   0   'False
  85.          Italic          =   0   'False
  86.          Strikethrough   =   0   'False
  87.       EndProperty
  88.       ForeColor       =   &H00000000&
  89.       Height          =   225
  90.       Left            =   1140
  91.       TabIndex        =   2
  92.       Top             =   150
  93.       Width           =   2355
  94.    End
  95.    Begin VB.Line Line2 
  96.       BorderColor     =   &H00FFFFFF&
  97.       Index           =   2
  98.       X1              =   330
  99.       X2              =   4260
  100.       Y1              =   1290
  101.       Y2              =   1290
  102.    End
  103.    Begin VB.Line Line1 
  104.       Index           =   2
  105.       X1              =   330
  106.       X2              =   4200
  107.       Y1              =   1260
  108.       Y2              =   1260
  109.    End
  110. End
  111. Attribute VB_Name = "RP_FrmYmjz"
  112. Attribute VB_GlobalNameSpace = False
  113. Attribute VB_Creatable = False
  114. Attribute VB_PredeclaredId = True
  115. Attribute VB_Exposed = False
  116. '********************************************************************
  117. '*    模 块 名 称 :月末结帐(应收、应付)
  118. '*    功 能 描 述 :执行月末的结帐
  119. '*    程序员姓名  :奚俊峰
  120. '*    最后修改人  :
  121. '*    最后修改时间:2002-01-18
  122. '*    备        注:
  123. '********************************************************************
  124. Dim Int_Year As Integer     '当前会计年度
  125. Dim Int_Period As Integer   '当前会计期间
  126. Const RPField = "ApJzbz"
  127. Const RPFlag = "AP"
  128. Const RPTitle = "百利/ERP5.0-应收系统"
  129. Private Sub Form_Load()
  130.     Dim Rs As Recordset
  131.         
  132.     Set Rs = Cw_DataEnvi.DataConnect.Execute("Select top 1 * From gy_kjrlb Where " & RPField & "=0 Order by kjyear,period")
  133.     With Rs
  134.         If Not .EOF Then
  135.             Int_Year = .Fields("kjyear")
  136.             Int_Period = .Fields("period")
  137.         End If
  138.     End With
  139.     
  140.    labTitle.Caption = Trim(Str(Int_Year)) + "年" + Mid(Trim(Str(100 + Int_Period)), 2, 2) + "月月末结帐"
  141.     
  142. End Sub
  143. '关闭窗体
  144. Private Sub cmdClose_Click()
  145.     Unload Me
  146. End Sub
  147. '执行结帐
  148. Private Sub cmdExecute_Click()
  149.     If chkVouch.Value = 1 Then
  150.         If CheckVouch = False Then
  151.             MsgBox Int_Year & "年" & Int_Period & "月存在未生成凭证的单据," & vbCrLf & "不能执行月末结帐!", vbInformation, RPTitle
  152.             Exit Sub
  153.         End If
  154.     End If
  155.     If Fun_JzCheck = True Then Unload Me
  156. End Sub
  157. '月末结帐过程处理
  158. Private Function Fun_JzCheck() As Boolean                         '月末结帐前检查
  159.     Dim RecTemp As New ADODB.Recordset   '临时使用动态集
  160.     Dim Rs As Recordset
  161.     Dim str_Sql As String
  162.     Dim int_NextYear As String           '下一会计年
  163.     Dim int_NextPeriod As Integer
  164.     
  165.     str_CurrentYear = CStr(Int_Year)
  166.     If Int_Period = 12 Then
  167.         int_NextYear = Int_Year + 1
  168.         int_NextPeriod = 1
  169.     Else
  170.         int_NextYear = Int_Year
  171.         int_NextPeriod = Int_Period + 1
  172.     End If
  173.     
  174.     On Error GoTo ErrHandle
  175.     Cw_DataEnvi.DataConnect.BeginTrans
  176.     
  177.     If Int_Period = 12 Then
  178.         '检测是否存在当前会计日历表
  179.         str_Sql = "select * from gy_kjrlb where kjyear='" & int_NextYear & "'"
  180.         Set Rs = Cw_DataEnvi.DataConnect.Execute(str_Sql)
  181.         If Rs.EOF Then
  182.             MsgBox "请先设置" & int_NextYear & "年度的会计日历表!", vbInformation, RPTitle
  183.             Cw_DataEnvi.DataConnect.RollbackTrans
  184.             Exit Function
  185.         End If
  186.     End If
  187.     
  188.     '设置总帐下期间的金额、数量、外币余额
  189.     If Int_Period = 12 Then
  190.         str_Sql = "insert into Rp_AccSum(RpFlag,PsCode,DeptCode,PersonCode,ForeignCurrCode,KjYear,Period,YbNcye,YbQcye,YbYsje,YbSsje,YbQmye,BbNcye,BbQcye,BbYsje,BbSsje,BbQmye) " & _
  191.         "select a.RpFlag,a.PsCode,a.DeptCode,a.PersonCode,a.ForeignCurrCode,'" & int_NextYear & "','" & int_NextPeriod & "'," & _
  192.         "a.YbQmye,a.YbQmye,0,0,a.YbQmye,a.BbQmye,a.BbQmye,0,0,a.BbQmye " & _
  193.         "From Rp_AccSum a " & _
  194.         "where a.Kjyear='" & Int_Year & "' and a.Period='" & Int_Period & "' and a.RpFlag='" & RPFlag & "'" & _
  195.         "order by AccSumId"
  196.     Else
  197.         str_Sql = "insert into Rp_AccSum(RpFlag,PsCode,DeptCode,PersonCode,ForeignCurrCode,KjYear,Period,YbNcye,YbQcye,YbYsje,YbSsje,YbQmye,BbNcye,BbQcye,BbYsje,BbSsje,BbQmye) " & _
  198.         "select a.RpFlag,a.PsCode,a.DeptCode,a.PersonCode,a.ForeignCurrCode,'" & int_NextYear & "','" & int_NextPeriod & "'," & _
  199.         "a.YbNcye,a.YbQmye,0,0,a.YbQmye,a.BbNcye,a.BbQmye,0,0,a.BbQmye " & _
  200.         "From Rp_AccSum a " & _
  201.         "where a.Kjyear='" & Int_Year & "' and a.Period='" & Int_Period & "' and a.RpFlag='" & RPFlag & "'" & _
  202.         "order by AccSumId"
  203.     End If
  204.     Cw_DataEnvi.DataConnect.Execute str_Sql
  205.     
  206.     str_Sql = "update gy_kjrlb set " & RPField & "=1 where kjyear='" & Int_Year & "' and period='" & Int_Period & "'"
  207.     
  208.     Cw_DataEnvi.DataConnect.Execute str_Sql
  209.     
  210.     Cw_DataEnvi.DataConnect.CommitTrans
  211.     
  212.     MsgBox Int_Year & "年" & Int_Period & "月末结帐成功!", vbInformation, RPTitle
  213.     
  214.     Fun_JzCheck = True
  215.     Exit Function
  216. ErrHandle:
  217.     Fun_JzCheck = False
  218.     Cw_DataEnvi.DataConnect.RollbackTrans
  219.     MsgBox "月末结帐出现意外错误,请重试!", vbCritical, RPTitle
  220. End Function
  221. '检查当前期间是否有未生成凭证的单据
  222. Function CheckVouch() As Boolean
  223.     Dim Rs As Recordset
  224.     Dim str_Sql As String
  225.     
  226.     str_Sql = "select count(*) from RP_AccList where Kjyear=" & Int_Year & " and Period=" & Int_Period & " and VouchId=0 and RpFlag='" & RPFlag & "'"
  227.     Set Rs = Cw_DataEnvi.DataConnect.Execute(str_Sql)
  228.     If Rs(0) > 0 Then
  229.         CheckVouch = False
  230.     Else
  231.         CheckVouch = True
  232.     End If
  233. End Function