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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{BEEECC20-4D5F-4F8B-BFDC-5D9B6FBDE09D}#1.0#0"; "vsflex8.ocx"
  3. Begin VB.Form Cg_Account 
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "月末结帐"
  6.    ClientHeight    =   4725
  7.    ClientLeft      =   45
  8.    ClientTop       =   345
  9.    ClientWidth     =   5100
  10.    HelpContextID   =   1110001
  11.    Icon            =   "月末结账.frx":0000
  12.    LinkTopic       =   "Form1"
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   4725
  16.    ScaleWidth      =   5100
  17.    StartUpPosition =   1  '所有者中心
  18.    Begin VB.CommandButton Cmd_Help 
  19.       Caption         =   "帮助(&H)"
  20.       Height          =   300
  21.       Left            =   2565
  22.       TabIndex        =   4
  23.       Top             =   4305
  24.       Width           =   1155
  25.    End
  26.    Begin VB.CommandButton Cmd_Exit 
  27.       Caption         =   "退出(&X)"
  28.       Height          =   300
  29.       Left            =   3795
  30.       TabIndex        =   2
  31.       Top             =   4305
  32.       Width           =   1155
  33.    End
  34.    Begin VB.CommandButton Cmd_CancelAccount 
  35.       Caption         =   "恢复结帐(&N)"
  36.       Height          =   300
  37.       Left            =   1305
  38.       TabIndex        =   1
  39.       Top             =   4305
  40.       Width           =   1155
  41.    End
  42.    Begin VB.CommandButton Cmd_OKAccount 
  43.       Caption         =   "结帐(&Y)"
  44.       Height          =   300
  45.       Left            =   75
  46.       TabIndex        =   0
  47.       Top             =   4305
  48.       Width           =   1155
  49.    End
  50.    Begin VSFlex8Ctl.VSFlexGrid vsFlx_Grid 
  51.       Height          =   4095
  52.       Left            =   90
  53.       TabIndex        =   3
  54.       Top             =   90
  55.       Width           =   4905
  56.       _cx             =   5080
  57.       _cy             =   5080
  58.       Appearance      =   1
  59.       BorderStyle     =   1
  60.       Enabled         =   -1  'True
  61.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  62.          Name            =   "宋体"
  63.          Size            =   9
  64.          Charset         =   134
  65.          Weight          =   400
  66.          Underline       =   0   'False
  67.          Italic          =   0   'False
  68.          Strikethrough   =   0   'False
  69.       EndProperty
  70.       MousePointer    =   0
  71.       BackColor       =   -2147483643
  72.       ForeColor       =   -2147483640
  73.       BackColorFixed  =   -2147483633
  74.       ForeColorFixed  =   -2147483630
  75.       BackColorSel    =   -2147483635
  76.       ForeColorSel    =   -2147483634
  77.       BackColorBkg    =   -2147483636
  78.       BackColorAlternate=   -2147483643
  79.       GridColor       =   -2147483633
  80.       GridColorFixed  =   -2147483632
  81.       TreeColor       =   -2147483632
  82.       FloodColor      =   192
  83.       SheetBorder     =   -2147483642
  84.       FocusRect       =   1
  85.       HighLight       =   1
  86.       AllowSelection  =   -1  'True
  87.       AllowBigSelection=   -1  'True
  88.       AllowUserResizing=   0
  89.       SelectionMode   =   0
  90.       GridLines       =   1
  91.       GridLinesFixed  =   2
  92.       GridLineWidth   =   1
  93.       Rows            =   50
  94.       Cols            =   10
  95.       FixedRows       =   1
  96.       FixedCols       =   1
  97.       RowHeightMin    =   0
  98.       RowHeightMax    =   0
  99.       ColWidthMin     =   0
  100.       ColWidthMax     =   0
  101.       ExtendLastCol   =   0   'False
  102.       FormatString    =   ""
  103.       ScrollTrack     =   -1  'True
  104.       ScrollBars      =   3
  105.       ScrollTips      =   0   'False
  106.       MergeCells      =   0
  107.       MergeCompare    =   0
  108.       AutoResize      =   -1  'True
  109.       AutoSizeMode    =   0
  110.       AutoSearch      =   0
  111.       AutoSearchDelay =   2
  112.       MultiTotals     =   -1  'True
  113.       SubtotalPosition=   1
  114.       OutlineBar      =   0
  115.       OutlineCol      =   0
  116.       Ellipsis        =   0
  117.       ExplorerBar     =   0
  118.       PicturesOver    =   0   'False
  119.       FillStyle       =   0
  120.       RightToLeft     =   0   'False
  121.       PictureType     =   0
  122.       TabBehavior     =   0
  123.       OwnerDraw       =   0
  124.       Editable        =   0
  125.       ShowComboButton =   1
  126.       WordWrap        =   0   'False
  127.       TextStyle       =   0
  128.       TextStyleFixed  =   0
  129.       OleDragMode     =   0
  130.       OleDropMode     =   0
  131.       DataMode        =   0
  132.       VirtualData     =   -1  'True
  133.       DataMember      =   ""
  134.       ComboSearch     =   3
  135.       AutoSizeMouse   =   -1  'True
  136.       FrozenRows      =   0
  137.       FrozenCols      =   0
  138.       AllowUserFreezing=   0
  139.       BackColorFrozen =   0
  140.       ForeColorFrozen =   0
  141.       WallPaperAlignment=   9
  142.       AccessibleName  =   ""
  143.       AccessibleDescription=   ""
  144.       AccessibleValue =   ""
  145.       AccessibleRole  =   24
  146.    End
  147. End
  148. Attribute VB_Name = "Cg_Account"
  149. Attribute VB_GlobalNameSpace = False
  150. Attribute VB_Creatable = False
  151. Attribute VB_PredeclaredId = True
  152. Attribute VB_Exposed = False
  153. '***********************************************************************************************************
  154. '*    模 块 名 称 :采购月末处理
  155. '*    功 能 描 述 :此功能模块主要完成采购月末结帐处理
  156. '*    程序员姓名  :李海祥
  157. '*    最后修改人  :李海祥
  158. '*    最后修改时间:2001/12/06
  159. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  160. '*
  161. '***********************************************************************************************************
  162. '以下为固定使用变量
  163. Dim Tsxx As String                       '系统信息提示
  164. Dim Dyymctbl As New DY_Dyymsz            '打印页面窗体变量
  165. Dim GridCode As String                   '显示网格网格代码
  166. Dim GridInf() As Variant                 '整个网格设置信息
  167. Dim Qslz As Long                         '网格隐藏(非操作显示)列数
  168. Dim Sjhgd As Double                      '网格数据行高度
  169. Dim Sfxshjwg As Boolean                  '是否显示合计网格
  170. Dim GridBoolean() As Boolean             '网格列信息(布尔型)
  171. Dim GridStr()  As String                 '网格列信息(字符型)
  172. Dim GridInt() As Integer                 '网格列信息(整型)
  173. Dim Szzls As Integer                     '数组总列数(网格列数-1)
  174. Private Sub Cmd_CancelAccount_Click()
  175.     Dim Lng_Tmp As Long                         '临时使用计数器
  176.     Dim str_Period As String                    '查询会计期间字符串
  177.     Dim rs_Period As New ADODB.Recordset        '判断会计期间记录集
  178.     With Me.vsFlx_Grid
  179.         For Lng_Tmp = .Rows - 1 To .FixedRows Step -1
  180.             If Trim(.TextMatrix(Lng_Tmp, Sydz("004", GridStr(), Szzls))) = "√" Then
  181.                 .Row = Lng_Tmp
  182.                 Exit For
  183.             End If
  184.         Next Lng_Tmp
  185.         If Lng_Tmp < .FixedRows Then
  186.             Call Xtxxts("没有要恢复结帐的会计期间!", 0, 4)
  187.             Exit Sub
  188.         End If
  189.         
  190.         str_Period = "select * from Gy_kjrlb where BeginFlag='1'"
  191.         Set rs_Period = Cw_DataEnvi.DataConnect.Execute(str_Period)
  192.         If Not rs_Period.EOF Then
  193.             If rs_Period.Fields("KjYear") = S2N(Left(Trim(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls))), 4)) And rs_Period.Fields("Period") > S2N(Right(Trim(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls))), 2)) Then
  194.                 Call Xtxxts("系统期初月份为" & rs_Period.Fields("Period") & "不能恢复结帐!", 0, 4)
  195.                 Exit Sub
  196.             End If
  197.         End If
  198.         Set rs_Period = Nothing
  199.         str_Period = "select top 1 *  from Gy_kjrlb where cgjzbz=1 order by KjYear desc,Period desc "
  200.         Set rs_Period = Cw_DataEnvi.DataConnect.Execute(str_Period)
  201.         If Not rs_Period.EOF Then
  202.             If rs_Period.Fields("Kjyear") > S2N(Left(Trim(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls))), 4)) Or (rs_Period.Fields("Kjyear") = S2N(Left(Trim(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls))), 4)) And rs_Period.Fields("Period") > S2N(Right(Trim(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls))), 2))) Then
  203.                 Call Xtxxts("要恢复的会计期间的下一会计期间已经结帐,不能恢复结帐!", 0, 4)
  204.                 Exit Sub
  205.             End If
  206.         End If
  207.         Set rs_Period = Nothing
  208.         str_Period = "select top 1 *  from Gy_kjrlb where cgjzbz=1 order by KjYear desc,Period desc "
  209.         
  210.         Set rs_Period = Cw_DataEnvi.DataConnect.Execute(str_Period)
  211.         Cw_DataEnvi.DataConnect.BeginTrans
  212.     On erron GoTo Err_Ctrl
  213.         Cw_DataEnvi.DataConnect.Execute ("CG_SP_CancelAccount " & rs_Period.Fields("KjYear") & "," & rs_Period.Fields("Period"))
  214.         Cw_DataEnvi.DataConnect.CommitTrans
  215.         '恢复当月结帐标识为未结帐
  216.         .TextMatrix(Lng_Tmp, Sydz("004", GridStr(), Szzls)) = ""
  217.         .Row = Lng_Tmp - 1
  218.         Call Xtxxts("恢复结帐完成!", 0, 4)
  219.     End With
  220.     Exit Sub
  221. Err_Ctrl:
  222.     Cw_DataEnvi.DataConnect.RollbackTrans
  223.     Call Xtxxts("恢复结帐失败,返回结帐状态!", 0, 4)
  224. End Sub
  225. Private Sub Cmd_Exit_Click()
  226.     Unload Me
  227. End Sub
  228. Private Sub Cmd_Help_Click()
  229.     Call F1bz
  230. End Sub
  231. Private Sub Cmd_OKAccount_Click()
  232.     Dim int_MsgResult As Integer            '提示返回函数
  233.     Dim Lng_Jsq As Long                     '临时使用计数器
  234.     Dim str_Invoice As String               '查询发票和收料通知单字符串
  235.     Dim rs_Invoice As New ADODB.Recordset   '判断是否有未审核发票和未审核收料通知单记录集
  236.     Dim str_Period As String                '查询会计期间字符串
  237.     Dim rs_Period As New ADODB.Recordset    '判断会计期间记录集
  238.     '判断选择合法性
  239.     With Me.vsFlx_Grid
  240.         For Lng_Jsq = .FixedRows To .Rows - 1
  241.             If Trim(.TextMatrix(Lng_Jsq, Sydz("004", GridStr(), Szzls))) <> "√" Then Exit For
  242.         Next Lng_Jsq
  243.         If Lng_Jsq >= .Rows Then Exit Sub
  244.         int_MsgResult = Xtxxts("你确定要结帐吗?", 1, 4)
  245.         
  246.         If int_MsgResult = 6 Then
  247.             '判断是否允许结帐
  248.             str_Invoice = "select * from CG_InvoiceMain where KjYear=" & S2N(Left(Trim(.TextMatrix(Lng_Jsq, Sydz("001", GridStr(), Szzls))), 4)) & " and Period=" & S2N(Right(Trim(.TextMatrix(Lng_Jsq, Sydz("001", GridStr(), Szzls))), 2)) & " and  Checker='' and PeriodStarFlag=0"
  249.             Set rs_Invoice = Cw_DataEnvi.DataConnect.Execute(str_Invoice)
  250.             If Not rs_Invoice.EOF() Then
  251.                 Call Xtxxts("结帐会计期间有未审核的发票,不能结帐!", 0, 4)
  252.                 Exit Sub
  253.             End If
  254.             Set rs_Invoice = Nothing
  255.             str_Invoice = "select * from CG_PurReciptMain where KjYear=" & S2N(Left(Trim(.TextMatrix(Lng_Jsq, Sydz("001", GridStr(), Szzls))), 4)) & " and Period=" & S2N(Right(Trim(.TextMatrix(Lng_Jsq, Sydz("001", GridStr(), Szzls))), 2)) & " and  Checker=''"
  256.             Set rs_Invoice = Cw_DataEnvi.DataConnect.Execute(str_Invoice)
  257.             If Not rs_Invoice.EOF() Then
  258.                 Call Xtxxts("结帐会计期间有未审核的收料或退货通知单,不能结帐!", 0, 4)
  259.                 Exit Sub
  260.             End If
  261.             str_Period = "select top 1 *  from Gy_kjrlb where cgjzbz=0 order by KjYear ,Period  "
  262.             Set rs_Period = Cw_DataEnvi.DataConnect.Execute(str_Period)
  263.             If Not rs_Period.EOF Then
  264.                 If rs_Period.Fields("Kjyear") < S2N(Left(Trim(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls))), 4)) Or (rs_Period.Fields("Kjyear") = S2N(Left(Trim(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls))), 4)) And rs_Period.Fields("Period") < S2N(Right(Trim(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls))), 2))) Then
  265.                     Call Xtxxts("要结帐的会计期间的上一会计期间没有结帐,不能进行结帐!", 0, 4)
  266.                     Exit Sub
  267.                 End If
  268.             End If
  269.             Set rs_Period = Nothing
  270.             
  271.             Cw_DataEnvi.DataConnect.BeginTrans
  272.             On erron GoTo Err_Ctrl
  273.             Cw_DataEnvi.DataConnect.Execute ("CG_SP_Account " & S2N(Left(Trim(.TextMatrix(Lng_Jsq, Sydz("001", GridStr(), Szzls))), 4)) & "," & S2N(Right(Trim(.TextMatrix(Lng_Jsq, Sydz("001", GridStr(), Szzls))), 2)) & ",'" & Xtczy & "'")
  274.             
  275.             Cw_DataEnvi.DataConnect.CommitTrans
  276.             '填充当月结帐标识
  277.             .TextMatrix(Lng_Jsq, Sydz("004", GridStr(), Szzls)) = "√"
  278.             If .Row < .Rows - 1 Then
  279.                 If Lng_Jsq < .Row - 1 Then
  280.                     .Row = Lng_Jsq + 1
  281.                 Else
  282.                     .Row = Lng_Jsq
  283.                 End If
  284.             End If
  285.             Call Xtxxts("月末结帐完成!", 0, 4)
  286.         End If
  287.     End With
  288.     Exit Sub
  289. Err_Ctrl:
  290.     Cw_DataEnvi.DataConnect.RollbackTrans
  291.     Call Xtxxts("月末结帐失败,返回未结帐状态!", 0, 4)
  292. End Sub
  293. Private Sub Form_Load()
  294.     Dim rs_Record As New ADODB.Recordset        '填充网格记录集
  295.     Dim Str_Temp As String                      '临时使用字符串
  296.     
  297.     '调入网格
  298.     GridCode = "Cg_Account"
  299.     Call BzWgcsh(Me.vsFlx_Grid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  300.     Qslz = GridInf(1)
  301.     Sjhgd = GridInf(2)
  302.     Sfxshjwg = GridInf(7)
  303.     Szzls = Me.vsFlx_Grid.Cols - 1
  304.     
  305.     '设置列居中显示
  306.     vsFlx_Grid.ColAlignment(Sydz("001", GridStr(), Szzls)) = flexAlignCenterCenter
  307.     vsFlx_Grid.ColAlignment(Sydz("004", GridStr(), Szzls)) = flexAlignCenterCenter
  308.     '查询填充网格
  309.     Str_Temp = "select * from Gy_kjrlb where kjyear='" + Trim(Str(Xtyear)) + "' order by KjYear,Period,qsrq,zzrq,cgjzbz"
  310.     Set rs_Record = Cw_DataEnvi.DataConnect.Execute(Str_Temp)
  311.     With Me.vsFlx_Grid
  312.         .Rows = .FixedRows
  313.         Do While Not rs_Record.EOF()
  314.             .AddItem ""
  315.             .RowHeight(.Rows - 1) = Sjhgd
  316.             .TextMatrix(.Rows - 1, Sydz("001", GridStr(), Szzls)) = Trim(Str(rs_Record.Fields("kjyear"))) + "." + Mid(Trim(Str(100 + rs_Record.Fields("period"))), 2, 2)        '会计期间
  317.             .TextMatrix(.Rows - 1, Sydz("002", GridStr(), Szzls)) = Format(Trim(rs_Record.Fields("qsrq") & ""), "yyyy-mm-dd")                                                   '起始日期
  318.             .TextMatrix(.Rows - 1, Sydz("003", GridStr(), Szzls)) = Format(Trim(rs_Record.Fields("zzrq") & ""), "yyyy-mm-dd")                                                   '结束日期
  319.             If rs_Record.Fields("cgjzbz") Then
  320.                 .TextMatrix(.Rows - 1, Sydz("004", GridStr(), Szzls)) = "√"                                                                                                    '是否结帐
  321.             End If
  322.             rs_Record.MoveNext
  323.         Loop
  324.         For i = .FixedRows To .Rows - 1
  325.             If Trim(.TextMatrix(i, Sydz("004", GridStr(), Szzls))) = "√" Then
  326.                 .Row = i
  327.                 Exit For
  328.             Else
  329.                 .Row = 1
  330.             End If
  331.         Next i
  332.     End With
  333. End Sub
  334.