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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "tabctl32.ocx"
  3. Begin VB.Form CL_EndDispose 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "期末处理"
  6.    ClientHeight    =   4980
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   6060
  10.    HelpContextID   =   130406
  11.    Icon            =   "处理_期末处理.frx":0000
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   4980
  16.    ScaleWidth      =   6060
  17.    ShowInTaskbar   =   0   'False
  18.    StartUpPosition =   2  'CenterScreen
  19.    Begin VB.CommandButton Com_Qx 
  20.       Cancel          =   -1  'True
  21.       Caption         =   "取消(&C)"
  22.       Height          =   300
  23.       Left            =   4800
  24.       TabIndex        =   10
  25.       Top             =   4560
  26.       Width           =   1120
  27.    End
  28.    Begin TabDlg.SSTab SSTab 
  29.       Height          =   4035
  30.       Left            =   90
  31.       TabIndex        =   0
  32.       Top             =   405
  33.       Width           =   5865
  34.       _ExtentX        =   10345
  35.       _ExtentY        =   7117
  36.       _Version        =   393216
  37.       Style           =   1
  38.       Tabs            =   2
  39.       TabHeight       =   520
  40.       TabCaption(0)   =   "未处理仓库列表"
  41.       TabPicture(0)   =   "处理_期末处理.frx":1042
  42.       Tab(0).ControlEnabled=   -1  'True
  43.       Tab(0).Control(0)=   "Com_Qbfd(0)"
  44.       Tab(0).Control(0).Enabled=   0   'False
  45.       Tab(0).Control(1)=   "Com_Qbxz(0)"
  46.       Tab(0).Control(1).Enabled=   0   'False
  47.       Tab(0).Control(2)=   "Lst_Cklb(0)"
  48.       Tab(0).Control(2).Enabled=   0   'False
  49.       Tab(0).Control(3)=   "Com_AvgPrice"
  50.       Tab(0).Control(3).Enabled=   0   'False
  51.       Tab(0).Control(4)=   "Com_Qd"
  52.       Tab(0).Control(4).Enabled=   0   'False
  53.       Tab(0).ControlCount=   5
  54.       TabCaption(1)   =   "已处理仓库列表"
  55.       TabPicture(1)   =   "处理_期末处理.frx":105E
  56.       Tab(1).ControlEnabled=   0   'False
  57.       Tab(1).Control(0)=   "Com_Hfqmcl"
  58.       Tab(1).Control(0).Enabled=   0   'False
  59.       Tab(1).Control(1)=   "Com_Qbfd(1)"
  60.       Tab(1).Control(1).Enabled=   0   'False
  61.       Tab(1).Control(2)=   "Com_Qbxz(1)"
  62.       Tab(1).Control(2).Enabled=   0   'False
  63.       Tab(1).Control(3)=   "Lst_Cklb(1)"
  64.       Tab(1).Control(3).Enabled=   0   'False
  65.       Tab(1).ControlCount=   4
  66.       Begin VB.CommandButton Com_Qd 
  67.          Caption         =   "期末处理(&D)"
  68.          Height          =   300
  69.          Left            =   4410
  70.          TabIndex        =   9
  71.          Top             =   3600
  72.          Width           =   1290
  73.       End
  74.       Begin VB.CommandButton Com_AvgPrice 
  75.          Caption         =   "全月平均单价调整"
  76.          Height          =   300
  77.          Left            =   120
  78.          TabIndex        =   8
  79.          Top             =   3600
  80.          Width           =   1695
  81.       End
  82.       Begin VB.ListBox Lst_Cklb 
  83.          Height          =   2985
  84.          Index           =   0
  85.          Left            =   120
  86.          Style           =   1  'Checkbox
  87.          TabIndex        =   7
  88.          Top             =   450
  89.          Width           =   5580
  90.       End
  91.       Begin VB.CommandButton Com_Qbxz 
  92.          Caption         =   "全选(&A)"
  93.          Height          =   300
  94.          Index           =   0
  95.          Left            =   3180
  96.          TabIndex        =   6
  97.          Top             =   3600
  98.          Width           =   1120
  99.       End
  100.       Begin VB.CommandButton Com_Qbfd 
  101.          Caption         =   "全清(&L)"
  102.          Height          =   300
  103.          Index           =   0
  104.          Left            =   1950
  105.          TabIndex        =   5
  106.          Top             =   3600
  107.          Width           =   1120
  108.       End
  109.       Begin VB.ListBox Lst_Cklb 
  110.          Height          =   2985
  111.          Index           =   1
  112.          Left            =   -74880
  113.          Style           =   1  'Checkbox
  114.          TabIndex        =   4
  115.          Top             =   450
  116.          Width           =   5580
  117.       End
  118.       Begin VB.CommandButton Com_Qbxz 
  119.          Caption         =   "全选(&A)"
  120.          Height          =   300
  121.          Index           =   1
  122.          Left            =   -72150
  123.          TabIndex        =   3
  124.          Top             =   3570
  125.          Width           =   1120
  126.       End
  127.       Begin VB.CommandButton Com_Qbfd 
  128.          Caption         =   "全清(&L)"
  129.          Height          =   300
  130.          Index           =   1
  131.          Left            =   -73380
  132.          TabIndex        =   2
  133.          Top             =   3570
  134.          Width           =   1120
  135.       End
  136.       Begin VB.CommandButton Com_Hfqmcl 
  137.          Caption         =   "恢复期末处理(&U)"
  138.          Height          =   300
  139.          Left            =   -70920
  140.          TabIndex        =   1
  141.          Top             =   3570
  142.          Width           =   1620
  143.       End
  144.    End
  145.    Begin VB.Label Label1 
  146.       AutoSize        =   -1  'True
  147.       Caption         =   "数据正在处理中......"
  148.       ForeColor       =   &H000000FF&
  149.       Height          =   240
  150.       Left            =   180
  151.       TabIndex        =   13
  152.       Top             =   4590
  153.       Visible         =   0   'False
  154.       Width           =   1800
  155.    End
  156.    Begin VB.Label Lbl_labText 
  157.       AutoSize        =   -1  'True
  158.       Caption         =   "Label1"
  159.       Height          =   210
  160.       Left            =   1110
  161.       TabIndex        =   12
  162.       Top             =   90
  163.       Width           =   1830
  164.    End
  165.    Begin VB.Label Lbl_labTitle 
  166.       AutoSize        =   -1  'True
  167.       Caption         =   "会计期间:"
  168.       Height          =   210
  169.       Left            =   180
  170.       TabIndex        =   11
  171.       Top             =   90
  172.       Width           =   810
  173.    End
  174. End
  175. Attribute VB_Name = "CL_EndDispose"
  176. Attribute VB_GlobalNameSpace = False
  177. Attribute VB_Creatable = False
  178. Attribute VB_PredeclaredId = True
  179. Attribute VB_Exposed = False
  180. '**************************************************************************
  181. '*    模 块 名 称 :期末处理
  182. '*    功 能 描 述 :
  183. '*    程序员姓名  :杨波
  184. '*    最后修改人  :杨波
  185. '*    最后修改时间:2001/12/10
  186. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  187. '**************************************************************************
  188. Dim PlanQuery_Cond As String        '计划价限制条件
  189. Dim MoveQuery_Cond As String        '移动平均限制条件
  190. Dim AvgQuery_Cond As String         '全月平均限制条件
  191. Dim Query_Cond As String            '全部限制条件
  192. Dim WH_code() As String             '仓库编码
  193. Dim Wh_Pricemode() As String        '仓库计价方法
  194. Dim WH_codefz() As String           '已期末处理仓库编码
  195. Dim Wh_Pricemodefz() As String      '已期末处理仓库计价方法
  196. Dim CallFlag As Boolean             '调用标记
  197. Dim Tsxx As String                  '提示信息
  198. Dim Jsqte%                          '计数器
  199. Dim RecCount As Integer             '记录数
  200. Private Sub Com_AvgPrice_Click()    '全月平均单价调整
  201.   
  202.     On Error GoTo Error
  203.  
  204.     '有效性判断
  205.     If Not Yxxpd Then Exit Sub
  206.     
  207.     '无全月平均仓库不进行计算
  208.     If AvgQuery_Cond = "(1=0)" Then
  209.         Tsxx = "无采用全月平均法计价的仓库!"
  210.         Call Xtxxts(Tsxx, 0, 4)
  211.         Label1.Visible = False
  212.         Exit Sub
  213.     End If
  214.  
  215.     Label1.Visible = True
  216.     Label1.Refresh
  217.  
  218.     '系统处理暂估
  219.     If Xtsfclzg Then
  220.         Call Djzgcl        '暂估处理
  221.         Call Tzzg          '调整总帐
  222.     End If
  223.  
  224.  
  225.     '计算全月平均单价
  226.     CallFlag = True
  227.     
  228.     If PdAvgprice Then
  229.         
  230.         Label1.Visible = False
  231.         
  232.         If Tsxx = "采用全月平均法核算的仓库本月无出库!" Then
  233.             Call Xtxxts(Tsxx, 0, 4)
  234.             Exit Sub
  235.         End If
  236.         
  237.         '平均单价小于等于零时,显示修改平均单价
  238.         Edit_Flag = False
  239.         Load CL_MonthAveragePrice
  240.         CL_MonthAveragePrice.Query_Cond = AvgQuery_Cond
  241.         CL_MonthAveragePrice.Show 1
  242.     
  243.         If Edit_Flag Then
  244.             Tsxx = "全月平均单价计算完毕,已保存!"
  245.         Else
  246.             Tsxx = "全月平均单价计算完毕,未保存!"
  247.         End If
  248.         Call Xtxxts(Tsxx, 0, 3)
  249.     Else
  250.         Label1.Visible = False
  251.         Tsxx = "无符合条件的记录!"
  252.         Call Xtxxts(Tsxx, 0, 4)
  253.     End If
  254.  
  255.     Exit Sub
  256.  
  257. Error:
  258.     Tsxx = "数据发生冲突,稍候再试!"
  259.     Call Xtxxts(Tsxx, 0, 1)
  260.   
  261. End Sub
  262. Private Sub Com_Hfqmcl_Click()        '恢复期末处理
  263.   
  264.     Dim Rectemp As New ADODB.Recordset
  265.     Dim RecTempFz As New ADODB.Recordset
  266.     Dim Now_period As Long
  267.     Dim Msg As Integer
  268.     
  269.     Dim SqlStr As String
  270.   
  271.     On Error GoTo Error
  272.   
  273.     '操作日期
  274.     If Month(Xtrq) <> PGNowmon Then
  275.         Tsxx = "操作日期不在当前会计期间(" + Trim(Str(PGKjYear)) + "." + Trim(Str(PGNowmon)) + ")之内,请重新登录!"
  276.         Call Xtxxts(Tsxx, 0, 1)
  277.         Exit Sub
  278.     End If
  279.  
  280.     '至少选中一个仓库
  281.     If Lst_Cklb(1).SelCount = 0 Then
  282.         Tsxx = "至少选中一个仓库"
  283.         Call Xtxxts(Tsxx, 0, 1)
  284.         Exit Sub
  285.     End If
  286.  
  287.     '限定条件
  288.     Query_Cond = "1=0"
  289.     AvgQuery_Cond = "1=0"
  290.     PlanQuery_Cond = "1=0"
  291.     MoveQuery_Cond = "1=0"
  292.   
  293.     For Jsqte = 0 To Lst_Cklb(0).ListCount - 1
  294.         If Lst_Cklb(0).Selected(Jsqte) = True Then
  295.             Select Case Wh_Pricemode(Jsqte)
  296.                 Case "计划价法"
  297.                     PlanQuery_Cond = PlanQuery_Cond + " or view.WhCode='" & WH_codefz(Jsqte) & "'"
  298.                 Case "全月平均法"
  299.                     AvgQuery_Cond = AvgQuery_Cond + " or view.WhCode='" & WH_codefz(Jsqte) & "'"
  300.                 Case "移动平均法"
  301.                     MoveQuery_Cond = MoveQuery_Cond + " or view.WhCode='" & WH_codefz(Jsqte) & "'"
  302.             End Select
  303.             
  304.             Query_Cond = Query_Cond + " or view.WhCode='" & WH_codefz(Jsqte) & "'"
  305.         
  306.         End If
  307.     Next Jsqte
  308.     
  309.     Query_Cond = "(" & Query_Cond & ")"
  310.     AvgQuery_Cond = "(" & AvgQuery_Cond & ")"
  311.     PlanQuery_Cond = "(" & PlanQuery_Cond & ")"
  312.     MoveQuery_Cond = "(" & MoveQuery_Cond & ")"
  313.  
  314.     Now_period = PGNowmon
  315.     '判断单据是否全部记帐
  316.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute("SELECT chhsjzbz FROM GY_kjrlb WHERE KjYear='" & PGKjYear & "' and Period='" & Now_period & "'")
  317.     If Not Rectemp.EOF Then
  318.         If Rectemp.Fields("chhsjzbz") Then
  319.             Tsxx = "当前会计期间已结帐,不允许恢复期末处理!"
  320.             Call Xtxxts(Tsxx, 0, 1)
  321.             Exit Sub
  322.         End If
  323.     End If
  324.     
  325.     '是否有单据已生成凭证
  326.     For Jsqte = 0 To Lst_Cklb(1).ListCount - 1
  327.         If Lst_Cklb(1).Selected(Jsqte) Then
  328.             SqlStr = "SELECT Vouchid,WhName FROM Chhs_V_List WHERE WhCode='" & WH_codefz(Jsqte) & "' AND Period='" & Now_period & "' AND Vouchid<>0"
  329.             Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  330.             
  331.             If Not Rectemp.EOF Then
  332.                 Tsxx = Trim(Rectemp.Fields("WhName")) + "中有部分单据已生成凭证,不允许恢复期末处理!"
  333.                 Call Xtxxts(Tsxx, 0, 4)
  334.                 Exit Sub
  335.             End If
  336.         End If
  337.     Next Jsqte
  338.  
  339.     Tsxx = "是否进行恢复期末处理?"
  340.     Msg = Xtxxts(Tsxx, 1, 2)
  341.     If Not Msg = 6 Then Exit Sub
  342.  
  343.     Label1.Visible = True
  344.     Label1.Refresh
  345.  
  346.     Cw_DataEnvi.DataConnect.BeginTrans
  347.     
  348.     '恢复期末处理
  349.     For Jsqte = 0 To Lst_Cklb(1).ListCount - 1
  350.     
  351.         If Lst_Cklb(1).Selected(Jsqte) Then
  352.             
  353.             '修改收发记录出库金额 单价
  354.             If Wh_Pricemodefz(Jsqte) = "全月平均法" Then
  355.                 
  356.                 SqlStr = "SELECT InoutMainId,InoutSubId FROM Chhs_List WHERE WhCode='" & WH_codefz(Jsqte) & "' AND Period='" & Now_period & "' " & _
  357.                          "AND KjYear='" & PGKjYear & "' AND InOutFlag=0 and SfjeztFlag=0 "
  358.                 Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  359.                 
  360.                 Do While Not Rectemp.EOF
  361.                     SqlStr = "UPDATE GY_InOutSub set IssueMoney=0,Price=0 WHERE InoutMainId='" & Rectemp.Fields("InoutMainId") & "' AND InoutSubId='" & Rectemp.Fields("InoutSubId") & "'"
  362.                     Cw_DataEnvi.DataConnect.Execute (SqlStr)
  363.                     Rectemp.MoveNext
  364.                 Loop
  365.                 
  366.             End If
  367.                 
  368.             If Wh_Pricemodefz(Jsqte) = "全月平均法" Then
  369.             
  370.                 '修改明细帐的出库单价金额
  371.                 SqlStr = "UPDATE Chhs_List SET OutPrice=0 ,OutMoney=0 " & _
  372.                          "WHERE WhCode='" & WH_codefz(Jsqte) & "' AND Period='" & Now_period & "' " & _
  373.                          "AND KjYear='" & PGKjYear & "' and SfjeztFlag=0  and InOutFlag=0 and BillCode<>'1302'"
  374.                 Cw_DataEnvi.DataConnect.Execute (SqlStr)
  375.                 
  376.             Else
  377.                 If Wh_Pricemodefz(Jsqte) = "计划价法" Then
  378.              
  379.                     '删除差异结转单
  380.                     SqlStr = "DELETE Chhs_Diffbill WHERE WhCode='" & WH_codefz(Jsqte) & "' AND KjYear='" & PGKjYear & "' and Period='" & Now_period & "'"
  381.                     Cw_DataEnvi.DataConnect.Execute (SqlStr)
  382.              
  383.                     '删除明细帐中差异结转单
  384.                      SqlStr = "DELETE Chhs_List WHERE WhCode='" & WH_codefz(Jsqte) & "' " & _
  385.                              "AND Period='" & Now_period & "'  and KjYear='" & PGKjYear & "'and BillCode='1307'"
  386.                      Cw_DataEnvi.DataConnect.Execute (SqlStr)
  387.             
  388.                  End If
  389.             End If
  390.             
  391.             '删除明细帐中下月红字回冲单
  392.             If PGNowmon = LastMon Then
  393.                 SqlStr = "DELETE Chhs_List WHERE WhCode='" & WH_codefz(Jsqte) & "' AND Period=1 AND KjYear='" & PGKjYear + 1 & "' and BillCode='1305' "
  394.             Else
  395.                 SqlStr = "DELETE Chhs_List WHERE startflag=0 and WhCode='" & WH_codefz(Jsqte) & "' AND Period='" & Now_period + 1 & "' AND KjYear='" & PGKjYear & "' and BillCode='1305' "
  396.             End If
  397.             Cw_DataEnvi.DataConnect.Execute (SqlStr)
  398.         
  399.             '删除明细帐中蓝字暂估单
  400.             SqlStr = "DELETE Chhs_List WHERE startflag=0 and WhCode='" & WH_codefz(Jsqte) & "' " & _
  401.                      "AND Period='" & Now_period & "' AND KjYear='" & PGKjYear & "' and BillCode='1304' "
  402.             Cw_DataEnvi.DataConnect.Execute (SqlStr)
  403.             
  404.             '清空收发记录采购入库单中记帐人
  405.             SqlStr = "UPDATE GY_InOutMain SET ChalkitupMan='' WHERE WhCode='" & WH_codefz(Jsqte) & "' " & _
  406.                      "AND Period='" & Now_period & "' AND KjYear='" & PGKjYear & "' and BillCode='1201' "
  407.             Cw_DataEnvi.DataConnect.Execute (SqlStr)
  408.         
  409.             '修改期末处理月份
  410.             SqlStr = "UPDATE GY_WareHouse SET EndDealFlagChhs=0 WHERE WhCode='" & WH_codefz(Jsqte) & "'"
  411.             Cw_DataEnvi.DataConnect.Execute (SqlStr)
  412.         End If
  413.     Next Jsqte
  414.                 
  415.     '调整总帐
  416.     Call Tzzz
  417.   
  418.     '恢复物料表中填写出库成本
  419.     Call ReturnNewOutCost
  420.   
  421.     Cw_DataEnvi.DataConnect.CommitTrans
  422.   
  423.     '刷新列表框
  424.     Call AddWarehouseName
  425.     Tsxx = "恢复期末处理完毕!"
  426.     Call Xtxxts(Tsxx, 0, 4)
  427.   
  428.     Label1.Visible = False
  429.   
  430.     Exit Sub
  431.   
  432. Error:
  433.     Cw_DataEnvi.DataConnect.RollbackTrans
  434.     Label1.Visible = False
  435.     Tsxx = "恢复期末处理失败!"
  436.     Call Xtxxts(Tsxx, 0, 1)
  437.   
  438. End Sub
  439. Private Sub Com_Qbfd_Click(Index As Integer) '全部否定
  440.  
  441.     For Jsqte = 0 To Lst_Cklb(Index).ListCount - 1
  442.         Lst_Cklb(Index).Selected(Jsqte) = False
  443.     Next Jsqte
  444. End Sub
  445. Private Sub Com_Qbxz_Click(Index As Integer)   '全部选中
  446.  
  447.     For Jsqte = Lst_Cklb(Index).ListCount - 1 To 0 Step -1
  448.         Lst_Cklb(Index).Selected(Jsqte) = True
  449.     Next Jsqte
  450.        
  451. End Sub
  452. Private Function Yxxpd() As Boolean       '有效性判断
  453.  
  454.     Dim Rectemp As New ADODB.Recordset     '记录集
  455.     Dim SqlStr As String
  456.     Dim SQLstr1 As String
  457.  
  458.     Yxxpd = False
  459.  
  460.     '至少选中一个仓库
  461.     If Lst_Cklb(0).SelCount = 0 Then
  462.         Tsxx = "至少选中一个仓库!"
  463.         Call Xtxxts(Tsxx, 0, 1)
  464.         Exit Function
  465.     End If
  466.  
  467.     '操作日期
  468.     If Month(Xtrq) <> PGNowmon Then
  469.         Tsxx = "操作日期不在当前会计期间(" + Trim(Str(PGKjYear)) + "." + Trim(Str(PGNowmon)) + ")之内,请重新登录!"
  470.         Call Xtxxts(Tsxx, 0, 1)
  471.         Exit Function
  472.     End If
  473.     
  474.     '限定条件
  475.     Query_Cond = "1=0"
  476.     AvgQuery_Cond = "1=0"
  477.     PlanQuery_Cond = "1=0"
  478.     MoveQuery_Cond = "1=0"
  479.     
  480.     For Jsqte = 0 To Lst_Cklb(0).ListCount - 1
  481.         If Lst_Cklb(0).Selected(Jsqte) = True Then
  482.             Select Case Wh_Pricemode(Jsqte)
  483.                 Case "计划价法"
  484.                     PlanQuery_Cond = PlanQuery_Cond + " or view.WhCode='" & WH_code(Jsqte) & "'"
  485.                 Case "全月平均法"
  486.                     AvgQuery_Cond = AvgQuery_Cond + " or view.WhCode='" & WH_code(Jsqte) & "'"
  487.                 Case "移动平均法"
  488.                     MoveQuery_Cond = MoveQuery_Cond + " or view.WhCode='" & WH_code(Jsqte) & "'"
  489.             End Select
  490.             
  491.             Query_Cond = Query_Cond + " or view.WhCode='" & WH_code(Jsqte) & "'"
  492.         
  493.         End If
  494.     Next Jsqte
  495.     
  496.     Query_Cond = "(" & Query_Cond & ")"
  497.     AvgQuery_Cond = "(" & AvgQuery_Cond & ")"
  498.     PlanQuery_Cond = "(" & PlanQuery_Cond & ")"
  499.     MoveQuery_Cond = "(" & MoveQuery_Cond & ")"
  500.    
  501.     '操作日期大于等于单据记帐的最大日期
  502.     SqlStr = Replace(Query_Cond, "view", "a", , , vbTextCompare)
  503.     SqlStr = "select max(chalkdate) as maxdate from chhs_list a  where " & Trim(SqlStr) & " and startflag=0 and billcode<>'1305' and  kjyear=" & Xtyear & " and period=" & Xtmm
  504.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  505.     If Not Rectemp.EOF Then
  506.         If Xtrq < Rectemp.Fields("maxdate") Then
  507.             Tsxx = "操作日期必须>=单据记帐日期 " + Format(CStr(Rectemp.Fields("maxdate")), "yyyy-mm-dd")
  508.             Call Xtxxts(Tsxx, 0, 4)
  509.             Exit Function
  510.         End If
  511.     End If
  512.     
  513.     '判断期初单据是否全部记帐
  514.     SQLstr1 = Replace(Query_Cond, "view", "Chhs_StartInputMain", , , vbTextCompare)
  515.     SqlStr = "SELECT ChalkitupMan from Chhs_StartInputMain " & _
  516.              " WHERE KjYear='" & PGKjYear & "' AND Period ='" & StartMon & "' AND ChalkitupMan='' AND " + SQLstr1
  517.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  518.     
  519.     If Not Rectemp.EOF Then
  520.         Tsxx = "期初单据未全部记帐!"
  521.         Call Xtxxts(Tsxx, 0, 1)
  522.         Exit Function
  523.     End If
  524.     
  525.     '判断日常单据是否全部记帐
  526.     SQLstr1 = Replace(Query_Cond, "view", "GY_InOutMain", , , vbTextCompare)
  527.     SqlStr = "SELECT ChalkitupMan,BillName from GY_InOutMain  " & _
  528.              " LEFT OUTER JOIN  GY_BillNumber ON GY_InOutMain.BillCode = GY_BillNumber.Billcode " & _
  529.              " WHERE  KjYear='" & PGKjYear & "' AND Period ='" & PGNowmon & "' AND ChalkitupMan='' AND " + SQLstr1 & _
  530.              " AND (GY_InOutMain.BillCode in ('1202','1203','1204','1205','1206','1212'))"
  531.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  532.     
  533.     If Not Rectemp.EOF Then
  534.         Tsxx = Trim(Rectemp.Fields("billname") & "") + "未全部记帐!"
  535.         Call Xtxxts(Tsxx, 0, 1)
  536.         Exit Function
  537.     End If
  538.  
  539.     Yxxpd = True
  540.     
  541.     Set Rectemp = Nothing
  542.  
  543. End Function
  544. Private Sub Com_Qd_Click()   '确定
  545.  
  546.     Dim Whcodestr As String      '选中仓库字符串
  547.     Dim Msg As Integer
  548.   
  549.     If Not Yxxpd Then Exit Sub
  550.  
  551.     Tsxx = "是否进行期末处理?"
  552.     Msg = Xtxxts(Tsxx, 1, 2)
  553.     
  554.     If Not Msg = 6 Then Exit Sub
  555.  
  556.     '期末处理
  557.     Call EndDispose
  558.  
  559. End Sub
  560. Private Sub EndDispose()        '期末处理
  561.  
  562.     Dim Rectemp(5) As New ADODB.Recordset
  563.     Dim SqlStr As String
  564.     Dim SQLstr1 As String
  565.     Dim SQLstr2 As String
  566.     Dim Now_period As Long           '当前月份
  567.     Label1.Visible = True
  568.     Label1.Refresh
  569.  
  570.     Now_period = PGNowmon
  571.  
  572.     '判断收发记录中是否暂估
  573.     If Xtclzg Then
  574.         If Not Djzgcl Then
  575.             Exit Sub
  576.         End If
  577.     End If
  578.     
  579.     '调整总帐(解决暂估存货在总帐中不存在问题)
  580.     Call Tzzg
  581.     
  582.     '计算全月平均单价
  583.     CallFlag = False
  584.     If Not PdAvgprice Then
  585.         Call ClearZG
  586.         '调整总帐
  587.         Call Tzzz
  588.         Exit Sub
  589.     End If
  590.   
  591.     '计算差异率
  592.     If Qmclcy Then       '期末是否处理差异
  593.     
  594.         If Not Cyljs Then
  595.             Call ClearZG
  596.             Call ClearPJDJ
  597.             '调整总帐
  598.             Call Tzzz
  599.             Exit Sub
  600.         End If
  601.         
  602.         SQLstr1 = Replace(PlanQuery_Cond, "view", "Chhs_DiffBill", 1, , vbTextCompare)
  603.         SQLstr2 = Replace(PlanQuery_Cond, "view", "Chhs_V_DiffBill", 1, , vbTextCompare)
  604.         SqlStr = "SELECT * FROM Chhs_DiffBill WHERE Period='" & Now_period & "' and " + SQLstr1
  605.         Set Rectemp(0) = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  606.         
  607.         If Not Rectemp(0).EOF Then
  608.             
  609.             CL_DiscrepancyChange.lbl_Tstext(0) = Str(PGKjYear) + "." + Trim(CStr(Now_period))
  610.             CL_DiscrepancyChange.lbl_Tstext(0).Tag = Now_period
  611.             CL_DiscrepancyChange.Query_Cond = SQLstr2
  612.             CL_DiscrepancyChange.Show 1
  613.             
  614.             Tsxx = "是否确认差异结转单?"
  615.             Yesno = Xtxxts(Tsxx, 2, 2)
  616.             
  617.             If Not Yesno = 1 Then
  618.                 GoTo Error_manage
  619.             End If
  620.             
  621.         End If
  622.     End If
  623.     
  624.     On Error GoTo Error_manage
  625.     
  626.     Cw_DataEnvi.DataConnect.BeginTrans
  627.  
  628.  '****************全月平均法
  629.       
  630.     '回填出库单
  631.     SQLstr1 = Replace(AvgQuery_Cond, "view", "Chhs_Mate", 1, , vbTextCompare)
  632.     SqlStr = "SELECT * FROM Chhs_Mate WHERE KjYear='" & PGKjYear & "' and Period='" & Now_period & "' and  " + SQLstr1
  633.     Set Rectemp(0) = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  634.          
  635.     Do While Not Rectemp(0).EOF
  636.         
  637.         '回填收发记录出库单
  638.         SqlStr = "SELECT InOutMainId,InOutSubId,IssueMoney FROM Chhs_V_InOut WHERE Period='" & Now_period & "' AND KjYear='" & PGKjYear & "' " & _
  639.                  " and WhCode='" & Trim(Rectemp(0).Fields("WhCode")) & "' " & _
  640.                  " and MNumber='" & Trim(Rectemp(0).Fields("MNumber")) & "'" & _
  641.                  " and (BillCode='1204' or BillCode='1205' or BillCode='1206') "
  642.         Set Rectemp(1) = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  643.         
  644.         Do While Not Rectemp(1).EOF
  645.             
  646.             If SFjezt Then      '处理实发金额自填
  647.                 If Rectemp(1).Fields("issuemoney") = 0 Then
  648.                     If Rectemp(2).State = 1 Then Rectemp(2).Close
  649.                     SqlStr = "SELECT Price,IssueMoney,FactIssueQuan from GY_InOutSub WHERE InOutMainId='" & Rectemp(1).Fields("InOutMainId") & "' AND InOutSubId='" & Rectemp(1).Fields("InOutSubId") & "'"
  650.                     Rectemp(2).Open SqlStr, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  651.                     If Not Rectemp(2).EOF Then
  652.                         Rectemp(2).Fields("Price") = Format(Val(Rectemp(0).Fields("EndPrice")), "####.0" + String(Xtdjxsws, "0"))
  653.                         Rectemp(2).Fields("IssueMoney") = Format(Val(Rectemp(2).Fields("FactIssueQuan")) * Val(Rectemp(0).Fields("EndPrice")), "####.0" + String(Xtjexsws, "0"))
  654.                         Rectemp(2).UpdateBatch
  655.                     End If
  656.                     
  657.                     '回填明细帐出库单
  658.                     If Rectemp(3).State = 1 Then Rectemp(3).Close
  659.                     SqlStr = "SELECT OutPrice,OutMoney FROM Chhs_List WHERE InOutMainId='" & Rectemp(1).Fields("InOutMainId") & "' AND InOutSubId='" & Rectemp(1).Fields("InOutSubId") & "'"
  660.                     Rectemp(3).Open SqlStr, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  661.                     If Not Rectemp(3).EOF Then
  662.                         Rectemp(3).Fields("OutPrice") = Format(Val(Rectemp(0).Fields("EndPrice")), "####.0" + String(Xtdjxsws, "0"))
  663.                         Rectemp(3).Fields("OutMoney") = Format(Val(Rectemp(2).Fields("FactIssueQuan")) * Val(Rectemp(0).Fields("EndPrice")), "####.0" + String(Xtjexsws, "0"))
  664.                         Rectemp(3).UpdateBatch
  665.                     End If
  666.                 End If
  667.             Else
  668.                 If Rectemp(2).State = 1 Then Rectemp(2).Close
  669.                 SqlStr = "SELECT Price,IssueMoney,FactIssueQuan from GY_InOutSub WHERE InOutMainId='" & Rectemp(1).Fields("InOutMainId") & "' AND InOutSubId='" & Rectemp(1).Fields("InOutSubId") & "'"
  670.                 Rectemp(2).Open SqlStr, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  671.                 If Not Rectemp(2).EOF Then
  672.                     Rectemp(2).Fields("Price") = Format(Val(Rectemp(0).Fields("EndPrice")), "####.0" + String(Xtdjxsws, "0"))
  673.                     Rectemp(2).Fields("IssueMoney") = Format(Val(Rectemp(2).Fields("FactIssueQuan")) * Val(Rectemp(0).Fields("EndPrice")), "####.0" + String(Xtjexsws, "0"))
  674.                     Rectemp(2).UpdateBatch
  675.                 End If
  676.                 
  677.                 '回填明细帐出库单
  678.                 If Rectemp(3).State = 1 Then Rectemp(3).Close
  679.                 SqlStr = "SELECT OutPrice,OutMoney FROM Chhs_List WHERE InOutMainId='" & Rectemp(1).Fields("InOutMainId") & "' AND InOutSubId='" & Rectemp(1).Fields("InOutSubId") & "'"
  680.                 Rectemp(3).Open SqlStr, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  681.                 If Not Rectemp(3).EOF Then
  682.                     Rectemp(3).Fields("OutPrice") = Format(Val(Rectemp(0).Fields("EndPrice")), "####.0" + String(Xtdjxsws, "0"))
  683.                     Rectemp(3).Fields("OutMoney") = Format(Val(Rectemp(2).Fields("FactIssueQuan")) * Val(Rectemp(0).Fields("EndPrice")), "####.0" + String(Xtjexsws, "0"))
  684.                     Rectemp(3).UpdateBatch
  685.                 End If
  686.             End If
  687.             Rectemp(1).MoveNext
  688.         Loop
  689.         Rectemp(0).MoveNext
  690.     Loop
  691.          
  692.     '***********修改期末处理月份
  693.     SQLstr1 = Replace(Query_Cond, "view", "GY_WareHouse", 1, , vbTextCompare)
  694.     SqlStr = "UPDATE GY_WareHouse SET EndDealFlagChhs=1 WHERE " + SQLstr1
  695.     Cw_DataEnvi.DataConnect.Execute (SqlStr)
  696.     '调整总帐
  697.     Call Tzzz
  698.     
  699.     '向物料表中填写出库成本
  700.     Call NewOutCost
  701.      
  702.     Cw_DataEnvi.DataConnect.CommitTrans
  703.      
  704.     '刷新列表框
  705.     Call AddWarehouseName
  706.      
  707.     
  708.      
  709.     Tsxx = "期末处理完毕!"
  710.     Call Xtxxts(Tsxx, 0, 4)
  711.     
  712.     Label1.Visible = False
  713.     
  714.     Set Rectemp(0) = Nothing
  715.     Set Rectemp(1) = Nothing
  716.     Set Rectemp(2) = Nothing
  717.     Set Rectemp(3) = Nothing
  718.     Set Rectemp(4) = Nothing
  719.     Set Rectemp(5) = Nothing
  720.     
  721.     Exit Sub
  722.  
  723.   
  724. Error_manage:
  725.     Call ClearZG
  726.     Call ClearPJDJ
  727.     Call ClearCYJZ
  728.     '调整总帐
  729.     Call Tzzz
  730.     Label1.Visible = False
  731.     Tsxx = "期末处理失败,请稍候再试!"
  732.     Call Xtxxts(Tsxx, 0, 1)
  733.   
  734. End Sub
  735. Private Sub ClearZG()   '处理失败,删除已生成暂估单
  736.     
  737.     Dim Rectemp As New ADODB.Recordset
  738.     Dim SqlStr As String
  739.     Dim SQLstr1 As String
  740.     Dim Now_period As Long           '当前月份
  741.     
  742.     Now_period = PGNowmon
  743.     
  744.     SQLstr1 = Replace(Query_Cond, "view", "Chhs_List", 1, , vbTextCompare)
  745.     SqlStr = "DELETE Chhs_List WHERE KjYear='" & PGKjYear & "' AND Period='" & Now_period & "' AND (BillCode='1304' or BillCode='1306') AND  " + SQLstr1
  746.     Cw_DataEnvi.DataConnect.Execute (SqlStr)
  747.     If Now_period = LastMon Then
  748.         SqlStr = "SELECT Period FROM GY_Kjrlb WHERE Kjyear=" & PGKjYear + 1 & " AND BeginFlag=1"
  749.         Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  750.         If Not Rectemp.EOF Then
  751.             SqlStr = "DELETE Chhs_List WHERE KjYear='" & PGKjYear + 1 & "' AND Period='" & Rectemp.Fields("Period") & "' AND BillCode='1305'  AND  " + SQLstr1
  752.             Cw_DataEnvi.DataConnect.Execute (SqlStr)
  753.         End If
  754.     Else
  755.         SqlStr = "DELETE Chhs_List WHERE KjYear='" & PGKjYear & "' AND Period='" & Now_period + 1 & "' AND BillCode='1305'  AND  " + SQLstr1
  756.         Cw_DataEnvi.DataConnect.Execute (SqlStr)
  757.     End If
  758.     
  759.     Set Rectemp = Nothing
  760.     
  761. End Sub
  762. Private Sub ClearPJDJ()                          '计算标记为真时,清除计算的全月平均单价
  763.     Dim SqlStr As String
  764.     Dim SQLstr1 As String
  765.     Dim Now_period As Long           '当前月份
  766.     
  767.     Now_period = PGNowmon
  768.     
  769.     If Price_Flag Then
  770.         SQLstr1 = Replace(AvgQuery_Cond, "view", "Chhs_Mate", 1, , vbTextCompare)
  771.         SqlStr = "UPDATE Chhs_Mate SET EndPrice=0 WHERE KjYear='" & PGKjYear & "' AND Period ='" & Now_period & "' AND " + SQLstr1
  772.         Cw_DataEnvi.DataConnect.Execute (SqlStr)
  773.     End If
  774. End Sub
  775. Private Sub ClearCYJZ()
  776.     
  777.     Dim SqlStr As String
  778.     Dim SQLstr1 As String
  779.     Dim Now_period As Long           '当前月份
  780.     
  781.     Now_period = PGNowmon
  782.     
  783.     '清除差异结转单
  784.     SQLstr1 = Replace(PlanQuery_Cond, "view", "Chhs_DiffBill", 1, , vbTextCompare)
  785.     SqlStr = "DELETE Chhs_DiffBill WHERE KjYear='" & PGKjYear & "' and Period='" & Now_period & "' AND " + SQLstr1
  786.     Cw_DataEnvi.DataConnect.Execute (SqlStr)
  787.     
  788.     '清除明细帐中的差异结转单
  789.     SQLstr1 = Replace(PlanQuery_Cond, "view", "Chhs_List", 1, , vbTextCompare)
  790.     SqlStr = "DELETE Chhs_List WHERE KjYear='" & PGKjYear & "' and Period='" & Now_period & "' and BillCode='1307' AND  " + SQLstr1
  791.     Cw_DataEnvi.DataConnect.Execute (SqlStr)
  792. End Sub
  793. Private Function PdAvgprice() As Boolean     '全月平均单价判断
  794.  
  795.     Dim Rectemp As Recordset
  796.     Dim Rec_Query As Recordset
  797.     Dim Rec_Hz As New ADODB.Recordset
  798.  
  799.     Dim mMoney As Double          '金额
  800.     Dim mQuan As Double           '数量
  801.     Dim mOutQuan As Double        '出库数量
  802.     Dim Avgprice As Double        '全月平均单价
  803.  
  804.     Dim SqlStr As String
  805.     Dim SQLstr1 As String
  806.     Dim Now_period As Long
  807.  
  808.     PdAvgprice = False
  809.     
  810.     Now_period = PGNowmon
  811.     
  812.     mQuan = 0
  813.     mMoney = 0
  814.     mOutQuan = 0
  815.     
  816.     Price_Flag = False
  817.     
  818.     '期初结存和本月收入的数量和金额
  819.     If Rec_Hz.State = 1 Then Rec_Hz.Close
  820.     SQLstr1 = Replace(AvgQuery_Cond, "view", "Chhs_Mate", , , vbTextCompare)
  821.     
  822.     If Not CallFlag Then
  823.         Price_Flag = True
  824.         SqlStr = "SELECT * FROM Chhs_Mate WHERE KjYear='" & PGKjYear & "' and Period ='" & Now_period & "' and EndPrice=0 and " + SQLstr1
  825.     Else
  826.         SqlStr = "SELECT * FROM Chhs_Mate WHERE KjYear='" & PGKjYear & "' and Period ='" & Now_period & "' and " + SQLstr1
  827.     End If
  828.     
  829.     Rec_Hz.Open SqlStr, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  830.     
  831.     If Rec_Hz.EOF Then
  832.         If Not CallFlag Then
  833.             PdAvgprice = True
  834.         End If
  835.         Exit Function
  836.     End If
  837.     
  838.     Jsqte = 0
  839.     
  840.     On Error GoTo LabelErr
  841.     
  842.     Cw_DataEnvi.DataConnect.BeginTrans
  843.     
  844.     Do While Not Rec_Hz.EOF
  845.     
  846.         RecCount = Rec_Hz.RecordCount
  847.         Avgprice = 0
  848.        
  849.         mQuan = Val(Rec_Hz.Fields("StartQuan")) + Val(Rec_Hz.Fields("InQuan"))
  850.         mMoney = Val(Rec_Hz.Fields("StartMoney")) + Val(Rec_Hz.Fields("InMoney")) - Val(Rec_Hz.Fields("OutMoney"))
  851.         mOutQuan = Val(Rec_Hz.Fields("OutQuan"))
  852.         
  853.         If Not mOutQuan = 0 Then
  854.         
  855.             '平均单价计算是否包括本期暂估,不包括减掉
  856.             If Not Xtclzg Then
  857.                 SqlStr = "SELECT InQuan,InMoney FROM Chhs_List WHERE WhCode='" & Trim(Rec_Hz.Fields("WhCode")) & "' " & _
  858.                          " and MNumber='" & Trim(Rec_Hz.Fields("MNumber")) & "' " & _
  859.                          " and KjYear='" & PGKjYear & "' and Period='" & Now_period & "' " & _
  860.                          " and (BillCode='1304' or BillCode='1305'or BillCode='1306') AND StartFlag=0"
  861.                 Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  862.                
  863.                 Do While Not Rec_Query.EOF
  864.                     mQuan = mQuan - (Val(Rec_Query.Fields("InQuan")))
  865.                     mMoney = mMoney - Val(Rec_Query.Fields("InMoney"))
  866.                     Rec_Query.MoveNext
  867.                 Loop
  868.             End If
  869.               
  870.             '实发金额自填 数量、金额
  871.             If SFjezt Then
  872.                 SqlStr = "SELECT OutQuan,OutMoney FROM Chhs_List WHERE WhCode='" & Trim(Rec_Hz.Fields("WhCode")) & "'" & _
  873.                         " and MNumber='" & Trim(Rec_Hz.Fields("MNumber")) & "' and Period='" & Now_period & "'" & _
  874.                         " and KjYear='" & PGKjYear & "' and  SfjeztFlag=1 "
  875.                 Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  876.                 
  877.                 Do While Not Rectemp.EOF
  878.                     mQuan = mQuan - Val(Rectemp.Fields("OutQuan"))
  879.                     Rectemp.MoveNext
  880.                 Loop
  881.             End If
  882.             
  883.             '计算平均单价
  884.             If mQuan <> 0 Then
  885.                 Avgprice = Format((mMoney) / (mQuan), "####." + String(Xtdjxsws, "0"))
  886.                 
  887.                 '期末处理时退出计算过程
  888.                 If Avgprice <= 0 And Not CallFlag Then
  889.                     GoTo LabelErr
  890.                     Exit Function
  891.                 End If
  892.             Else
  893.                 
  894.                 '期末处理数量等于零时退出计算过程
  895.                 If Not CallFlag Then
  896.                     GoTo LabelErr
  897.                     Exit Function
  898.                 End If
  899.               
  900.             End If
  901.              
  902.             '回填单价
  903.             Cw_DataEnvi.DataConnect.Execute ("Update Chhs_Mate set EndPrice='" & Avgprice & "' where MateId='" & Rec_Hz.Fields("MateId") & "'")
  904.         Else
  905.             Jsqte = Jsqte + 1
  906.         End If
  907.         Rec_Hz.MoveNext
  908.            
  909.     Loop
  910.       
  911.     Cw_DataEnvi.DataConnect.CommitTrans
  912.     If Jsqte = RecCount Then
  913.         Tsxx = "采用全月平均法核算的仓库本月无出库!"
  914.     End If
  915.     PdAvgprice = True
  916.     Set Rectemp = Nothing
  917.     Set Rec_Query = Nothing
  918.     Set Rec_Hz = Nothing
  919.     
  920.     Exit Function
  921.     
  922. LabelErr:
  923.     Cw_DataEnvi.DataConnect.RollbackTrans
  924.     Label1.Visible = False
  925.     PdAvgprice = False
  926.     Tsxx = "全月平均单价小于等于零时,不允许期末处理!"
  927.     Call Xtxxts(Tsxx, 0, 1)
  928. End Function
  929. Private Sub Tzzz()   '调整总帐
  930.   
  931.     Dim RecQc As New ADODB.Recordset            '期初记录
  932.     Dim RecSummx As New ADODB.Recordset         '汇总明细帐
  933.     Dim Reczz As New ADODB.Recordset            '总帐
  934.     Dim RecZzfz As New ADODB.Recordset          '总帐
  935.     Dim Now_period As Long
  936.     Dim SqlStr As String
  937.     Now_period = PGNowmon
  938.   
  939.     '打开总帐表
  940.     If Reczz.State = 1 Then Reczz.Close
  941.     Reczz.Open "SELECT * FROM Chhs_Mate ", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  942.     
  943.     '清除总帐本月发生数据
  944.     SqlStr = Replace(Query_Cond, "view", "Chhs_Mate", , , vbTextCompare)
  945.     Cw_DataEnvi.DataConnect.Execute ("DELETE Chhs_Mate WHERE KjYear='" & PGKjYear & "' and Period='" & Now_period & "' AND  StartQuan=0 AND " + SqlStr)
  946.     Cw_DataEnvi.DataConnect.Execute ("UPDATE Chhs_Mate SET InQuan=0,Inprice=0,Inmoney=0 ," & _
  947.                                      "OutQuan=0 ,OutPrice=0, OutMoney=0 ,JfDiff=0,Dfdiff=0 ,EndDiff=0,EndQuan=0," & _
  948.                                      "EndPrice=0,EndMoney=0 WHERE KjYear='" & PGKjYear & "' and Period='" & Now_period & "' AND " + SqlStr)
  949.      
  950.     '汇总明细帐
  951.     SqlStr = Replace(Query_Cond, "view", "Chhs_List", , , vbTextCompare)
  952.     SqlStr = "SELECT WhCode,MNumber,KjYear,Period, SUM(InQuan) AS sum_recquan,SUM(InMoney) AS sum_recmoney, " & _
  953.              "SUM(OutQuan) AS sum_outquan, SUM(OutMoney) AS sum_outmoney," & _
  954.              "SUM(JfDiff) as sumjf_diff,SUM(DfDiff) AS sumdf_diff From Chhs_List " & _
  955.              "WHERE Chhs_List.startflag=0 AND KjYear='" & PGKjYear & "' and Period='" & Now_period & "' and " + SqlStr & _
  956.              " GROUP BY WhCode,MNumber,KjYear,Period "
  957.     Set RecSummx = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  958.      
  959.     Do While Not RecSummx.EOF
  960.      
  961.         '对比总帐中是否存在相同的仓库+物料
  962.         SqlStr = "SELECT * FROM Chhs_Mate WHERE KjYear='" & PGKjYear & "' and Period='" & Now_period & "' " & _
  963.                  "AND WhCode='" & Trim(RecSummx.Fields("WhCode")) & "' " & _
  964.                  "AND MNumber='" & Trim(RecSummx.Fields("MNumber")) & "'"
  965.         
  966.         If RecQc.State = 1 Then RecQc.Close
  967.         RecQc.Open SqlStr, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  968.         
  969.         If Not RecQc.EOF Then
  970.         
  971.             '加入发生额
  972.             If Not IsNull(RecSummx.Fields("sum_recquan")) Then
  973.                RecQc.Fields("InQuan") = Format(Val(RecSummx.Fields("sum_recquan")), "#####." + String(Xtslxsws, "0"))
  974.             End If
  975.             If Not Val(RecSummx.Fields("sum_recquan")) = 0 Then
  976.                RecQc.Fields("InPrice") = Format(Val(RecSummx.Fields("sum_recmoney")) / Val(RecSummx.Fields("sum_recquan")), "#####." + String(Xtdjxsws, "0"))
  977.             End If
  978.             If Not IsNull(RecSummx.Fields("sum_recmoney")) Then
  979.                RecQc.Fields("InMoney") = Format(Val(RecSummx.Fields("sum_recmoney")), "#####." + String(Xtjexsws, "0"))
  980.             End If
  981.             If Not IsNull(RecSummx.Fields("sum_outquan")) Then
  982.                RecQc.Fields("OutQuan") = Format(Val(RecSummx.Fields("sum_outquan")), "#####." + String(Xtslxsws, "0"))
  983.             End If
  984.             If Not Val(RecSummx.Fields("sum_outquan")) = 0 Then
  985.                RecQc.Fields("OutPrice") = Format(Val(RecSummx.Fields("sum_outmoney")) / Val(RecSummx.Fields("sum_outquan")), "#####." + String(Xtdjxsws, "0"))
  986.             End If
  987.             If Not IsNull(RecSummx.Fields("sum_outmoney")) Then
  988.                RecQc.Fields("OutMoney") = Format(Val(RecSummx.Fields("sum_outmoney")), "#####." + String(Xtjexsws, "0"))
  989.             End If
  990.             If Not IsNull(RecSummx.Fields("sumjf_diff")) Then
  991.                RecQc.Fields("JfDiff") = Format(Val(RecSummx.Fields("sumjf_diff")), "#####." + String(Xtjexsws, "0"))
  992.             End If
  993.             If Not IsNull(RecSummx.Fields("sumdf_diff")) Then
  994.                RecQc.Fields("Dfdiff") = Format(Val(RecSummx.Fields("sumdf_diff")), "#####." + String(Xtjexsws, "0"))
  995.             End If
  996.             RecQc.UpdateBatch
  997.         
  998.         Else
  999.             
  1000.             '添加新记录
  1001.             Reczz.AddNew
  1002.             Reczz.Fields("WhCode") = Trim(RecSummx.Fields("WhCode"))
  1003.             Reczz.Fields("MNumber") = Trim(RecSummx.Fields("MNumber"))
  1004.             Reczz.Fields("KjYear") = PGKjYear
  1005.             Reczz.Fields("Period") = Val(RecSummx.Fields("Period"))
  1006.             
  1007.             Reczz.Fields("StartQuan") = 0
  1008.             Reczz.Fields("StartPrice") = 0
  1009.             Reczz.Fields("StartMoney") = 0
  1010.             
  1011.             Reczz.Fields("InQuan") = Format(Val(RecSummx.Fields("sum_recquan")), "#####." + String(Xtslxsws, "0"))
  1012.             If Not Val(RecSummx.Fields("sum_recquan")) = 0 Then
  1013.                Reczz.Fields("InPrice") = Format(Val(RecSummx.Fields("sum_recmoney")) / Val(RecSummx.Fields("sum_recquan")), "#####." + String(Xtdjxsws, "0"))
  1014.             End If
  1015.             Reczz.Fields("InMoney") = Format(Val(RecSummx.Fields("sum_recmoney")), "#####." + String(Xtjexsws, "0"))
  1016.             
  1017.             Reczz.Fields("OutQuan") = Format(Val(RecSummx.Fields("sum_outquan")), "#####." + String(Xtslxsws, "0"))
  1018.             If Not Val(RecSummx.Fields("sum_outquan")) = 0 Then
  1019.                Reczz.Fields("OutPrice") = Format(Val(RecSummx.Fields("sum_outmoney")) / Val(RecSummx.Fields("sum_outquan")), "#####." + String(Xtdjxsws, "0"))
  1020.             End If
  1021.             Reczz.Fields("OutMoney") = Format(Val(RecSummx.Fields("sum_outmoney")), "#####." + String(Xtjexsws, "0"))
  1022.             
  1023.             If Not IsNull(RecSummx.Fields("sumjf_diff")) Then
  1024.                Reczz.Fields("JfDiff") = Format(Val(RecSummx.Fields("sumjf_diff")), "#####." + String(Xtjexsws, "0"))
  1025.             End If
  1026.             If Not IsNull(RecSummx.Fields("sumdf_diff")) Then
  1027.                Reczz.Fields("DfDiff") = Format(Val(RecSummx.Fields("sumdf_diff")), "#####." + String(Xtjexsws, "0"))
  1028.             End If
  1029.             
  1030.             Reczz.UpdateBatch
  1031.         End If
  1032.         
  1033.         RecSummx.MoveNext
  1034.      Loop
  1035. End Sub
  1036. Private Sub Tzzg()  '暂估单处理完后,调整总帐
  1037.     Dim RecQc As New ADODB.Recordset            '期初记录
  1038.     Dim RecSummx As New ADODB.Recordset         '汇总明细帐
  1039.     Dim Reczz As New ADODB.Recordset            '总帐
  1040.     Dim RecZzfz As New ADODB.Recordset          '总帐
  1041.     Dim Now_period As Long
  1042.     Dim SqlStr As String
  1043.     Now_period = PGNowmon
  1044.   
  1045.     '打开总帐表
  1046.     If Reczz.State = 1 Then Reczz.Close
  1047.     Reczz.Open "SELECT * FROM Chhs_Mate ", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  1048.     '汇总明细帐
  1049.     SqlStr = Replace(Query_Cond, "view", "Chhs_List", , , vbTextCompare)
  1050.     SqlStr = "SELECT WhCode,MNumber,KjYear,Period, SUM(InQuan) AS sum_recquan,SUM(InMoney) AS sum_recmoney, " & _
  1051.              "SUM(OutQuan) AS sum_outquan, SUM(OutMoney) AS sum_outmoney," & _
  1052.              "SUM(JfDiff) as sumjf_diff,SUM(DfDiff) AS sumdf_diff From Chhs_List " & _
  1053.              "WHERE BillCode='1304' AND StartFlag<>1 AND KjYear='" & PGKjYear & "' and Period='" & Now_period & "' and " + SqlStr & _
  1054.              " GROUP BY WhCode,MNumber,KjYear,Period "
  1055.     Set RecSummx = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  1056.      
  1057.     Do While Not RecSummx.EOF
  1058.      
  1059.         '对比总帐中是否存在相同的仓库+物料
  1060.         SqlStr = "SELECT * FROM Chhs_Mate WHERE KjYear='" & PGKjYear & "' and Period='" & Now_period & "' " & _
  1061.                  "AND WhCode='" & Trim(RecSummx.Fields("WhCode")) & "' " & _
  1062.                  "AND MNumber='" & Trim(RecSummx.Fields("MNumber")) & "'"
  1063.         
  1064.         If RecQc.State = 1 Then RecQc.Close
  1065.         RecQc.Open SqlStr, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  1066.         
  1067.         If Not RecQc.EOF Then
  1068.         
  1069.             '加入发生额
  1070.             If Not IsNull(RecSummx.Fields("sum_recquan")) Then
  1071.                RecQc.Fields("InQuan") = Format(Val(RecSummx.Fields("sum_recquan")) + Val(RecQc.Fields("InQuan")), "#####." + String(Xtslxsws, "0"))
  1072.             End If
  1073.             If Not IsNull(RecSummx.Fields("sum_recmoney")) Then
  1074.                RecQc.Fields("InMoney") = Format(Val(RecSummx.Fields("sum_recmoney")) + Val(RecQc.Fields("InMoney")), "#####." + String(Xtjexsws, "0"))
  1075.             End If
  1076.             If Not Val(RecQc.Fields("InQuan")) = 0 Then
  1077.                RecQc.Fields("InPrice") = Format(Val(RecQc.Fields("InMoney")) / Val(RecQc.Fields("InQuan")), "#####." + String(Xtdjxsws, "0"))
  1078.             End If
  1079.             If Not IsNull(RecSummx.Fields("sumjf_diff")) Then
  1080.                RecQc.Fields("JfDiff") = Format(Val(RecSummx.Fields("sumjf_diff") + RecQc.Fields("JfDiff")), "#####." + String(Xtjexsws, "0"))
  1081.             End If
  1082.             If Not IsNull(RecSummx.Fields("sumdf_diff")) Then
  1083.                RecQc.Fields("Dfdiff") = Format(Val(RecSummx.Fields("sumdf_diff") + RecQc.Fields("Dfdiff")), "#####." + String(Xtjexsws, "0"))
  1084.             End If
  1085.             RecQc.UpdateBatch
  1086.         
  1087.         Else
  1088.             
  1089.             '添加新记录
  1090.             Reczz.AddNew
  1091.             Reczz.Fields("WhCode") = Trim(RecSummx.Fields("WhCode"))
  1092.             Reczz.Fields("MNumber") = Trim(RecSummx.Fields("MNumber"))
  1093.             Reczz.Fields("KjYear") = PGKjYear
  1094.             Reczz.Fields("Period") = Val(RecSummx.Fields("Period"))
  1095.             
  1096.             Reczz.Fields("StartQuan") = 0
  1097.             Reczz.Fields("StartPrice") = 0
  1098.             Reczz.Fields("StartMoney") = 0
  1099.             
  1100.             Reczz.Fields("InQuan") = Format(Val(RecSummx.Fields("sum_recquan")), "#####." + String(Xtslxsws, "0"))
  1101.             If Not Val(RecSummx.Fields("sum_recquan")) = 0 Then
  1102.                Reczz.Fields("InPrice") = Format(Val(RecSummx.Fields("sum_recmoney")) / Val(RecSummx.Fields("sum_recquan")), "#####." + String(Xtdjxsws, "0"))
  1103.             End If
  1104.             Reczz.Fields("InMoney") = Format(Val(RecSummx.Fields("sum_recmoney")), "#####." + String(Xtjexsws, "0"))
  1105.             If Not IsNull(RecSummx.Fields("sumjf_diff")) Then
  1106.                Reczz.Fields("JfDiff") = Format(Val(RecSummx.Fields("sumjf_diff")), "#####." + String(Xtjexsws, "0"))
  1107.             End If
  1108.             If Not IsNull(RecSummx.Fields("sumdf_diff")) Then
  1109.                Reczz.Fields("DfDiff") = Format(Val(RecSummx.Fields("sumdf_diff")), "#####." + String(Xtjexsws, "0"))
  1110.             End If
  1111.             
  1112.             Reczz.UpdateBatch
  1113.         End If
  1114.         
  1115.         RecSummx.MoveNext
  1116.      Loop
  1117. End Sub
  1118. Private Function Djzgcl() As Boolean          '单据暂估处理
  1119.  
  1120.     Dim Rec As New ADODB.Recordset
  1121.     Dim Rectemp As New ADODB.Recordset
  1122.     Dim RecTempFz As New ADODB.Recordset
  1123.     Dim Rec_Mxz As New ADODB.Recordset
  1124.  
  1125.     Dim SqlStr As String
  1126.     Dim SQLstr1 As String
  1127.     Dim Now_period As Long
  1128.  
  1129.     Dim Glgjxztj As String                            '暂估条件
  1130.     Dim Glgjxztj1 As String
  1131.     
  1132.     Now_period = PGNowmon
  1133.     
  1134.     Djzgcl = False
  1135.     
  1136.      
  1137.     '暂估条件限制
  1138.     Set Rec = Cw_DataEnvi.DataConnect.Execute("SELECT * FROM Chhs_Evalu ORDER BY EvaluId")
  1139.     If Rec.EOF Then
  1140.         Djzgcl = True
  1141.         Exit Function
  1142.     End If
  1143.     
  1144.     Do While Not Rec.EOF
  1145.     
  1146.         If Trim(Rec.Fields("WhCode") & "") <> "" Then
  1147.             If Glgjxztj1 <> "" Then
  1148.                 Glgjxztj1 = Glgjxztj1 + " and Chhs_V_StartEval.WhCode ='" & Trim(Rec.Fields("WhCode")) & "'"
  1149.             Else
  1150.                 Glgjxztj1 = " Chhs_V_StartEval.WhCode ='" & Trim(Rec.Fields("WhCode")) & "'"
  1151.             End If
  1152.         End If
  1153.        
  1154.         If Trim(Rec.Fields("MSort") & "") <> "" Then
  1155.             If Glgjxztj1 <> "" Then
  1156.                 Glgjxztj1 = Glgjxztj1 + " and Chhs_V_StartEval.InvSortCode like '" & Trim(Rec.Fields("MSort")) & "%'"
  1157.             Else
  1158.                 Glgjxztj1 = " Chhs_V_StartEval.InvSortCode like '" & Trim(Rec.Fields("MSort")) & "%'"
  1159.             End If
  1160.         End If
  1161.        
  1162.         If Trim(Rec.Fields("MNumber") & "") <> "" Then
  1163.             If Glgjxztj1 <> "" Then
  1164.                 Glgjxztj1 = Glgjxztj1 + " and  Chhs_V_StartEval.MNumber ='" & Trim(Rec.Fields("MNumber")) & "'"
  1165.             Else
  1166.                 Glgjxztj1 = " Chhs_V_StartEval.MNumber ='" & Trim(Rec.Fields("MNumber")) & "'"
  1167.             End If
  1168.         End If
  1169.     
  1170.         Rec.MoveNext
  1171.         
  1172.         If Glgjxztj1 <> "" Then
  1173.             If Glgjxztj <> "" Then
  1174.                 Glgjxztj = Glgjxztj + " OR " + "(" & Glgjxztj1 & ")"
  1175.             Else
  1176.                 Glgjxztj = "(" & Glgjxztj1 & ")"
  1177.             End If
  1178.         End If
  1179.         
  1180.     Loop
  1181.     
  1182.     '明细帐
  1183.     If Rec_Mxz.State = 1 Then Rec_Mxz.Close
  1184.     Rec_Mxz.Open "SELECT * FROM Chhs_List where 1=0", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  1185.     
  1186.     On Error GoTo LabelErr
  1187.     
  1188.     Cw_DataEnvi.DataConnect.BeginTrans
  1189.     
  1190.     '判断收发记录中是否存在暂估单
  1191.     SQLstr1 = Replace(Query_Cond, "view", "Chhs_V_StartEval", 1, , vbTextCompare)
  1192.     SqlStr = "SELECT * FROM Chhs_V_StartEval WHERE (BillCode='1201' or BillCode='1211') and (BalanceDate is null or BalanceDate='') " & _
  1193.              " and (Kjyear <" & PGKjYear & " or (Kjyear=" & PGKjYear & "  and Period<=" & PGNowmon & ")) AND EMoney<>0 and " + SQLstr1 + " AND " & Glgjxztj & " "
  1194.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  1195.     
  1196.     Do While Not Rectemp.EOF
  1197.        
  1198.         '查找明细帐中对应的记录(蓝字暂估单)
  1199.         SqlStr = "SELECT * FROM Chhs_List WHERE startflag=0 and InoutMainId='" & Rectemp.Fields("InoutMainId") & "' and InoutSubId='" & Rectemp.Fields("InoutSubId") & "' " & _
  1200.                  "and BillCode='1304' and Period='" & Now_period & "' AND KjYear='" & PGKjYear & "'"
  1201.         Set RecTempFz = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  1202.         
  1203.         If RecTempFz.EOF Then
  1204.                 
  1205.             '1-蓝字暂估单记明细帐
  1206.             Rec_Mxz.AddNew
  1207.             Rec_Mxz.Fields("InoutFlag") = Trim(Rectemp.Fields("InoutFlag"))
  1208.             If Trim(Rectemp.Fields("OperType") & "") <> "" Then
  1209.                Rec_Mxz.Fields("OperType") = Trim(Rectemp.Fields("OperType"))
  1210.             End If
  1211.             If Trim(Rectemp.Fields("OperbillNum") & "") <> "" Then
  1212.                Rec_Mxz.Fields("OperbillNum") = Trim(Rectemp.Fields("OperbillNum"))
  1213.             End If
  1214.             If Trim(Rectemp.Fields("BillNum") & "") <> "" Then
  1215.                Rec_Mxz.Fields("BillNum") = Trim(Rectemp.Fields("BillNum"))
  1216.             End If
  1217.             If Trim(Rectemp.Fields("InoutMainId") & "") Then
  1218.                Rec_Mxz.Fields("InoutMainId") = Trim(Rectemp.Fields("InoutMainId"))
  1219.             End If
  1220.             If Trim(Rectemp.Fields("InoutSubId") & "") Then
  1221.                Rec_Mxz.Fields("InoutSubId") = Trim(Rectemp.Fields("InoutSubId"))
  1222.             End If
  1223.             Rec_Mxz.Fields("BillDate") = Xtrq
  1224.             Rec_Mxz.Fields("ChalkDate") = Xtrq
  1225.             Rec_Mxz.Fields("KjYear") = Xtyear
  1226.             Rec_Mxz.Fields("Period") = Now_period
  1227.             Rec_Mxz.Fields("BillCode") = "1304"
  1228.             If Trim(Rectemp.Fields("PurTypeCode") & "") <> "" Then
  1229.                 Rec_Mxz.Fields("PurTypeCode") = Trim(Rectemp.Fields("PurTypeCode"))
  1230.             End If
  1231.             If Trim(Rectemp.Fields("WhCode") & "") <> "" Then
  1232.                 Rec_Mxz.Fields("WhCode") = Trim(Rectemp.Fields("WhCode"))
  1233.             End If
  1234.             If Trim(Rectemp.Fields("DeptCode") & "") <> "" Then
  1235.                 Rec_Mxz.Fields("DeptCode") = Trim(Rectemp.Fields("DeptCode"))
  1236.             End If
  1237.             If Trim(Rectemp.Fields("ReceiptNum") & "") <> "" Then
  1238.                 Rec_Mxz.Fields("ReceiptNum") = Trim(Rectemp.Fields("ReceiptNum"))
  1239.             End If
  1240.             If Trim(Rectemp.Fields("PersonCode") & "") <> "" Then
  1241.                 Rec_Mxz.Fields("Personcode") = Trim(Rectemp.Fields("PersonCode"))
  1242.             End If
  1243.             If Trim(Rectemp.Fields("InoutClassCode") & "") <> "" Then
  1244.                 Rec_Mxz.Fields("InoutClassCode") = Trim(Rectemp.Fields("InoutClassCode"))
  1245.             End If
  1246.             If Trim(Rectemp.Fields("SupplierCode") & "") <> "" Then
  1247.                 Rec_Mxz.Fields("SupplierCode") = Trim(Rectemp.Fields("SupplierCode"))
  1248.             End If
  1249.             If Trim(Rectemp.Fields("MNumber") & "") <> "" Then
  1250.                 Rec_Mxz.Fields("MNumber") = Trim(Rectemp.Fields("MNumber"))
  1251.             End If
  1252.             Rec_Mxz.Fields("InQuan") = Val(Rectemp.Fields("FactReceiptQuan"))
  1253.              
  1254.             '以计划价法核算按计划价入库 ,以实际价核算的按实际价入库
  1255.             If Trim(Rectemp.Fields("PriceMode")) = "计划价法" And Qmclcy Then
  1256.                 Rec_Mxz.Fields("InPrice") = Val(Rectemp.Fields("PlanPrice"))
  1257.                 Rec_Mxz.Fields("Inmoney") = Val(Rectemp.Fields("PlanMoney"))
  1258.                 
  1259.                 If Val(Rectemp.Fields("EMoney")) - Val(Rectemp.Fields("PlanMoney")) > 0 Then
  1260.                    Rec_Mxz.Fields("JfDiff") = Val(Rectemp.Fields("Emoney")) - Val(Rectemp.Fields("PlanMoney"))
  1261.                 Else
  1262.                    Rec_Mxz.Fields("DfDiff") = Val(Rectemp.Fields("PlanMoney")) - Val(Rectemp.Fields("Emoney"))
  1263.                 End If
  1264.             Else
  1265.                 Rec_Mxz.Fields("InPrice") = Val(Rectemp.Fields("Price"))
  1266.                 Rec_Mxz.Fields("InMoney") = Val(Rectemp.Fields("EMoney"))
  1267.             End If
  1268.             
  1269.             If Trim(Rectemp.Fields("Maker") & "") <> "" Then
  1270.                 Rec_Mxz.Fields("Maker") = Trim(Rectemp.Fields("Maker"))
  1271.             End If
  1272.             Rec_Mxz.Fields("checker") = Xtczy
  1273.             Rec_Mxz.Fields("ChalkitupMan") = Xtczy
  1274.             If Trim(Rectemp.Fields("Remark") & "") <> "" Then
  1275.                 Rec_Mxz.Fields("Remark") = Trim(Rectemp.Fields("Remark"))
  1276.             End If
  1277.             
  1278.             '填写物料科目和差异科目
  1279.             Call MaccCode(Trim(Rectemp.Fields("WhCode") & ""), Trim(Rectemp.Fields("MNumber") & ""), Trim(Rectemp.Fields("InvSortcode") & ""))
  1280.             Rec_Mxz.Fields("MateAcct") = Xtfhcs
  1281.             If Trim(Rectemp.Fields("PriceMode")) = "计划价法" And Qmclcy And Val(Rectemp.Fields("EMoney")) - Val(Rectemp.Fields("PlanMoney")) <> 0 Then
  1282.                 Rec_Mxz.Fields("DiffAcct") = Xtfhcsfz
  1283.             End If
  1284.                 
  1285.             ' 对方科目
  1286.             Call DfaccCode(Trim(Rectemp.Fields("InoutClassCode") & ""), Trim(Rectemp.Fields("DeptCode") & ""), Trim(Rectemp.Fields("InvSortcode") & ""), Trim(Rectemp.Fields("MNumber")) & "")
  1287.             Rec_Mxz.Fields("DfAcct") = Xtfhcs
  1288.             
  1289.             Rec_Mxz.UpdateBatch
  1290.             
  1291.             '收发记录中对应的相应单据,填写记帐标志
  1292.             SqlStr = "UPDATE GY_InOutMain SET ChalkitupMan='" & Xtczy & "' WHERE BiLLCode='1201' AND InOutMainId='" & Trim(Rectemp.Fields("InoutMainId")) & "'"
  1293.             Cw_DataEnvi.DataConnect.Execute (SqlStr)
  1294.             
  1295.             '2-生成下月红字回冲单
  1296.             Rec_Mxz.AddNew
  1297.             Rec_Mxz.Fields("InoutFlag") = Trim(Rectemp.Fields("InoutFlag"))
  1298.             If Trim(Rectemp.Fields("OperType") & "") <> "" Then
  1299.                 Rec_Mxz.Fields("OperType") = Trim(Rectemp.Fields("OperType"))
  1300.             End If
  1301.             If Trim(Rectemp.Fields("OperBillNum") & "") <> "" Then
  1302.                Rec_Mxz.Fields("OperBillNum") = Trim(Rectemp.Fields("OperBillNum"))
  1303.             End If
  1304.             If Trim(Rectemp.Fields("BillNum") & "") <> "" Then
  1305.                Rec_Mxz.Fields("BillNum") = Trim(Rectemp.Fields("BillNum"))
  1306.             End If
  1307.             If Trim(Rectemp.Fields("InoutMainId") & "") <> "" Then
  1308.                Rec_Mxz.Fields("InoutMainId") = Trim(Rectemp.Fields("InoutMainId"))
  1309.             End If
  1310.             If Trim(Rectemp.Fields("InoutSubId") & "") <> "" Then
  1311.                Rec_Mxz.Fields("InoutSubId") = Trim(Rectemp.Fields("InoutSubId"))
  1312.             End If
  1313.             
  1314.             '年末处理
  1315.             If Now_period <> LastMon Then
  1316.                 Set Rec = Cw_DataEnvi.DataConnect.Execute("SELECT qsrq FROM GY_Kjrlb WHERE Kjyear=" & Xtyear & " and Period=" & Now_period + 1 & "")
  1317.                 If Not Rec.EOF Then
  1318.                    Rec_Mxz.Fields("BillDate") = Trim(Rec.Fields("qsrq"))
  1319.                 End If
  1320.                 Rec_Mxz.Fields("ChalkDate") = Rec_Mxz.Fields("BillDate")
  1321.                 Rec_Mxz.Fields("KjYear") = Xtyear
  1322.                 Rec_Mxz.Fields("Period") = Now_period + 1
  1323.             Else
  1324.                 Set Rec = Cw_DataEnvi.DataConnect.Execute("SELECT qsrq FROM GY_Kjrlb WHERE Kjyear=" & Xtyear + 1 & " and Period='1'")
  1325.                 If Not Rec.EOF Then
  1326.                    Rec_Mxz.Fields("BillDate") = Trim(Rec.Fields("qsrq"))
  1327.                 End If
  1328.                 Rec_Mxz.Fields("ChalkDate") = Rec_Mxz.Fields("BillDate")
  1329.                 Rec_Mxz.Fields("KjYear") = Xtyear + 1
  1330.                 Rec_Mxz.Fields("Period") = 1
  1331.             End If
  1332.             
  1333.             '填写物料科目和差异科目
  1334.             Xtfhcs = ""
  1335.             Xtfhcsfz = ""
  1336.             Call MaccCode(Trim(Rectemp.Fields("WhCode") & ""), Trim(Rectemp.Fields("MNumber") & ""), Trim(Rectemp.Fields("InvSortcode")) & "")
  1337.             Rec_Mxz.Fields("MateAcct") = Xtfhcs
  1338.             
  1339.             If Trim(Rectemp.Fields("PriceMode")) = "计划价法" And Qmclcy And Val(Rectemp.Fields("EMoney")) - Val(Rectemp.Fields("PlanMoney")) <> 0 Then
  1340.                 Rec_Mxz.Fields("DiffAcct") = Xtfhcsfz
  1341.             End If
  1342.             
  1343.             ' 对方科目
  1344.             Xtfhcs = ""
  1345.             Xtfhcsfz = ""
  1346.             Call DfaccCode(Trim(Rectemp.Fields("InoutClassCode") & ""), Trim(Rectemp.Fields("DeptCode") & ""), Trim(Rectemp.Fields("InvSortcode") & ""), Trim(Rectemp.Fields("MNumber")) & "")
  1347.             Rec_Mxz.Fields("DfAcct") = Xtfhcs
  1348.             
  1349.             Rec_Mxz.Fields("BillCode") = "1305"
  1350.             
  1351.             If Trim(Rectemp.Fields("PurTypeCode") & "") <> "" Then
  1352.                 Rec_Mxz.Fields("PurTypeCode") = Trim(Rectemp.Fields("PurTypeCode"))
  1353.             End If
  1354.             If Trim(Rectemp.Fields("WhCode") & "") <> "" Then
  1355.                 Rec_Mxz.Fields("WhCode") = Trim(Rectemp.Fields("WhCode"))
  1356.             End If
  1357.             If Trim(Rectemp.Fields("DeptCode") & "") <> "" Then
  1358.                 Rec_Mxz.Fields("DeptCode") = Trim(Rectemp.Fields("DeptCode"))
  1359.             End If
  1360.             If Trim(Rectemp.Fields("ReceiptNum") & "") <> "" Then
  1361.                 Rec_Mxz.Fields("ReceiptNum") = Trim(Rectemp.Fields("ReceiptNum"))
  1362.             End If
  1363.             If Trim(Rectemp.Fields("PersonCode") & "") <> "" Then
  1364.                 Rec_Mxz.Fields("PersonCode") = Trim(Rectemp.Fields("PersonCode"))
  1365.             End If
  1366.             If Trim(Rectemp.Fields("InoutClassCode") & "") <> "" Then
  1367.                 Rec_Mxz.Fields("InoutClassCode") = Trim(Rectemp.Fields("InoutClassCode"))
  1368.             End If
  1369.             If Trim(Rectemp.Fields("SupplierCode") & "") <> "" Then
  1370.                 Rec_Mxz.Fields("SupplierCode") = Trim(Rectemp.Fields("SupplierCode"))
  1371.             End If
  1372.             If Trim(Rectemp.Fields("MNumber") & "") <> "" Then
  1373.                 Rec_Mxz.Fields("MNumber") = Trim(Rectemp.Fields("MNumber"))
  1374.             End If
  1375.             Rec_Mxz.Fields("InQuan") = 0 - Val(Rectemp.Fields("FactReceiptQuan"))
  1376.             
  1377.             '以计划价法核算按计划价入库 ,以实际价核算的按实际价入库
  1378.             If Trim(Rectemp.Fields("PriceMode")) = "计划价法" And Qmclcy Then
  1379.                 Rec_Mxz.Fields("InPrice") = Val(Rectemp.Fields("PlanPrice"))
  1380.                 Rec_Mxz.Fields("Inmoney") = 0 - Val(Rectemp.Fields("PlanMoney"))
  1381.         
  1382.                 If Val(Rectemp.Fields("EMoney")) - Val(Rectemp.Fields("PlanMoney")) > 0 Then
  1383.                     Rec_Mxz.Fields("dfDiff") = Val(Rectemp.Fields("Emoney")) - Val(Rectemp.Fields("PlanMoney"))
  1384.                 Else
  1385.                     Rec_Mxz.Fields("jfDiff") = Val(Rectemp.Fields("PlanMoney")) - Val(Rectemp.Fields("Emoney"))
  1386.                 End If
  1387.             Else
  1388.                 Rec_Mxz.Fields("InPrice") = Val(Rectemp.Fields("Price"))
  1389.                 Rec_Mxz.Fields("InMoney") = 0 - Val(Rectemp.Fields("EMoney"))
  1390.             End If
  1391.             
  1392.             If Trim(Rectemp.Fields("Maker") & "") <> "" Then
  1393.                 Rec_Mxz.Fields("Maker") = Trim(Rectemp.Fields("Maker"))
  1394.             End If
  1395.             Rec_Mxz.Fields("checker") = Xtczy
  1396.             
  1397.             Rec_Mxz.Fields("ChalkitupMan") = Xtczy
  1398.             
  1399.             If Trim(Rectemp.Fields("Remark") & "") <> "" Then
  1400.                 Rec_Mxz.Fields("Remark") = Trim(Rectemp.Fields("Remark"))
  1401.             End If
  1402.             
  1403.             Rec_Mxz.UpdateBatch
  1404.             
  1405.         End If
  1406.        
  1407.         Rectemp.MoveNext
  1408.     Loop
  1409.     
  1410.     Cw_DataEnvi.DataConnect.CommitTrans
  1411.     Djzgcl = True
  1412.  
  1413. LabelExit:
  1414.     Set Rec = Nothing
  1415.     Set Rectemp = Nothing
  1416.     Set RecTempFz = Nothing
  1417.     Set Rec_Mxz = Nothing
  1418.     
  1419.     Exit Function
  1420.     
  1421. LabelErr:
  1422.     Cw_DataEnvi.DataConnect.RollbackTrans
  1423.     Label1.Visible = False
  1424.     Djzgcl = False
  1425.     Tsxx = "在暂估处理过程中出现未知错误,期末处理失败!"
  1426.     Call Xtxxts(Tsxx, 0, 1)
  1427.     
  1428. End Function
  1429. Private Sub Com_Qx_Click()   '取消
  1430.    Unload Me
  1431.    
  1432. End Sub
  1433. Private Sub Form_Load()
  1434.     '添加仓库
  1435.     Call AddWarehouseName
  1436.  
  1437.     Lbl_labText = CStr(Xtyear) + "." + CStr(PGNowmon)
  1438.     SSTab.Tab = 0
  1439.       
  1440. End Sub
  1441. Private Sub AddWarehouseName()        '填充列表框
  1442.  
  1443.     Dim Rectemp As New ADODB.Recordset
  1444.     Dim SqlStr As String
  1445.  
  1446.     Lst_Cklb(0).Clear
  1447.     Lst_Cklb(1).Clear
  1448.     
  1449.     SqlStr = "SELECT GY_WareHouse.*, GY_whlimit.czybm " & _
  1450.              " FROM GY_WareHouse LEFT OUTER JOIN  GY_whlimit ON GY_WareHouse.WhCode = GY_whlimit.WhCode " & _
  1451.              " WHERE czybm='" & Xtczybm & "' AND ChhsUseFlag=1 ORDER BY GY_WareHouse.WhCode"
  1452.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  1453.     
  1454.     If Not Rectemp.EOF Then
  1455.  
  1456.         '限定仓库个数
  1457.         ReDim WH_code(Rectemp.RecordCount)
  1458.         ReDim Wh_Pricemode(Rectemp.RecordCount)
  1459.     
  1460.         ReDim WH_codefz(Rectemp.RecordCount)
  1461.         ReDim Wh_Pricemodefz(Rectemp.RecordCount)
  1462.     
  1463.         '添加仓库列表
  1464.         For Jsqte = 0 To Rectemp.RecordCount - 1
  1465.             If Rectemp.Fields("EndDealFlagChhs") Then
  1466.                 Lst_Cklb(1).AddItem Trim(Rectemp.Fields("WhName")) + "(" + Trim(Rectemp.Fields("WhCode")) + ")" + " ---- " + Trim(Rectemp.Fields("PriceMode"))
  1467.                 WH_codefz(Lst_Cklb(1).NewIndex) = Trim(Rectemp.Fields("WhCode"))
  1468.                 Wh_Pricemodefz(Lst_Cklb(1).NewIndex) = Trim(Rectemp.Fields("PriceMode"))
  1469.                 Lst_Cklb(1).Selected(Lst_Cklb(1).NewIndex) = True
  1470.             Else
  1471.                 Lst_Cklb(0).AddItem Trim(Rectemp.Fields("WhName")) + "(" + Trim(Rectemp.Fields("WhCode")) + ")" + " ---- " + Trim(Rectemp.Fields("PriceMode"))
  1472.                 WH_code(Lst_Cklb(0).NewIndex) = Trim(Rectemp.Fields("WhCode"))
  1473.                 Wh_Pricemode(Lst_Cklb(0).NewIndex) = Trim(Rectemp.Fields("PriceMode"))
  1474.                 Lst_Cklb(0).Selected(Lst_Cklb(0).NewIndex) = True
  1475.             End If
  1476.             Rectemp.MoveNext
  1477.         Next Jsqte
  1478.     
  1479.     End If
  1480.     
  1481.     Set Rectemp = Nothing
  1482. End Sub
  1483. Private Function Cyljs() As Boolean                                    '差异率计算
  1484.     Dim Rectemp As New ADODB.Recordset
  1485.     Dim Rec_Query As New ADODB.Recordset               '查询动态集
  1486.     Dim Rec_Queryfz As New ADODB.Recordset
  1487.     Dim Recmx As New ADODB.Recordset
  1488.  
  1489.     Dim Qcmoney As Double                              '期初余额
  1490.     Dim Qcdiff As Double                               '期初差异
  1491.     Dim Byrecmoney As Double                           '本月入库金额
  1492.     Dim Bydiff As Double                               '本月差异
  1493.     Dim Byoutmoney As Double                           '本月出库调整金额
  1494.     Dim Diff_lv As Double                              '差异率
  1495.     Dim SqlStr As String
  1496.     Dim Now_period As Long
  1497.     Dim BillID As Long
  1498.     Dim Sort As String
  1499.     
  1500.     '以下为用户自定义部分[
  1501.     Now_period = PGNowmon
  1502.     
  1503.     Cyljs = False
  1504.  
  1505.     '差异结转单
  1506.     If Rectemp.State = 1 Then Rectemp.Close
  1507.     Rectemp.Open "SELECT * FROM Chhs_DiffBill", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  1508.     
  1509.     On Error GoTo LabelErr
  1510.     
  1511.     Cw_DataEnvi.DataConnect.BeginTrans
  1512.     
  1513.     
  1514.     '月初差异 月初金额 本月收入差异   本月收入金额
  1515.     SqlStr = Replace(PlanQuery_Cond, "view", "Chhs_Mate", 1, , vbTextCompare)
  1516.     SqlStr = "SELECT WhCode,MNumber,StartDiff,StartMoney,JfDiff,DfDiff,Inmoney,OutQuan,OutMoney FROM Chhs_Mate WHERE KjYear='" & PGKjYear & "' and Period='" & Now_period & "' and " + SqlStr + " order by MNumber"
  1517.     Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  1518.     
  1519.     Do While Not Rec_Query.EOF
  1520.     
  1521.         Qcdiff = Rec_Query.Fields("StartDiff")
  1522.         Qcmoney = Rec_Query.Fields("StartMoney")
  1523.         Bydiff = Rec_Query.Fields("JfDiff") - Rec_Query.Fields("DfDiff")
  1524.         Byrecmoney = Rec_Query.Fields("Inmoney")
  1525.         Diff_lv = 0
  1526.         
  1527.         '差异率计算是否包括本期暂估   不包括减掉
  1528.         If Not Cylzg Then
  1529.             SqlStr = "SELECT JfDiff,DfDiff,InMoney FROM Chhs_List WHERE WhCode='" & Trim(Rec_Query.Fields("WhCode")) & "' " & _
  1530.                      " and MNumber='" & Trim(Rec_Query.Fields("MNumber")) & "' " & _
  1531.                      " and KjYear='" & PGKjYear & "' and Period='" & Now_period & "' " & _
  1532.                      " and (BillCode='1304' or BillCode='1305'or BillCode='1306') AND StartFlag=0"
  1533.             Set Rec_Queryfz = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  1534.            
  1535.             Do While Not Rec_Queryfz.EOF
  1536.                 Bydiff = Bydiff - (Val(Rec_Queryfz.Fields("JfDiff")) - Val(Rec_Queryfz.Fields("DfDiff")))
  1537.                 Byrecmoney = Byrecmoney - Val(Rec_Queryfz.Fields("InMoney"))
  1538.                 Rec_Queryfz.MoveNext
  1539.             Loop
  1540.         End If
  1541.         
  1542.         '本月计划价调整
  1543.          SqlStr = "SELECT JfDiff,DfDiff,outMoney FROM Chhs_List WHERE WhCode='" & Trim(Rec_Query.Fields("WhCode")) & "' " & _
  1544.                   " and MNumber='" & Trim(Rec_Query.Fields("MNumber")) & "' " & _
  1545.                   " and KjYear='" & PGKjYear & "' and Period='" & Now_period & "' " & _
  1546.                   " and BillCode='1303'  AND inoutflag=0"
  1547.          Set Rec_Queryfz = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  1548.         
  1549.          Do While Not Rec_Queryfz.EOF
  1550.              Byoutmoney = Byoutmoney + Val(Rec_Queryfz.Fields("outMoney"))
  1551.              Rec_Queryfz.MoveNext
  1552.          Loop
  1553.          
  1554.         '计算差异率
  1555.         If (Qcmoney + Byrecmoney - Byoutmoney) <> 0 Then
  1556.             Diff_lv = (Qcdiff + Bydiff) / (Qcmoney + Byrecmoney - Byoutmoney)
  1557.             Diff_lv = Format(Diff_lv, "###0.000000")
  1558.         End If
  1559.         
  1560.         If Not Diff_lv = 0 Then
  1561.             '生成差异结转单
  1562.             BillID = CreatBillID("1307")
  1563.             Rectemp.AddNew
  1564.             Rectemp.Fields("DiffBillId") = BillID
  1565.             Rectemp.Fields("BillCode") = "1307"
  1566.             Rectemp.Fields("BillNum") = Str(PGKjYear) + Str(Now_period)
  1567.             Rectemp.Fields("WhCode") = Trim(Rec_Query.Fields("WhCode"))
  1568.             Rectemp.Fields("MNumber") = Trim(Rec_Query.Fields("MNumber"))
  1569.             Rectemp.Fields("Quan") = Val(Rec_Query.Fields("OutQuan")) - Byoutquan
  1570.             Rectemp.Fields("PlanMoney") = Val(Rec_Query.Fields("OutMoney")) - Byoutmoney
  1571.             Rectemp.Fields("DiffLv") = Format(Diff_lv, "##########.######")
  1572.             Rectemp.Fields("DiffMoney") = Format(Val((Rec_Query.Fields("OutMoney") - Byoutmoney) * Format(Diff_lv, "##########.######")), "####." + String(Xtjexsws, "0"))
  1573.             Rectemp.Fields("Period") = Now_period
  1574.             Rectemp.Fields("KjYear") = PGKjYear
  1575.             Rectemp.UpdateBatch
  1576.          
  1577.             '差异结转单入明细帐
  1578.             If Val(Rec_Query.Fields("OutMoney")) - Byoutmoney <> 0 Then
  1579.                 If Recmx.State = 1 Then Recmx.Close
  1580.                 Recmx.Open "SELECT BillNum,BillDate,ChalkDate,Period,KjYear,BillCode,WhCode,MNumber,DfDiff,InoutAdjustMainId,MateAcct,DiffAcct,DfAcct from Chhs_List WHERE 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  1581.                 
  1582.                 Recmx.AddNew
  1583.                 Recmx.Fields("BillNum") = Now_period & "月差异结转"
  1584.                 Recmx.Fields("InoutAdjustMainId") = BillID
  1585.                 Recmx.Fields("BillDate") = Xtrq
  1586.                 Recmx.Fields("ChalkDate") = Xtrq
  1587.                 Recmx.Fields("Period") = Now_period
  1588.                 Recmx.Fields("KjYear") = PGKjYear
  1589.                 Recmx.Fields("BillCode") = "1307"
  1590.                 Recmx.Fields("WhCode") = Trim(Rec_Query.Fields("WhCode"))
  1591.                 Recmx.Fields("MNumber") = Trim(Rec_Query.Fields("MNumber"))
  1592.                 Recmx.Fields("DfDiff") = Format(Val((Rec_Query.Fields("OutMoney") - Byoutmoney) * Format(Diff_lv, "##########.######")), "####." + String(Xtjexsws, "0"))
  1593.                 
  1594.                 '填写物差异科目
  1595.                 SqlStr = "SELECT InvSortcode FROM GY_Material WHERE MNumber='" & Trim(Rec_Query.Fields("MNumber")) & "'"
  1596.                 Set Rec_Queryfz = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  1597.                 If Not Rec_Queryfz.EOF Then
  1598.                     Sort = Trim(Rec_Queryfz.Fields("InvSortcode") & "")
  1599.                 End If
  1600.                 Call MaccCode(Trim(Rec_Query.Fields("WhCode") & ""), Trim(Rec_Query.Fields("MNumber") & ""), Sort)
  1601.                 Recmx.Fields("DiffAcct") = Xtfhcsfz
  1602.                     
  1603.                 '填写对方科目
  1604.                 Call DfaccCode("", "", Sort, Trim(Rec_Query.Fields("MNumber") & ""))
  1605.                 Recmx.Fields("DfAcct") = Xtfhcs
  1606.                 
  1607.                 Recmx.UpdateBatch
  1608.                 
  1609.             End If
  1610.         End If
  1611.         
  1612.         Rec_Query.MoveNext
  1613.     Loop
  1614.          
  1615.     Cw_DataEnvi.DataConnect.CommitTrans
  1616.     
  1617.     Cyljs = True
  1618.     
  1619.     Set Rectemp = Nothing
  1620.     Set Rec_Query = Nothing
  1621.     Set Rec_Queryfz = Nothing
  1622.     Set Recmx = Nothing
  1623.     
  1624.     Exit Function
  1625.  
  1626.  ']以上为用户自定义部分
  1627.  
  1628. LabelErr:
  1629.     Cw_DataEnvi.DataConnect.RollbackTrans
  1630.     Label1.Visible = False
  1631.     Cyljs = False
  1632.     Tsxx = "在差异处理过程中出现未知错误,期末处理失败!"
  1633.     Call Xtxxts(Tsxx, 0, 1)
  1634. End Function
  1635. Private Sub Lst_Cklb_ItemCheck(Index As Integer, Item As Integer)
  1636.   
  1637.   If Lst_Cklb(0).SelCount = 0 Then
  1638.      Com_AvgPrice.Enabled = False
  1639.      Com_Qd.Enabled = False
  1640.   Else
  1641.      Com_AvgPrice.Enabled = True
  1642.      Com_Qd.Enabled = True
  1643.   End If
  1644.   
  1645.   If Lst_Cklb(1).SelCount = 0 Then
  1646.      Com_Hfqmcl.Enabled = False
  1647.   Else
  1648.      Com_Hfqmcl.Enabled = True
  1649.   End If
  1650.   
  1651. End Sub
  1652. Private Sub NewOutCost()
  1653.     Dim Rec_Material As ADODB.Recordset
  1654.     Dim Rec_NewOutCost As ADODB.Recordset
  1655.     Dim WhCode As String
  1656.     
  1657.     WhCode = AvgQuery_Cond + " or " + MoveQuery_Cond
  1658.     WhCode = Replace(WhCode, "view", "Chhs_Mate", , , vbTextCompare)
  1659.     Set Rec_Material = Cw_DataEnvi.DataConnect.Execute("SELECT distinct Chhs_Mate.MNumber FROM Gy_WareHouse INNER JOIN Chhs_Mate ON Gy_WareHouse.WhCode = Chhs_Mate.WhCode WHERE (Gy_WareHouse.PriceMode ='移动平均法' Or Gy_WareHouse.PriceMode = '全月平均法') and Chhs_Mate.OutQuan > 0 and  Chhs_Mate.kjyear='" & PGKjYear & "' and Chhs_Mate.period='" & PGNowmon & "' and " + WhCode)
  1660.     If Not Rec_Material.EOF Then
  1661.         Rec_Material.MoveFirst
  1662.         Do While Not Rec_Material.EOF
  1663.             Set Rec_NewOutCost = Cw_DataEnvi.DataConnect.Execute("SELECT Chhs_Mate.MateId,Chhs_Mate.MNumber,Chhs_Mate.OutPrice,Chhs_Mate.OutQuan FROM GY_WareHouse INNER JOIN Chhs_Mate ON Gy_WareHouse.WhCode = Chhs_Mate.WhCode WHERE (Gy_WareHouse.PriceMode ='移动平均法' Or Gy_WareHouse.PriceMode = '全月平均法') and Chhs_Mate.OutQuan > 0 and Chhs_Mate.MNumber='" & Trim(Rec_Material.Fields("MNumber")) & "' and Chhs_Mate.kjyear='" & PGKjYear & "' and Chhs_Mate.period='" & PGNowmon & "' order by Chhs_Mate.MateId")
  1664.             If Not Rec_NewOutCost.EOF Then
  1665.                 Rec_NewOutCost.MoveLast
  1666.                 Cw_DataEnvi.DataConnect.Execute ("UPDATE GY_Material set NewOutCost=" & Rec_NewOutCost.Fields("OutPrice") & " where MNumber='" & Trim(Rec_NewOutCost.Fields("MNumber")) & "'")
  1667.             End If
  1668.             Rec_Material.MoveNext
  1669.         Loop
  1670.     End If
  1671.     
  1672.     Set Rec_Material = Nothing
  1673.     Set Rec_NewOutCost = Nothing
  1674.     
  1675. End Sub
  1676. Private Sub ReturnNewOutCost()
  1677.     Dim Rec_Material As ADODB.Recordset
  1678.     Dim Rec_NewOutCost As ADODB.Recordset
  1679.     
  1680.     Dim WhCode As String
  1681.     
  1682.     WhCode = AvgQuery_Cond + " or " + MoveQuery_Cond
  1683.     WhCode = Replace(WhCode, "view", "Chhs_Mate", , , vbTextCompare)
  1684.     
  1685.     Set Rec_Material = Cw_DataEnvi.DataConnect.Execute("SELECT distinct Chhs_Mate.MNumber FROM Gy_WareHouse INNER JOIN Chhs_Mate ON Gy_WareHouse.WhCode = Chhs_Mate.WhCode WHERE (Gy_WareHouse.PriceMode ='移动平均法' Or Gy_WareHouse.PriceMode = '全月平均法') and Chhs_Mate.OutQuan > 0 and  Chhs_Mate.kjyear='" & PGKjYear & "' and Chhs_Mate.period='" & PGNowmon & "' and " + WhCode)
  1686.     If Not Rec_Material.EOF Then
  1687.         Rec_Material.MoveFirst
  1688.         Do While Not Rec_Material.EOF
  1689.             Set Rec_NewOutCost = Cw_DataEnvi.DataConnect.Execute("SELECT Chhs_Mate.MateId,Chhs_Mate.MNumber,Chhs_Mate.OutPrice,Chhs_Mate.OutQuan FROM Gy_WareHouse INNER JOIN Chhs_Mate ON Gy_WareHouse.WhCode = Chhs_Mate.WhCode WHERE (Gy_WareHouse.PriceMode ='移动平均法' Or Gy_WareHouse.PriceMode = '全月平均法') and Chhs_Mate.OutQuan > 0 and Chhs_Mate.MNumber='" & Trim(Rec_Material.Fields("MNumber")) & "' and Chhs_Mate.kjyear='" & PGKjYear & "' and Chhs_Mate.period='" & (PGPrevKjMon) & "' order by Chhs_Mate.MateId")
  1690.             If Not Rec_NewOutCost.EOF Then
  1691.                 Rec_NewOutCost.MoveLast
  1692.                 Cw_DataEnvi.DataConnect.Execute ("UPDATE GY_Material set NewOutCost=" & Rec_NewOutCost.Fields("OutPrice") & " where MNumber='" & Trim(Rec_NewOutCost.Fields("MNumber")) & "'")
  1693.             Else
  1694.                 Cw_DataEnvi.DataConnect.Execute ("UPDATE GY_Material set NewOutCost='0' where MNumber='" & Trim(Rec_Material.Fields("MNumber")) & "'")
  1695.             End If
  1696.             Rec_Material.MoveNext
  1697.         Loop
  1698.     End If
  1699.     
  1700.     Set Rec_Material = Nothing
  1701.     Set Rec_NewOutCost = Nothing
  1702.     
  1703. End Sub