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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
  3. Object = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "TABCTL32.OCX"
  4. Begin VB.Form KF_FrmCheck 
  5.    BorderStyle     =   3  'Fixed Dialog
  6.    Caption         =   "月末结帐"
  7.    ClientHeight    =   3510
  8.    ClientLeft      =   45
  9.    ClientTop       =   330
  10.    ClientWidth     =   4530
  11.    ForeColor       =   &H80000008&
  12.    HelpContextID   =   1216001
  13.    Icon            =   "月末处理_月末结帐.frx":0000
  14.    LinkTopic       =   "Form1"
  15.    MaxButton       =   0   'False
  16.    MinButton       =   0   'False
  17.    ScaleHeight     =   3510
  18.    ScaleWidth      =   4530
  19.    ShowInTaskbar   =   0   'False
  20.    StartUpPosition =   2  '屏幕中心
  21.    Begin TabDlg.SSTab SSTab1 
  22.       Height          =   2955
  23.       Left            =   45
  24.       TabIndex        =   0
  25.       Top             =   0
  26.       Width           =   4410
  27.       _ExtentX        =   7779
  28.       _ExtentY        =   5212
  29.       _Version        =   393216
  30.       Style           =   1
  31.       Tabs            =   2
  32.       TabHeight       =   520
  33.       TabCaption(0)   =   "月末结帐"
  34.       TabPicture(0)   =   "月末处理_月末结帐.frx":1042
  35.       Tab(0).ControlEnabled=   -1  'True
  36.       Tab(0).Control(0)=   "Frame1(0)"
  37.       Tab(0).Control(0).Enabled=   0   'False
  38.       Tab(0).ControlCount=   1
  39.       TabCaption(1)   =   "恢复月末结帐"
  40.       TabPicture(1)   =   "月末处理_月末结帐.frx":105E
  41.       Tab(1).ControlEnabled=   0   'False
  42.       Tab(1).Control(0)=   "Frame1(1)"
  43.       Tab(1).Control(0).Enabled=   0   'False
  44.       Tab(1).ControlCount=   1
  45.       Begin VB.Frame Frame1 
  46.          Height          =   2520
  47.          Index           =   1
  48.          Left            =   -74910
  49.          TabIndex        =   7
  50.          Top             =   330
  51.          Width           =   4215
  52.          Begin VB.Frame Frame2 
  53.             Caption         =   "会计期间"
  54.             Height          =   615
  55.             Index           =   1
  56.             Left            =   2955
  57.             TabIndex        =   15
  58.             Top             =   240
  59.             Width           =   1125
  60.             Begin VB.Label lblUnYear 
  61.                ForeColor       =   &H00FF0000&
  62.                Height          =   210
  63.                Left            =   120
  64.                TabIndex        =   16
  65.                Top             =   300
  66.                Width           =   930
  67.             End
  68.          End
  69.          Begin VB.CommandButton QdQuitU 
  70.             Caption         =   "退出"
  71.             Height          =   330
  72.             Left            =   2955
  73.             TabIndex        =   11
  74.             Top             =   2055
  75.             Width           =   1125
  76.          End
  77.          Begin VB.CommandButton QdOkU 
  78.             Caption         =   "恢复结帐"
  79.             Height          =   330
  80.             Left            =   2955
  81.             TabIndex        =   10
  82.             Top             =   1590
  83.             Width           =   1125
  84.          End
  85.          Begin VB.CommandButton QdAllU 
  86.             Caption         =   "全选"
  87.             Height          =   330
  88.             Left            =   2955
  89.             TabIndex        =   9
  90.             Tag             =   "全消"
  91.             Top             =   1125
  92.             Width           =   1125
  93.          End
  94.          Begin VB.ListBox Lst_Uncheck 
  95.             Height          =   2160
  96.             Left            =   135
  97.             Style           =   1  'Checkbox
  98.             TabIndex        =   8
  99.             Top             =   240
  100.             Width           =   2700
  101.          End
  102.       End
  103.       Begin VB.Frame Frame1 
  104.          Height          =   2520
  105.          Index           =   0
  106.          Left            =   90
  107.          TabIndex        =   1
  108.          Top             =   330
  109.          Width           =   4215
  110.          Begin VB.Frame Frame2 
  111.             Caption         =   "会计期间"
  112.             Height          =   615
  113.             Index           =   0
  114.             Left            =   2955
  115.             TabIndex        =   13
  116.             Top             =   240
  117.             Width           =   1125
  118.             Begin VB.Label lblCheckYear 
  119.                ForeColor       =   &H00FF0000&
  120.                Height          =   210
  121.                Left            =   120
  122.                TabIndex        =   14
  123.                Top             =   300
  124.                Width           =   900
  125.             End
  126.          End
  127.          Begin VB.ListBox Lst_Check 
  128.             Height          =   2160
  129.             Left            =   135
  130.             Style           =   1  'Checkbox
  131.             TabIndex        =   5
  132.             Top             =   240
  133.             Width           =   2700
  134.          End
  135.          Begin VB.CommandButton QdAll 
  136.             Caption         =   "全选"
  137.             Height          =   330
  138.             Left            =   2955
  139.             TabIndex        =   4
  140.             Tag             =   "全消"
  141.             Top             =   1125
  142.             Width           =   1120
  143.          End
  144.          Begin VB.CommandButton QdOk 
  145.             Caption         =   "结帐"
  146.             Height          =   330
  147.             Left            =   2955
  148.             TabIndex        =   3
  149.             Top             =   1590
  150.             Width           =   1120
  151.          End
  152.          Begin VB.CommandButton QdQuit 
  153.             Caption         =   "退出"
  154.             Height          =   330
  155.             Left            =   2955
  156.             TabIndex        =   2
  157.             Top             =   2055
  158.             Width           =   1120
  159.          End
  160.       End
  161.    End
  162.    Begin MSComctlLib.ProgressBar PB 
  163.       Height          =   225
  164.       Left            =   75
  165.       TabIndex        =   6
  166.       Top             =   3225
  167.       Width           =   4380
  168.       _ExtentX        =   7726
  169.       _ExtentY        =   397
  170.       _Version        =   393216
  171.       Appearance      =   1
  172.       MousePointer    =   4
  173.       Scrolling       =   1
  174.    End
  175.    Begin VB.Label Lb 
  176.       AutoSize        =   -1  'True
  177.       BackStyle       =   0  'Transparent
  178.       Height          =   180
  179.       Left            =   1545
  180.       TabIndex        =   12
  181.       Top             =   3030
  182.       Width           =   90
  183.    End
  184. End
  185. Attribute VB_Name = "KF_FrmCheck"
  186. Attribute VB_GlobalNameSpace = False
  187. Attribute VB_Creatable = False
  188. Attribute VB_PredeclaredId = True
  189. Attribute VB_Exposed = False
  190. '*****************************************************************
  191. '*   模块名称:月末结帐
  192. '*   模块功能:设置库存管理系统月末结帐
  193. '*   编 制 者:赵宇光
  194. '*   编制日期:2001/12/11
  195. '*   备    注:
  196. '*****************************************************************
  197. Dim adoWare As New ADODB.Recordset
  198. Dim Tsxx As String
  199. Dim strWhCode() As String
  200. Dim strWh As String
  201. Dim ChkYear As Integer                  '结账或恢复结帐年度
  202. Dim ChkMonth As Integer                 '结账或恢复结帐月份
  203. Dim bls As Boolean
  204. Const YMConnect = "."                   '年度和月份联字符
  205. Public Function FillKjYear(ChkFlag As Boolean, intYear As Integer, intMonth As Integer)
  206. '函数功能:根据用户选择,取得月末结帐或恢复月末结帐的月份
  207. '输入参数:ChkFlag(结账或恢复结帐选择----True:结账   False:恢复结帐)
  208. '输出参数:intYear(结账或恢复结帐年度)    intMonth(结账或恢复结帐月份)
  209.     
  210.     Dim adoRec As New ADODB.Recordset
  211.     Dim strSQL As String
  212.     Dim adoTemp As New ADODB.Recordset
  213.     Dim WhFlag As Boolean
  214.     Dim strTemp As String
  215.     
  216.     strTemp = "SELECT EndDealFlagWh FROM Gy_WareHouse WHERE EndDealFlagWh=1"
  217.     Set adoTemp = Cw_DataEnvi.DataConnect.Execute(strTemp)
  218.     
  219.     If Not adoTemp.EOF Then
  220.         WhFlag = True
  221.     End If
  222.     adoTemp.Close
  223.     Set adoTemp = Nothing
  224.     
  225.     If ChkFlag = True Then
  226.         strSQL = "SELECT KjYear,Period FROM GY_KJRLB WHERE KFjzbz=0 ORDER BY kjyear,Period"
  227.     Else
  228.         If WhFlag = True Then
  229.             strSQL = "SELECT KjYear,Period FROM GY_KJRLB WHERE KFjzbz=0 ORDER BY kjyear,Period"
  230.         Else
  231.             strSQL = "SELECT KjYear,Period FROM GY_KJRLB WHERE KFjzbz=1 ORDER BY kjyear,Period DESC"
  232.         End If
  233.     End If
  234.     
  235.     Set adoRec = Cw_DataEnvi.DataConnect.Execute(strSQL)
  236.     
  237.     With adoRec
  238.         If Not .EOF Then
  239.             .MoveFirst
  240.             intYear = .Fields("KjYear")
  241.             intMonth = .Fields("Period")
  242.         End If
  243.     End With
  244.     adoRec.Close
  245.     Set adoRec = Nothing
  246. End Function
  247. Private Sub FillWare(L As ListBox, Czybm As String, ChkFlag As Boolean)
  248.     '填充仓库(001-listbox,002-操作员编码,003-结帐与恢复结帐标志)
  249.     
  250.     Dim strQuery As String
  251.     Dim strTemp As String
  252.     Dim i As Integer
  253.     Dim adoWare As New ADODB.Recordset
  254.     Dim adoTemp As New ADODB.Recordset
  255.     Dim JZFlag As Boolean
  256.     
  257.     strTemp = "SELECT KFjzbz FROM GY_KJRLB WHERE KjYear=" & ChkYear & " and Period=" & ChkMonth
  258.     Set adoTemp = Cw_DataEnvi.DataConnect.Execute(strTemp)
  259.     
  260.     If Not adoTemp.EOF Then
  261.         JZFlag = CBool(adoTemp.Fields("kfjzbz"))
  262.     End If
  263.     adoTemp.Close
  264.     Set adoTemp = Nothing
  265.     
  266.     If ChkFlag = True Then
  267.         If JZFlag = True Then
  268.             strQuery = "SELECT  whcode,whname FROM kf_v_whlimit WHERE 1=2"
  269.         Else
  270.             strQuery = "SELECT  whcode,whname FROM kf_v_whlimit WHERE czybm='" & Trim(Czybm) & "' AND EndDealFlagWh=0"
  271.         End If
  272.     Else
  273.         If JZFlag = True Then
  274.             strQuery = "SELECT  whcode,whname FROM kf_v_whlimit WHERE czybm='" & Trim(Czybm) & "' AND EndDealFlagWh=0"
  275.         Else
  276.             strQuery = "SELECT  whcode,whname FROM kf_v_whlimit WHERE czybm='" & Trim(Czybm) & "' AND EndDealFlagWh=1"
  277.         End If
  278.     End If
  279.     
  280.     Set adoWare = Cw_DataEnvi.DataConnect.Execute(strQuery)
  281.     
  282.     With adoWare
  283.         If Not .EOF Then
  284.             ReDim strWhCode(adoWare.RecordCount)
  285.         End If
  286.     End With
  287.     
  288.     L.Clear
  289.     With L
  290.         For i = 0 To adoWare.RecordCount - 1
  291.              .AddItem Trim(adoWare.Fields("whcode")) + "-" + Trim(adoWare.Fields("whname"))
  292.              strWhCode(i) = Trim(adoWare.Fields("whcode"))
  293.              adoWare.MoveNext
  294.         Next i
  295.     End With
  296.     
  297.     adoWare.Close
  298.     Set adoWare = Nothing
  299. End Sub
  300. Private Sub Form_Load()
  301.     '填充会计期间
  302.     Call FillKjYear(True, ChkYear, ChkMonth)
  303.     lblCheckYear.Caption = CStr(ChkYear) & "." & CStr(ChkMonth)
  304.     '填充结帐仓库
  305.     Call FillWare(Lst_Check, Xtczybm, True)
  306.     PB.Visible = False
  307.     Me.Height = Me.Height - 500
  308.     
  309. End Sub
  310. Private Sub QdAll_Click()
  311.     '结帐全选
  312.     
  313.     If QdAll.Caption = "全选" Then
  314.         QdAll.Tag = "全消"
  315.         For i = 0 To Lst_Check.ListCount - 1
  316.             Lst_Check.Selected(i) = True
  317.         Next i
  318.     Else
  319.         For i = 0 To Lst_Check.ListCount - 1
  320.           Lst_Check.Selected(i) = False
  321.         Next i
  322.     End If
  323.     
  324.     strTemp = QdAll.Caption
  325.     QdAll.Caption = QdAll.Tag
  326.     QdAll.Tag = strTemp
  327. End Sub
  328. Private Sub QdAllU_Click()
  329.     '恢复结帐全选
  330.     If QdAllU.Caption = "全选" Then
  331.         QdAllU.Tag = "全消"
  332.         For i = 0 To Lst_Uncheck.ListCount - 1
  333.             Lst_Uncheck.Selected(i) = True
  334.         Next i
  335.     Else
  336.         For i = 0 To Lst_Uncheck.ListCount - 1
  337.           Lst_Uncheck.Selected(i) = False
  338.         Next i
  339.     End If
  340.        
  341.     strTemp = QdAllU.Caption
  342.     QdAllU.Caption = QdAllU.Tag
  343.     QdAllU.Tag = strTemp
  344. End Sub
  345. Private Sub QdOk_Click()
  346.     '结帐处理
  347.     
  348.     If Not B_Status(Lst_Check) Then
  349.         Tsxx = "您没有选仓库,请先选择!"
  350.         Call Xtxxts(Tsxx, 0, 1)
  351.         Exit Sub
  352.     End If
  353.     
  354.     On Error GoTo Swcwcl
  355.     Me.Height = Me.Height + 500
  356.     Me.Refresh
  357.     PB.Visible = True
  358.     PB.Max = Lst_Check.ListCount
  359.     PB.Min = 0: PB.Value = 0
  360.     Cw_DataEnvi.DataConnect.BeginTrans
  361.          For i = 0 To Lst_Check.ListCount - 1
  362.             If Lst_Check.Selected(i) Then
  363.                 Cw_DataEnvi.DataConnect.Execute ("KF_SP_Check   '" & Trim(Xtczy) & "'," & ChkYear & "," & ChkMonth & ",'" & Trim(strWhCode(i)) & "'")    '实物帐结帐
  364.                 Cw_DataEnvi.DataConnect.Execute ("KF_SP_MateCheck   '" & Trim(Xtczy) & "'," & ChkYear & "," & ChkMonth & ",'" & Trim(strWhCode(i)) & "'")   '材料帐结帐
  365.             End If
  366.             PB.Value = i + 1
  367.             Lb.Caption = "已完成" & CStr(Int(PB.Value * 100 / PB.Max)) & "%"
  368.             Lb.Refresh
  369.          Next i
  370.      Cw_DataEnvi.DataConnect.CommitTrans
  371.     Tsxx = "月末结帐成功!"
  372.     Call Xtxxts(Tsxx, 0, 4)
  373.     Call SSTab1_Click(0)
  374.     Lb.Caption = ""
  375.     PB.Visible = False
  376.     Me.Height = Me.Height - 500
  377.     Exit Sub
  378. Swcwcl:
  379.     Cw_DataEnvi.DataConnect.RollbackTrans
  380.     Tsxx = "月末结帐失败,系统恢复到初始状态!"
  381.     Call Xtxxts(Tsxx, 0, 1)
  382.     Me.Height = Me.Height - 500
  383.     Exit Sub
  384. End Sub
  385. Private Sub QdOkU_Click()
  386.     '恢复结帐
  387.     
  388.     Dim adoRec As New ADODB.Recordset
  389.     Dim strSQL As String
  390.         If Not B_Status(Lst_Uncheck) Then
  391.         Tsxx = "您没有选仓库,请先选择!"
  392.         Call Xtxxts(Tsxx, 0, 1)
  393.         Exit Sub
  394.     End If
  395.     
  396.     On Error GoTo Swcwcl
  397.     '如果核算系统已经完成结账,则不允许恢复结账
  398.     strSQL = "SELECT KfJzbz,ChhsJzbz FROM Gy_Kjrlb WHERE KjYear=" & ChkYear & " AND Period=" & ChkMonth
  399.     Set adoRec = Cw_DataEnvi.DataConnect.Execute(strSQL)
  400.     If adoRec.Fields("chhsjzbz") Then
  401.         Tsxx = "存货核算系统已经完成本月结帐,不允许恢复月末结帐!"
  402.         Call Xtxxts(Tsxx, 0, 1)
  403.         Exit Sub
  404.     End If
  405.     
  406.     adoRec.Close
  407.     Set adoRec = Nothing
  408.     
  409.     Me.Height = Me.Height + 500
  410.     Me.Refresh
  411.     PB.Visible = True
  412.     PB.Max = Lst_Uncheck.ListCount
  413.     PB.Min = 0: PB.Value = 0
  414.     Cw_DataEnvi.DataConnect.BeginTrans
  415.          For i = 0 To Lst_Uncheck.ListCount - 1
  416.             If Lst_Uncheck.Selected(i) Then
  417.                 Cw_DataEnvi.DataConnect.Execute ("KF_SP_UnCheck   '" & Trim(Xtczy) & "'," & ChkYear & "," & ChkMonth & ",'" & Trim(strWhCode(i)) & "'")
  418.                 Cw_DataEnvi.DataConnect.Execute ("KF_SP_UnMateCheck   '" & Trim(Xtczy) & "'," & ChkYear & "," & ChkMonth & ",'" & Trim(strWhCode(i)) & "'")
  419.             Else
  420.                 Cw_DataEnvi.DataConnect.Execute ("Update Gy_Warehouse SET EndDealFlagWh=1 WHERE WhCode='" & Trim(strWhCode(i)) & "'")
  421.             End If
  422.             PB.Value = i + 1
  423.             Lb.Caption = "已完成" & CStr(Int(PB.Value * 100 / PB.Max)) & "%"
  424.             Lb.Refresh
  425.          Next i
  426.     Cw_DataEnvi.DataConnect.CommitTrans
  427.     Tsxx = "恢复月末结帐成功!"
  428.     Call Xtxxts(Tsxx, 0, 4)
  429.     Call SSTab1_Click(1)
  430.     Lb.Caption = ""
  431.     PB.Visible = False
  432.     Me.Height = Me.Height - 500
  433.     Exit Sub
  434. Swcwcl:
  435.     Cw_DataEnvi.DataConnect.RollbackTrans
  436.     Tsxx = "恢复月末结帐失败,系统恢复到初始状态!"
  437.     Call Xtxxts(Tsxx, 0, 1)
  438.     Me.Height = Me.Height - 500
  439.     Exit Sub
  440. End Sub
  441. Private Sub QdQuit_Click()
  442.     Unload Me
  443. End Sub
  444. Private Sub QdQuitU_Click()
  445.     Unload Me
  446. End Sub
  447. Private Sub SSTab1_Click(PreviousTab As Integer)
  448.     If SSTab1.Tab = 1 Then
  449.         QdAllU.Caption = "全选"
  450.         Call FillKjYear(False, ChkYear, ChkMonth)
  451.         lblUnYear.Caption = CStr(ChkYear) & "." & CStr(ChkMonth)
  452.         '填充结帐仓库
  453.         Call FillWare(Lst_Uncheck, Xtczybm, False)
  454.     Else
  455.         QdAll.Caption = "全选"
  456.         '填充会计期间
  457.         Call FillKjYear(True, ChkYear, ChkMonth)
  458.         lblCheckYear.Caption = CStr(ChkYear) & "." & CStr(ChkMonth)
  459.         '填充结帐仓库
  460.         Call FillWare(Lst_Check, Xtczybm, True)
  461.     End If
  462. End Sub
  463. Private Function B_Status(L As ListBox) As Boolean
  464.     For i = 0 To L.ListCount - 1
  465.           B_Status = B_Status Or L.Selected(i)
  466.     Next
  467. End Function