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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{D76D7128-4A96-11D3-BD95-D296DC2DD072}#1.0#0"; "VSOCX7.OCX"
  3. Begin VB.Form CL_EndCheckOut 
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "期末结帐"
  6.    ClientHeight    =   4800
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   5325
  10.    HelpContextID   =   130408
  11.    Icon            =   "处理_期末结帐.frx":0000
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   4800
  16.    ScaleWidth      =   5325
  17.    StartUpPosition =   2  '屏幕中心
  18.    Begin VB.Timer Timer1 
  19.       Enabled         =   0   'False
  20.       Interval        =   1
  21.       Left            =   2670
  22.       Top             =   0
  23.    End
  24.    Begin VB.OptionButton Opt_Hfqmjz 
  25.       Caption         =   "恢复期末结帐"
  26.       Height          =   255
  27.       Left            =   1320
  28.       TabIndex        =   7
  29.       Top             =   4410
  30.       Width           =   1425
  31.    End
  32.    Begin VB.OptionButton Opt_Qmjz 
  33.       Caption         =   "期末结帐"
  34.       Height          =   255
  35.       Left            =   150
  36.       TabIndex        =   6
  37.       Top             =   4410
  38.       Value           =   -1  'True
  39.       Width           =   1095
  40.    End
  41.    Begin VB.CommandButton Com_Qx 
  42.       Cancel          =   -1  'True
  43.       Caption         =   "取消(&C)"
  44.       Height          =   300
  45.       Left            =   4080
  46.       TabIndex        =   1
  47.       Top             =   4380
  48.       Width           =   1120
  49.    End
  50.    Begin VB.CommandButton Com_Qmjz 
  51.       Caption         =   "确认(&O)"
  52.       Height          =   300
  53.       Left            =   2850
  54.       TabIndex        =   0
  55.       Top             =   4380
  56.       Width           =   1120
  57.    End
  58.    Begin VSFlex8Ctl.VSFlexGrid CxbbGrid 
  59.       Height          =   3795
  60.       Left            =   120
  61.       TabIndex        =   3
  62.       Top             =   450
  63.       Width           =   5085
  64.       _ExtentX        =   8969
  65.       _ExtentY        =   6694
  66.       Appearance      =   1
  67.       BorderStyle     =   1
  68.       Enabled         =   -1  'True
  69.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  70.          Name            =   "宋体"
  71.          Size            =   9
  72.          Charset         =   134
  73.          Weight          =   400
  74.          Underline       =   0   'False
  75.          Italic          =   0   'False
  76.          Strikethrough   =   0   'False
  77.       EndProperty
  78.       MousePointer    =   0
  79.       BackColor       =   -2147483643
  80.       ForeColor       =   0
  81.       BackColorFixed  =   -2147483633
  82.       ForeColorFixed  =   -2147483630
  83.       BackColorSel    =   16777152
  84.       ForeColorSel    =   -2147483640
  85.       BackColorBkg    =   -2147483636
  86.       BackColorAlternate=   -2147483643
  87.       GridColor       =   -2147483633
  88.       GridColorFixed  =   -2147483632
  89.       TreeColor       =   33023
  90.       FloodColor      =   192
  91.       SheetBorder     =   -2147483642
  92.       FocusRect       =   1
  93.       HighLight       =   1
  94.       AllowSelection  =   0   'False
  95.       AllowBigSelection=   0   'False
  96.       AllowUserResizing=   0
  97.       SelectionMode   =   1
  98.       GridLines       =   1
  99.       GridLinesFixed  =   2
  100.       GridLineWidth   =   1
  101.       Rows            =   50
  102.       Cols            =   10
  103.       FixedRows       =   1
  104.       FixedCols       =   1
  105.       RowHeightMin    =   0
  106.       RowHeightMax    =   0
  107.       ColWidthMin     =   0
  108.       ColWidthMax     =   0
  109.       ExtendLastCol   =   0   'False
  110.       FormatString    =   ""
  111.       ScrollTrack     =   0   'False
  112.       ScrollBars      =   0
  113.       ScrollTips      =   0   'False
  114.       MergeCells      =   0
  115.       MergeCompare    =   0
  116.       AutoResize      =   -1  'True
  117.       AutoSizeMode    =   0
  118.       AutoSearch      =   0
  119.       MultiTotals     =   -1  'True
  120.       SubtotalPosition=   0
  121.       OutlineBar      =   0
  122.       OutlineCol      =   0
  123.       Ellipsis        =   0
  124.       ExplorerBar     =   0
  125.       PicturesOver    =   0   'False
  126.       FillStyle       =   0
  127.       RightToLeft     =   0   'False
  128.       PictureType     =   0
  129.       TabBehavior     =   0
  130.       OwnerDraw       =   0
  131.       Editable        =   0   'False
  132.       ShowComboButton =   -1  'True
  133.       WordWrap        =   0   'False
  134.       TextStyle       =   0
  135.       TextStyleFixed  =   0
  136.       OleDragMode     =   0
  137.       OleDropMode     =   0
  138.       DataMode        =   0
  139.       VirtualData     =   -1  'True
  140.    End
  141.    Begin VB.Label Lbl_labTitle 
  142.       AutoSize        =   -1  'True
  143.       Caption         =   "当前会计期间:"
  144.       Height          =   240
  145.       Left            =   180
  146.       TabIndex        =   5
  147.       Top             =   120
  148.       Width           =   1170
  149.    End
  150.    Begin VB.Label Lbl_labText 
  151.       AutoSize        =   -1  'True
  152.       Caption         =   "Label1"
  153.       Height          =   240
  154.       Left            =   1440
  155.       TabIndex        =   4
  156.       Top             =   120
  157.       Width           =   1170
  158.    End
  159.    Begin VB.Label Label1 
  160.       AutoSize        =   -1  'True
  161.       Caption         =   "数据正在处理中..."
  162.       ForeColor       =   &H000000FF&
  163.       Height          =   210
  164.       Left            =   3270
  165.       TabIndex        =   2
  166.       Top             =   120
  167.       Visible         =   0   'False
  168.       Width           =   1530
  169.    End
  170. End
  171. Attribute VB_Name = "CL_EndCheckOut"
  172. Attribute VB_GlobalNameSpace = False
  173. Attribute VB_Creatable = False
  174. Attribute VB_PredeclaredId = True
  175. Attribute VB_Exposed = False
  176. '**************************************************************************
  177. '*    模 块 名 称 :期末结帐
  178. '*    功 能 描 述 :
  179. '*    程序员姓名  :杨波
  180. '*    最后修改人  :白凤英
  181. '*    最后修改时间:2001/12/10
  182. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  183. '**************************************************************************
  184. Dim mKjYear As Integer                   '调用年度
  185. Dim mKjMonth As Integer                  '调用月份
  186. Dim FindMonth As Integer                 '查询月份
  187. Dim DyLock As Boolean
  188. Dim Dqrow As Integer
  189. '以下为固定使用变量
  190. Dim ReportTitle As String                '报表主标题
  191. Dim Dyymctbl As New DY_Dyymsz            '打印页面窗体变量
  192. Dim GridCode As String                   '显示网格网格代码
  193. Dim GridInf() As Variant                 '整个网格设置信息
  194. Dim Tsxx As String                       '系统提示信息
  195. Dim Qslz As Long                         '网格隐藏(非操作显示)列数
  196. Dim Sjhgd As Double                      '网格数据行高度
  197. Dim Sfxshjwg As Boolean                  '是否显示合计网格
  198. Dim GridBoolean() As Boolean             '网格列信息(布尔型)
  199. Dim GridStr()  As String                 '网格列信息(字符型)
  200. Dim GridInt() As Integer                 '网格列信息(整型)
  201. Dim Szzls As Integer                     '数组总列数(网格列数-1)
  202. Dim Jsqte%
  203. Private Sub Sub_Qmjz()      '期末结帐
  204.     Dim Rectemp As New ADODB.Recordset
  205.     Dim RecTempFz As New ADODB.Recordset
  206.     Dim Rec_Query As Recordset
  207.     Dim Msg As Integer
  208.     Dim Now_year As Integer
  209.     Dim Now_period As Integer
  210.     Dim mPeriod As Integer
  211.     Dim mYear As Integer
  212.     Dim Zfstr As String
  213.     Dim SqlStr As String
  214.   
  215.     Now_year = PGKjYear
  216.     Now_period = PGNowmon
  217.     
  218.     If Now_period = Val(CxbbGrid.TextMatrix(CxbbGrid.Rows - 1, Sydz("001", GridStr(), Szzls))) Then
  219.         mPeriod = 1
  220.         mYear = PGKjYear + 1
  221.     Else
  222.         mPeriod = Now_period + 1
  223.         mYear = PGKjYear
  224.     End If
  225.         
  226.     '系统集成时,库房未记帐时核算不能记帐
  227.     If Xt_XtJc Then
  228.         Set Rectemp = Cw_DataEnvi.DataConnect.Execute("select * from gy_kjrlb where kjyear=" & Now_year & " and period=" & Now_period)
  229.         If Not Rectemp.EOF Then
  230.             If Not Rectemp.Fields("kfjzbz") Then
  231.                 Tsxx = "库存管理系统未结帐,不允许核算系统结帐!"
  232.                 Call Xtxxts(Tsxx, 0, 4)
  233.                 Exit Sub
  234.             End If
  235.         End If
  236.     End If
  237.     
  238.     '操作日期大于等于单据录入的最大日期
  239.     SqlStr = "select max(chalkdate) as maxdate from chhs_list a where kjyear=" & Now_year & " and period=" & Now_period
  240.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  241.     If Not Rectemp.EOF Then
  242.         If Xtrq < Rectemp.Fields("maxdate") Then
  243.             Tsxx = "操作日期必须>=单据记帐日期 " + Format(CStr(Rectemp.Fields("maxdate")), "yyyy-mm-dd")
  244.             Call Xtxxts(Tsxx, 0, 4)
  245.             Exit Sub
  246.         End If
  247.     End If
  248.     
  249.     '判断是否全部期末处理完毕
  250.     SqlStr = "SELECT WhName,EndDealFlagChhs from GY_WareHouse Where ChhsUseFlag=1 ORDER BY WhCode "
  251.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  252.     
  253.     Zfstr = ""
  254.     Do While Not Rectemp.EOF
  255.         If Not Rectemp.Fields("EndDealFlagChhs") Then
  256.             If Zfstr = "" Then
  257.                 Zfstr = Trim(Rectemp.Fields("WhName"))
  258.             Else
  259.                 Zfstr = Zfstr + "、" + Trim(Rectemp.Fields("WhName"))
  260.             End If
  261.         End If
  262.         Rectemp.MoveNext
  263.     Loop
  264.         
  265.     If Zfstr <> "" Then
  266.         Tsxx = "仓库 (" + Zfstr + ") 未进行期末处理!"
  267.         Call Xtxxts(Tsxx, 0, 1)
  268.         Exit Sub
  269.     End If
  270.   
  271.     '判断上月是否结帐
  272.     If Now_period = 1 Then
  273.         SqlStr = "SELECT * FROM GY_Kjrlb WHERE Kjyear=" & Now_year - 1 & " order by period desc "
  274.         Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  275.         If Not Rectemp.EOF Then
  276.             If Not Rectemp.Fields("Chhsjzbz") Then
  277.                 Tsxx = "上月未结帐!"
  278.                 Call Xtxxts(Tsxx, 0, 1)
  279.                 Exit Sub
  280.             End If
  281.         End If
  282.     Else
  283.         SqlStr = "SELECT * FROM GY_Kjrlb WHERE Kjyear=" & Now_year & " and period=" & Now_period - 1
  284.         Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  285.         If Not Rectemp.EOF Then
  286.             If Not Rectemp.Fields("Chhsjzbz") Then
  287.                 Tsxx = "上月未结帐!"
  288.                 Call Xtxxts(Tsxx, 0, 1)
  289.                 Exit Sub
  290.             End If
  291.         End If
  292.     End If
  293.     
  294.     Tsxx = "是否进行期末结帐?"
  295.     Msg = Xtxxts(Tsxx, 1, 2)
  296.     If Not Msg = 6 Then Exit Sub
  297.     
  298.     Label1.Visible = True
  299.     Label1.Refresh
  300.     SqlStr = "SELECT Chhsjzbz from GY_Kjrlb WHERE Kjyear='" & Now_year & "' and Period='" & Now_period & "'"
  301.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  302.     If Rectemp.Fields("Chhsjzbz") Then
  303.         Tsxx = "期末已经结帐,不能再次结帐!"
  304.         Label1.Visible = False
  305.         Call Xtxxts(Tsxx, 0, 4)
  306.         Exit Sub
  307.     End If
  308.  
  309.     Cw_DataEnvi.DataConnect.BeginTrans
  310.     
  311.     '调整期末结存,生成下月期初
  312.     If RecTempFz.State = 1 Then RecTempFz.Close
  313.     RecTempFz.Open "SELECT * FROM Chhs_Mate where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  314.     
  315.     If Rectemp.State = 1 Then Rectemp.Close
  316.     Rectemp.Open "SELECT * FROM Chhs_Mate WHERE Kjyear=" & Now_year & " and Period=" & Now_period, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  317.     
  318.     Do While Not Rectemp.EOF
  319.     
  320.         '期末结存
  321.         Rectemp.Fields("EndQuan") = Val(Rectemp.Fields("StartQuan")) + Val(Rectemp.Fields("InQuan")) - Val(Rectemp("OutQuan"))
  322.         Rectemp.Fields("EndMoney") = Val(Rectemp.Fields("StartMoney")) + Val(Rectemp.Fields("InMoney")) - Val(Rectemp("OutMoney"))
  323.         If Not Rectemp.Fields("EndQuan") = 0 Then
  324.             Rectemp.Fields("EndPrice") = Format(Val(Rectemp.Fields("EndMoney")) / Val(Rectemp.Fields("EndQuan")), "###." + String(Xtdjxsws, "0"))
  325.         Else
  326.             Rectemp.Fields("EndPrice") = 0
  327.         End If
  328.         Rectemp.Fields("EndDiff") = Val(Rectemp.Fields("StartDiff")) + Val(Rectemp.Fields("JfDiff")) - Val(Rectemp("DfDiff"))
  329.         Rectemp.UpdateBatch
  330.         
  331.         '生成下月期初
  332.         RecTempFz.AddNew
  333.         RecTempFz.Fields("WhCode") = Trim(Rectemp.Fields("WhCode"))
  334.         RecTempFz.Fields("MNumber") = Trim(Rectemp.Fields("MNumber"))
  335.         RecTempFz.Fields("StartQuan") = Val(Rectemp.Fields("EndQuan"))
  336.         RecTempFz.Fields("StartPrice") = Val(Rectemp.Fields("EndPrice"))
  337.         RecTempFz.Fields("StartMoney") = Val(Rectemp.Fields("EndMoney"))
  338.         RecTempFz.Fields("StartDiff") = Val(Rectemp.Fields("EndDiff"))
  339.         RecTempFz.Fields("kjyear") = mYear
  340.         RecTempFz.Fields("period") = mPeriod
  341.         RecTempFz.UpdateBatch
  342.         Rectemp.MoveNext
  343.     Loop
  344.     
  345.     '汇总下月的红字回冲单
  346.     SqlStr = "SELECT WhCode, MNumber, SUM(InQuan) AS InQuan,SUM(InMoney)  AS InMoney," & _
  347.              "SUM(JfDiff) AS JfDiff,SUM(DfDiff) AS DfDiff " & _
  348.              "FROM Chhs_List WHERE Period =" & mPeriod & "and Kjyear=" & mYear & _
  349.              " GROUP BY WhCode, MNumber"
  350.     Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  351.     Do While Not Rec_Query.EOF
  352.         If RecTempFz.State = 1 Then RecTempFz.Close
  353.         SqlStr = "SELECT * FROM Chhs_Mate WHERE Kjyear=" & mYear & " and Period=" & mPeriod & _
  354.                  " and WhCode='" & Trim(Rec_Query.Fields("WhCode")) & "'" & _
  355.                  " AND  MNumber ='" & Trim(Rec_Query.Fields("MNumber")) & "'"
  356.         RecTempFz.Open SqlStr, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
  357.         If Not RecTempFz.EOF Then
  358.             RecTempFz.Fields("InQuan") = Val(Rec_Query.Fields("InQuan"))
  359.             RecTempFz.Fields("InMoney") = Val(Rec_Query.Fields("InMoney"))
  360.             If Rec_Query.Fields("InQuan") <> 0 Then
  361.                 RecTempFz.Fields("InPrice") = Format(Val(Rec_Query.Fields("InMoney")) / Val(Rec_Query.Fields("InQuan")), "##0." + String(Xtdjxsws, "0"))
  362.             End If
  363.             RecTempFz.Fields("JfDiff") = Val(Rec_Query.Fields("JfDiff"))
  364.             RecTempFz.Fields("DfDiff") = Val(Rec_Query.Fields("DfDiff"))
  365.             RecTempFz.UpdateBatch
  366.         Else
  367.             RecTempFz.AddNew
  368.             RecTempFz.Fields("WhCode") = Trim(Rec_Query.Fields("WhCode"))
  369.             RecTempFz.Fields("MNumber") = Trim(Rec_Query.Fields("MNumber"))
  370.             RecTempFz.Fields("kjyear") = mYear
  371.             RecTempFz.Fields("period") = mPeriod
  372.             RecTempFz.Fields("InQuan") = Val(Rec_Query.Fields("InQuan"))
  373.             RecTempFz.Fields("InMoney") = Val(Rec_Query.Fields("InMoney"))
  374.             If Rec_Query.Fields("InQuan") <> 0 Then
  375.                 RecTempFz.Fields("InPrice") = Format(Val(Rec_Query.Fields("InMoney")) / Val(Rec_Query.Fields("InQuan")), "##0." + String(Xtdjxsws, "0"))
  376.             End If
  377.             RecTempFz.Fields("JfDiff") = Val(Rec_Query.Fields("JfDiff"))
  378.             RecTempFz.Fields("DfDiff") = Val(Rec_Query.Fields("DfDiff"))
  379.             RecTempFz.UpdateBatch
  380.         End If
  381.         Rec_Query.MoveNext
  382.     Loop
  383.     
  384.     '结帐标志
  385.     SqlStr = "Update Gy_Kjrlb SET Chhsjzbz=1 WHERE Kjyear=" & Now_year & " and Period=" & Now_period
  386.     Cw_DataEnvi.DataConnect.Execute (SqlStr)
  387.     
  388.     '清除仓库期末结帐标志
  389.     SqlStr = "Update Gy_Warehouse SET EndDealFlagChhs=0 WHERE chhsuseflag=1"
  390.     Cw_DataEnvi.DataConnect.Execute (SqlStr)
  391.   
  392.     Cw_DataEnvi.DataConnect.CommitTrans
  393.     
  394.     Label1.Visible = False
  395.     
  396.     Call Sub_Query
  397.     Call Sub_Opt
  398.     
  399.     Tsxx = "期末结帐完毕!"
  400.     Call Xtxxts(Tsxx, 0, 4)
  401.     
  402.     Set Rectemp = Nothing
  403.     Set RecTempFz = Nothing
  404.     
  405. End Sub
  406. Private Sub Sub_HfQmjz()      '恢复期末结帐
  407.     Dim Rectemp As New ADODB.Recordset
  408.     Dim RecTempFz As New ADODB.Recordset
  409.     Dim Msg As Integer
  410.     Dim Now_year As Integer
  411.     Dim Now_period As Integer
  412.     Dim Hf_year As Integer
  413.     Dim Hf_period As Integer
  414.     Dim Pre_Period As Integer
  415.     Dim SqlStr As String
  416.   
  417.     Now_year = PGKjYear
  418.     Now_period = PGNowmon
  419.     
  420.     Hf_year = PGPrevKjYear
  421.     Hf_period = PGPrevKjMon
  422.     
  423.     '判断是否全部期末处理完毕
  424.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute("SELECT WhCode,EndDealFlagChhs FROM GY_WareHouse Where chhsuseflag=1 ORDER BY WhCode")
  425.     Do While Not Rectemp.EOF
  426.         If Rectemp.Fields("EndDealFlagChhs") Then
  427.             Tsxx = "仓库(" + Trim(Rectemp.Fields("WhCode")) + ")已进行当前月份期末处理!"
  428.             Call Xtxxts(Tsxx, 0, 4)
  429.             Exit Sub
  430.         End If
  431.         Rectemp.MoveNext
  432.     Loop
  433.     
  434.     '判断是否记帐
  435.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute("SELECT ChalkitupMan FROM GY_InoutMain WHERE kjyear=" & Now_year & " and Period=" & Now_period & " and ChalkitupMan<>''")
  436.     If Not Rectemp.EOF Then
  437.         Tsxx = "当前月份单据已记帐!"
  438.         Call Xtxxts(Tsxx, 0, 4)
  439.         Exit Sub
  440.     End If
  441.     
  442.     '判断库房管理系统是否已结帐
  443.     Set Rectemp = Cw_DataEnvi.DataConnect.Execute("SELECT Kfjzbz FROM GY_Kjrlb WHERE kfjzbz=1 and kjyear=" & Now_year & " and Period=" & Now_period)
  444.     If Not Rectemp.EOF Then
  445.         Tsxx = "库房管理系统 " + CStr(Now_year) + "." + CStr(Now_period) + " 已结帐,不允许恢复 " + CStr(Hf_year) + "." + CStr(Hf_period) + " 的期末结帐!"
  446.         Call Xtxxts(Tsxx, 0, 4)
  447.         Exit Sub
  448.     End If
  449.   
  450.     Tsxx = "是否进行恢复期末结帐?"
  451.     Msg = Xtxxts(Tsxx, 1, 2)
  452.     If Not Msg = 6 Then Exit Sub
  453.     
  454.     Label1.Visible = True
  455.     Label1.Refresh
  456.  
  457.     Cw_DataEnvi.DataConnect.BeginTrans
  458.     '会计日历表标记
  459.     Cw_DataEnvi.DataConnect.Execute ("UPDATE GY_Kjrlb SET Chhsjzbz=0 WHERE Kjyear=" & Hf_year & " AND Period=" & Hf_period)
  460.     
  461.     '仓库期末结帐标志
  462.     SqlStr = "Update Gy_Warehouse SET EndDealFlagChhs=1 WHERE chhsuseflag=1"
  463.     Cw_DataEnvi.DataConnect.Execute (SqlStr)
  464.     
  465.     '删除当前月期初
  466.     Cw_DataEnvi.DataConnect.Execute ("DELEte Chhs_Mate WHERE Kjyear=" & Now_year & " and Period=" & Now_period)
  467.     
  468.     '清除恢复月份期末结存
  469.     Cw_DataEnvi.DataConnect.Execute ("UPDATE Chhs_Mate Set EndQuan=0,EndPrice=0,EndMoney=0,EndDiff=0 WHERE Kjyear=" & Hf_year & " and Period=" & Hf_period)
  470.         
  471.     Cw_DataEnvi.DataConnect.CommitTrans
  472.   
  473.     Label1.Visible = False
  474.     
  475.     Call Sub_Query
  476.     Call Sub_Opt
  477.     
  478.     Tsxx = "期末结帐恢复完毕!"
  479.     Call Xtxxts(Tsxx, 0, 4)
  480.   
  481. End Sub
  482. Private Sub Com_Qmjz_Click()
  483.   
  484.     If Opt_Qmjz.Value Then
  485.         If Not Month(Xtrq) = PGNowmon Then
  486.             Tsxx = "操作日期不在当前会计期间(" + Trim(Str(PGKjYear)) + "." + Trim(Str(PGNowmon)) + ")之内,请重新登录!"
  487.             Call Xtxxts(Tsxx, 0, 1)
  488.             Exit Sub
  489.         End If
  490.         Call Sub_Qmjz
  491.     Else
  492.         Call Sub_HfQmjz
  493.     End If
  494.   
  495. End Sub
  496. Private Sub Com_Qx_Click()
  497.     Unload Me
  498.   
  499. End Sub
  500. Private Sub Form_Load()                                                   '窗体装入
  501.   
  502.     '调 入 网 格
  503.     GridCode = "Chhs_EndCheckOut"
  504.     Call BzWgcsh(CxbbGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  505.     
  506.     Qslz = GridInf(1)
  507.     Sjhgd = GridInf(2)
  508.     Sfxshjwg = GridInf(7)
  509.     Szzls = CxbbGrid.Cols - 1
  510.     CxbbGrid.AllowUserResizing = flexResizeNone
  511.     
  512.     CxbbGrid.SelectionMode = flexSelectionByRow
  513.     CxbbGrid.BackColorSel = &HFFFFC0
  514.     DyLock = True
  515.     Dqrow = 0
  516.     
  517. End Sub
  518. Private Sub Sub_Query()      '填充网格
  519.  
  520.     Dim Rectemp As New ADODB.Recordset
  521.     Dim Dqrow As Long
  522.     Dim SqlStr As String
  523.     
  524.     Lbl_labText = Str(PGKjYear) + "." + Str(PGNowmon)
  525.     With CxbbGrid
  526.     
  527.         .Rows = .FixedRows
  528.         
  529.         Set Rectemp = Cw_DataEnvi.DataConnect.Execute("select Period,Qsrq,Zzrq,Chhsjzbz from GY_kjrlb where kjyear=" & Me.Dyear & " order by kjyear ,Period")
  530.         Do While Not Rectemp.EOF
  531.             .AddItem ""
  532.             .RowHeight(.Rows - 1) = Sjhgd
  533.             .TextMatrix(.Rows - 1, Sydz("001", GridStr(), Szzls)) = Trim(Rectemp.Fields("Period"))
  534.             .TextMatrix(.Rows - 1, Sydz("002", GridStr(), Szzls)) = Format(Trim(Rectemp.Fields("Qsrq")), "yyyy-mm-dd")
  535.             .TextMatrix(.Rows - 1, Sydz("003", GridStr(), Szzls)) = Format(Trim(Rectemp.Fields("Zzrq")), "yyyy-mm-dd")
  536.             .TextMatrix(.Rows - 1, Sydz("004", GridStr(), Szzls)) = Trim(Rectemp.Fields("chhsjzbz"))
  537.             Rectemp.MoveNext
  538.         Loop
  539.         .Enabled = False
  540.     
  541.     End With
  542.  
  543.     Set Rectemp = Nothing
  544.  
  545. End Sub
  546. Private Sub Opt_Hfqmjz_Click()
  547.     
  548.     If DyLock Then Exit Sub
  549.     
  550.     With CxbbGrid
  551.         If Dqrow - 1 > 0 Then
  552.             .Select Dqrow - 1, 0, Dqrow - 1, .Cols - 1
  553.         End If
  554.     End With
  555. End Sub
  556. Private Sub Opt_Qmjz_Click()
  557.     
  558.     If DyLock Then Exit Sub
  559.     
  560.     With CxbbGrid
  561.        If Dqrow > 0 Then
  562.             .Select Dqrow, 0, Dqrow, .Cols - 1
  563.         End If
  564.     End With
  565. End Sub
  566. Private Sub Timer1_Timer()
  567.     Timer1.Enabled = False
  568.    
  569.     '加快显示速度
  570.     CxbbGrid.Redraw = False
  571.     '生成查询结果
  572.     Call Sub_Query
  573.     Call Sub_Opt
  574.     CxbbGrid.Redraw = True
  575.     
  576. End Sub
  577. Private Sub Sub_Opt()           '恢复状态
  578.     DyLock = True
  579.     
  580.     Lbl_labText = Str(PGKjYear) + "." + Str(PGNowmon)
  581.     With CxbbGrid
  582.     
  583.         If Me.Dmonth = Val(.TextMatrix(.Rows - 1, Sydz("001", GridStr(), Szzls))) Then
  584.             If .TextMatrix(.Rows - 1, .Cols - 1) = True Then
  585.                 Opt_Qmjz.Enabled = False
  586.                 Opt_Hfqmjz.Enabled = True
  587.                 Opt_Hfqmjz.Value = True
  588.             Else
  589.                 Opt_Qmjz.Enabled = True
  590.                 Opt_Hfqmjz.Enabled = True
  591.                 Opt_Qmjz.Value = True
  592.             End If
  593.         Else
  594.             If .TextMatrix(.FixedRows, .Cols - 1) = False Then
  595.                 Opt_Qmjz.Enabled = True
  596.                 Opt_Hfqmjz.Enabled = False
  597.                 Opt_Qmjz.Value = True
  598.             Else
  599.                 Opt_Qmjz.Enabled = True
  600.                 Opt_Hfqmjz.Enabled = True
  601.                 Opt_Qmjz.Value = True
  602.             End If
  603.         End If
  604.     
  605.         If .Rows > .FixedRows Then
  606.             If Me.Dmonth = Val(.TextMatrix(.Rows - 1, Sydz("001", GridStr(), Szzls))) Then
  607.                 Dqrow = .Rows - 1
  608.             Else
  609.                 Dqrow = .Findrow("False", 0, .Cols - 1)
  610.             End If
  611.         End If
  612.         
  613.         If Dqrow > 0 Then
  614.             .Select Dqrow, 0, Dqrow, .Cols - 1
  615.         End If
  616.     End With
  617.     
  618.     DyLock = False
  619.     
  620. End Sub
  621. Public Property Get Dyear() As Variant
  622.     Dyear = mKjYear
  623. End Property
  624. Public Property Let Dyear(ByVal vNewValue As Variant)
  625.     mKjYear = vNewValue
  626. End Property
  627. Public Property Get Dmonth() As Variant
  628.     Dmonth = mKjMonth
  629. End Property
  630. Public Property Let Dmonth(ByVal vNewValue As Variant)
  631.     mKjMonth = vNewValue
  632. End Property