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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
  4. Begin VB.Form Xt_Control 
  5.    Caption         =   "百利/ERP5.0-工资管理"
  6.    ClientHeight    =   5970
  7.    ClientLeft      =   675
  8.    ClientTop       =   1665
  9.    ClientWidth     =   9240
  10.    Icon            =   "系统_主操作桌面.frx":0000
  11.    LinkTopic       =   "Form1"
  12.    MDIChild        =   -1  'True
  13.    ScaleHeight     =   5970
  14.    ScaleWidth      =   9240
  15.    WindowState     =   2  'Maximized
  16.    Begin VB.PictureBox picSplitter 
  17.       BackColor       =   &H00808080&
  18.       BorderStyle     =   0  'None
  19.       FillColor       =   &H00808080&
  20.       BeginProperty Font 
  21.          Name            =   "MS Sans Serif"
  22.          Size            =   8.25
  23.          Charset         =   0
  24.          Weight          =   400
  25.          Underline       =   0   'False
  26.          Italic          =   0   'False
  27.          Strikethrough   =   0   'False
  28.       EndProperty
  29.       Height          =   4575
  30.       Left            =   5010
  31.       ScaleHeight     =   1992.151
  32.       ScaleMode       =   0  'User
  33.       ScaleWidth      =   780
  34.       TabIndex        =   0
  35.       Top             =   750
  36.       Visible         =   0   'False
  37.       Width           =   72
  38.    End
  39.    Begin MSComctlLib.ImageList ImageList1 
  40.       Left            =   5220
  41.       Top             =   2325
  42.       _ExtentX        =   1005
  43.       _ExtentY        =   1005
  44.       BackColor       =   -2147483643
  45.       ImageWidth      =   16
  46.       ImageHeight     =   16
  47.       MaskColor       =   12632256
  48.       _Version        =   393216
  49.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  50.          NumListImages   =   5
  51.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  52.             Picture         =   "系统_主操作桌面.frx":1042
  53.             Key             =   "stb"
  54.          EndProperty
  55.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  56.             Picture         =   "系统_主操作桌面.frx":2094
  57.             Key             =   "xttb"
  58.          EndProperty
  59.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  60.             Picture         =   "系统_主操作桌面.frx":30E6
  61.             Key             =   "szk"
  62.          EndProperty
  63.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  64.             Picture         =   "系统_主操作桌面.frx":3480
  65.             Key             =   "gnqx"
  66.          EndProperty
  67.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  68.             Picture         =   "系统_主操作桌面.frx":381A
  69.             Key             =   "kpgl"
  70.          EndProperty
  71.       EndProperty
  72.    End
  73.    Begin MSComctlLib.ListView lvListView 
  74.       Height          =   3375
  75.       Left            =   2160
  76.       TabIndex        =   5
  77.       Top             =   705
  78.       Width           =   2295
  79.       _ExtentX        =   4048
  80.       _ExtentY        =   5953
  81.       Arrange         =   2
  82.       LabelEdit       =   1
  83.       LabelWrap       =   -1  'True
  84.       HideSelection   =   -1  'True
  85.       OLEDragMode     =   1
  86.       OLEDropMode     =   1
  87.       PictureAlignment=   1
  88.       _Version        =   393217
  89.       Icons           =   "ImageList2"
  90.       SmallIcons      =   "ImageList1"
  91.       ColHdrIcons     =   "ImageList1"
  92.       ForeColor       =   -2147483640
  93.       BackColor       =   -2147483643
  94.       BorderStyle     =   1
  95.       Appearance      =   1
  96.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  97.          Name            =   "宋体"
  98.          Size            =   9
  99.          Charset         =   134
  100.          Weight          =   400
  101.          Underline       =   0   'False
  102.          Italic          =   0   'False
  103.          Strikethrough   =   0   'False
  104.       EndProperty
  105.       OLEDragMode     =   1
  106.       OLEDropMode     =   1
  107.       NumItems        =   0
  108.    End
  109.    Begin VB.PictureBox picTitles 
  110.       Align           =   1  'Align Top
  111.       Appearance      =   0  'Flat
  112.       BorderStyle     =   0  'None
  113.       BeginProperty Font 
  114.          Name            =   "MS Sans Serif"
  115.          Size            =   8.25
  116.          Charset         =   0
  117.          Weight          =   400
  118.          Underline       =   0   'False
  119.          Italic          =   0   'False
  120.          Strikethrough   =   0   'False
  121.       EndProperty
  122.       ForeColor       =   &H80000008&
  123.       Height          =   300
  124.       Left            =   0
  125.       ScaleHeight     =   300
  126.       ScaleWidth      =   9240
  127.       TabIndex        =   1
  128.       TabStop         =   0   'False
  129.       Top             =   420
  130.       Width           =   9240
  131.       Begin VB.Label lblTitle 
  132.          BorderStyle     =   1  'Fixed Single
  133.          Caption         =   "百利/ERP5.0-工资管理"
  134.          Height          =   270
  135.          Index           =   0
  136.          Left            =   0
  137.          TabIndex        =   3
  138.          Tag             =   " 树形视图:"
  139.          Top             =   12
  140.          Width           =   2016
  141.       End
  142.       Begin VB.Label lblTitle 
  143.          BorderStyle     =   1  'Fixed Single
  144.          Caption         =   " 列表视图:"
  145.          Height          =   270
  146.          Index           =   1
  147.          Left            =   2078
  148.          TabIndex        =   2
  149.          Tag             =   " 列表视图:"
  150.          Top             =   12
  151.          Width           =   3216
  152.       End
  153.    End
  154.    Begin MSComDlg.CommonDialog dlgCommonDialog 
  155.       Left            =   3360
  156.       Top             =   2160
  157.       _ExtentX        =   847
  158.       _ExtentY        =   847
  159.       _Version        =   393216
  160.    End
  161.    Begin MSComctlLib.TreeView tvTreeView 
  162.       Height          =   4800
  163.       Left            =   0
  164.       TabIndex        =   4
  165.       Top             =   690
  166.       Width           =   2010
  167.       _ExtentX        =   3545
  168.       _ExtentY        =   8467
  169.       _Version        =   393217
  170.       Indentation     =   564
  171.       LabelEdit       =   1
  172.       Style           =   7
  173.       ImageList       =   "ImageList1"
  174.       Appearance      =   1
  175.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  176.          Name            =   "宋体"
  177.          Size            =   9
  178.          Charset         =   134
  179.          Weight          =   400
  180.          Underline       =   0   'False
  181.          Italic          =   0   'False
  182.          Strikethrough   =   0   'False
  183.       EndProperty
  184.    End
  185.    Begin MSComctlLib.Toolbar tbToolBar 
  186.       Align           =   1  'Align Top
  187.       Height          =   420
  188.       Left            =   0
  189.       TabIndex        =   6
  190.       Top             =   0
  191.       Width           =   9240
  192.       _ExtentX        =   16298
  193.       _ExtentY        =   741
  194.       ButtonWidth     =   609
  195.       ButtonHeight    =   582
  196.       AllowCustomize  =   0   'False
  197.       Appearance      =   1
  198.       ImageList       =   "imlToolbarIcons"
  199.       _Version        =   393216
  200.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  201.          NumButtons      =   10
  202.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  203.             Style           =   3
  204.          EndProperty
  205.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  206.             Key             =   "返回"
  207.             Object.ToolTipText     =   "返回"
  208.             ImageKey        =   "xq"
  209.          EndProperty
  210.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  211.             Key             =   "向前"
  212.             Object.ToolTipText     =   "向前"
  213.             ImageKey        =   "xh"
  214.          EndProperty
  215.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  216.             Style           =   3
  217.          EndProperty
  218.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  219.             Style           =   3
  220.          EndProperty
  221.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  222.             Style           =   3
  223.          EndProperty
  224.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  225.             Key             =   "大图标"
  226.             Object.ToolTipText     =   "大图标"
  227.             ImageKey        =   "dtb"
  228.             Style           =   2
  229.             Value           =   1
  230.          EndProperty
  231.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  232.             Key             =   "小图标"
  233.             Object.ToolTipText     =   "小图标"
  234.             ImageKey        =   "xtb"
  235.             Style           =   2
  236.          EndProperty
  237.          BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  238.             Key             =   "列表"
  239.             Object.ToolTipText     =   "列表"
  240.             ImageKey        =   "lb"
  241.             Style           =   2
  242.          EndProperty
  243.          BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  244.             Key             =   "详细资料"
  245.             Object.ToolTipText     =   "详细资料"
  246.             ImageKey        =   "xxzl"
  247.             Style           =   2
  248.          EndProperty
  249.       EndProperty
  250.    End
  251.    Begin MSComctlLib.ImageList imlToolbarIcons 
  252.       Left            =   5085
  253.       Top             =   1095
  254.       _ExtentX        =   1005
  255.       _ExtentY        =   1005
  256.       BackColor       =   -2147483643
  257.       ImageWidth      =   16
  258.       ImageHeight     =   16
  259.       MaskColor       =   12632256
  260.       _Version        =   393216
  261.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  262.          NumListImages   =   6
  263.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  264.             Picture         =   "系统_主操作桌面.frx":486C
  265.             Key             =   "xq"
  266.          EndProperty
  267.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  268.             Picture         =   "系统_主操作桌面.frx":4C06
  269.             Key             =   "xh"
  270.          EndProperty
  271.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  272.             Picture         =   "系统_主操作桌面.frx":4FA0
  273.             Key             =   "dtb"
  274.          EndProperty
  275.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  276.             Picture         =   "系统_主操作桌面.frx":533A
  277.             Key             =   "xtb"
  278.          EndProperty
  279.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  280.             Picture         =   "系统_主操作桌面.frx":56D4
  281.             Key             =   "lb"
  282.          EndProperty
  283.          BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  284.             Picture         =   "系统_主操作桌面.frx":5A6E
  285.             Key             =   "xxzl"
  286.          EndProperty
  287.       EndProperty
  288.    End
  289.    Begin MSComctlLib.ImageList ImageList2 
  290.       Left            =   6210
  291.       Top             =   2370
  292.       _ExtentX        =   1005
  293.       _ExtentY        =   1005
  294.       BackColor       =   -2147483643
  295.       ImageWidth      =   32
  296.       ImageHeight     =   32
  297.       MaskColor       =   12632256
  298.       _Version        =   393216
  299.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  300.          NumListImages   =   4
  301.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  302.             Picture         =   "系统_主操作桌面.frx":5E08
  303.             Key             =   "y1"
  304.          EndProperty
  305.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  306.             Picture         =   "系统_主操作桌面.frx":625C
  307.             Key             =   ""
  308.          EndProperty
  309.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  310.             Picture         =   "系统_主操作桌面.frx":657C
  311.             Key             =   "i"
  312.          EndProperty
  313.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  314.             Picture         =   "系统_主操作桌面.frx":75CE
  315.             Key             =   "y"
  316.          EndProperty
  317.       EndProperty
  318.    End
  319.    Begin VB.Image imgSplitter 
  320.       Height          =   4785
  321.       Left            =   4695
  322.       MousePointer    =   9  'Size W E
  323.       Top             =   750
  324.       Width           =   150
  325.    End
  326. End
  327. Attribute VB_Name = "Xt_Control"
  328. Attribute VB_GlobalNameSpace = False
  329. Attribute VB_Creatable = False
  330. Attribute VB_PredeclaredId = True
  331. Attribute VB_Exposed = False
  332. '***********************************************
  333. '*    模 块 名 称 :系统主操作桌面
  334. '*    功 能 描 述 :
  335. '*    程序员姓名  :张建忠
  336. '*    最后修改人  :张建忠
  337. '*    最后修改时间:2001/06/21
  338. '*    备        注:封版
  339. '***********************************************
  340. Const NAME_COLUMN = 0
  341. Const TYPE_COLUMN = 1
  342. Const SIZE_COLUMN = 2
  343. Const DATE_COLUMN = 3
  344. Private Declare Function OSWinHelp% Lib "user32" Alias "WinHelpA" (ByVal hwnd&, ByVal HelpFile$, ByVal wCommand%, dwData As Any)
  345.   
  346. Dim mbMoving As Boolean
  347. Const sglSplitLimit = 1000
  348. Dim nodx As Node
  349. Dim mitem As ListItem
  350. Dim Ztxxrec As New ADODB.Recordset           '帐套信息动态集
  351. Dim Xtgnbrec As New ADODB.Recordset          '系统功能表
  352. Dim Xtqxxzrec As New ADODB.Recordset         '系统权限限制动态集
  353. Dim Tsxx As String                           '系统提示信息
  354. Dim gnsyte As String                         '系统功能项索引
  355. Dim Xtrlrec As New ADODB.Recordset           '系统日历动态集
  356. Dim Ctsfscdr As Boolean                      '窗体是否首次读入
  357. Dim sjgnbmStr As String                      '上级编码
  358. Private Sub lvListView_DblClick()            '点击ListView执行相应功能
  359.     If lvListView.ListItems.Count > 0 Then
  360.         Set Xtgnbrec = Cw_DataEnvi.DataConnect.Execute("SELECT * FROM xt_xtgnb where gnbm='" + Mid(Trim(lvListView.SelectedItem.Key), 2, Len(Trim(lvListView.SelectedItem.Key)) - 1) + "'")
  361.         If Not Xtgnbrec.EOF Then
  362.             If Xtgnbrec.Fields("mjbz") = True Then
  363.                 gnsyte = Trim(Xtgnbrec.Fields("gnsy"))
  364.                 Call Zxxymk(gnsyte)
  365.             Else
  366.                 '---------------
  367.                 Dim sSql As String
  368.                 sjgnbmStr = ""
  369.                 lvListView.ColumnHeaders.Clear
  370.                 lvListView.ListItems.Clear
  371.                 sSql = "SELECT * FROM xt_xtgnb where sjgnbm='" + Xtgnbrec.Fields("gnbm") + "' and MenuList=1 order by gnbm"
  372.                 Set Xtgnbrec = Cw_DataEnvi.DataConnect.Execute(sSql)
  373.                 lvListView.ColumnHeaders.Add 1, "rcsw", tvTreeView.SelectedItem.Text, 3000, , "stb"
  374.                 Do While Not Xtgnbrec.EOF
  375.                     Set mitem = lvListView.ListItems.Add()
  376.                     mitem.Text = Trim(Xtgnbrec!gnmc)
  377.                     If Xtgnbrec.Fields("mjbz") Then
  378.                         mitem.SmallIcon = "gnqx"
  379.                         mitem.Icon = "y"
  380.                     Else
  381.                         mitem.Icon = "i"
  382.                         mitem.SmallIcon = "stb"
  383.                     End If
  384.                     mitem.Key = "T" & Trim(Xtgnbrec!gnbm)
  385.                     Xtgnbrec.MoveNext
  386.                 Loop
  387.                 '---------------
  388.             End If
  389.         End If
  390.     End If
  391. End Sub
  392. Private Sub lvListView_KeyPress(KeyAscii As Integer)
  393.     If KeyAscii = vbKeyReturn Then
  394.         Call lvListView_DblClick
  395.     End If
  396. End Sub
  397. Private Sub tvTreeView_NodeClick(ByVal Node As MSComctlLib.Node)
  398.     Dim sSql As String
  399.     If Node.Tag <> "" Then
  400.         If Node.Tag = False Then
  401.             sSql = "SELECT * FROM xt_xtgnb where sjgnbm='" + Mid(Trim(tvTreeView.SelectedItem.Key), 2, Len(Trim(tvTreeView.SelectedItem.Key)) - 1) + "' and MenuList=1 order by gnbm"
  402.             If sjgnbmStr = Mid(Trim(tvTreeView.SelectedItem.Key), 2, Len(Trim(tvTreeView.SelectedItem.Key)) - 1) Then
  403.                 Exit Sub
  404.             Else
  405.                 sjgnbmStr = Mid(Trim(tvTreeView.SelectedItem.Key), 2, Len(Trim(tvTreeView.SelectedItem.Key)) - 1)
  406.             End If
  407.         Else
  408.             sSql = "SELECT * FROM xt_xtgnb a," _
  409.                     & "(SELECT sjgnbm FROM xt_xtgnb where gnbm='" + Mid(Trim(tvTreeView.SelectedItem.Key), 2, Len(Trim(tvTreeView.SelectedItem.Key)) - 1) + "')b" & " where a.sjgnbm=b.sjgnbm and MenuList=1 order by gnbm"
  410.         End If
  411.         
  412.         Set Xtgnbrec = Cw_DataEnvi.DataConnect.Execute(sSql)
  413.         If Node.Tag = True Then
  414.             If sjgnbmStr = Trim(Xtgnbrec!sjgnbm) Then
  415.                 Exit Sub
  416.             Else
  417.                 sjgnbmStr = Trim(Xtgnbrec!sjgnbm)
  418.             End If
  419.         End If
  420.         lvListView.ColumnHeaders.Clear
  421.         lvListView.ListItems.Clear
  422.         lvListView.ColumnHeaders.Add 1, "rcsw", "明细", 3000, , "stb"
  423.         Do While Not Xtgnbrec.EOF
  424.             Set mitem = lvListView.ListItems.Add()
  425.             mitem.Text = Trim(Xtgnbrec!gnmc)
  426.             If Xtgnbrec.Fields("mjbz") Then
  427.                 mitem.SmallIcon = "gnqx"
  428.                 mitem.Icon = "y"
  429.             Else
  430.                 mitem.Icon = "i"
  431.                 mitem.SmallIcon = "stb"
  432.             End If
  433.             mitem.Key = "T" & Trim(Xtgnbrec!gnbm)
  434.             Xtgnbrec.MoveNext
  435.         Loop
  436.     End If
  437. End Sub
  438. Public Sub Cshgns()                                                    '初始化系统功能树
  439.   
  440.     Set Xtgnbrec = Cw_DataEnvi.DataConnect.Execute("SELECT * FROM xt_xtgnb where gnbm like '22%' and MenuList=1 order by gnbm")
  441.     tvTreeView.Nodes.Add , 4, "T", "百利/ERP5.0", "xttb"
  442.     With Xtgnbrec
  443.         Do While Not .EOF
  444.             If .Fields("mjbz") Then
  445.                 Set nodx = tvTreeView.Nodes.Add("T" + Trim(.Fields("sjgnbm")), 4, "T" + Trim(.Fields("gnbm")), Trim(.Fields("gnmc")), "gnqx")
  446.             Else
  447.                 If Trim(.Fields("sjgnbm")) = "" Then
  448.                     Set nodx = tvTreeView.Nodes.Add("T" + Trim(.Fields("sjgnbm")), 4, "T" + Trim(.Fields("gnbm")), Trim(.Fields("gnmc")), "kpgl")
  449.                 Else
  450.                     Set nodx = tvTreeView.Nodes.Add("T" + Trim(.Fields("sjgnbm")), 4, "T" + Trim(.Fields("gnbm")), Trim(.Fields("gnmc")), "stb")
  451.                 End If
  452.             End If
  453.             nodx.Tag = Xtgnbrec!mjbz
  454.             If Len(Trim(.Fields("sjgnbm"))) <= 2 Then
  455.                 nodx.EnsureVisible
  456.             End If
  457.             .MoveNext
  458.         Loop
  459.     End With
  460. End Sub
  461. '系统功能树操作
  462. Private Sub tvTreeView_BeforeLabelEdit(Cancel As Integer)                     '屏蔽编辑
  463.   Cancel = 1
  464. End Sub
  465. Private Sub tvTreeView_Collapse(ByVal Node As MSComctlLib.Node)               '功能树收缩
  466.     
  467.     If Node.Index <> 1 And Node.Key <> "T22" Then
  468.         Node.Image = "stb"
  469.     End If
  470.  
  471. End Sub
  472. Private Sub tvTreeView_Expand(ByVal Node As MSComctlLib.Node)                 '功能树展开
  473.     
  474.     If Node.Index <> 1 And Node.Key <> "T22" Then
  475.         Node.Image = "szk"
  476.     End If
  477. End Sub
  478. Private Sub tvTreeView_KeyPress(KeyAscii As Integer)                          '用户按回车键执行相应功能
  479.     
  480.     If KeyAscii = vbKeyReturn Then
  481.         Call tvTreeView_DblClick
  482.     End If
  483. End Sub
  484. Private Sub tvTreeView_DblClick()                                             '选择功能
  485.     
  486.     If tvTreeView.SelectedItem.Children = 0 Then
  487.         Set Xtgnbrec = Cw_DataEnvi.DataConnect.Execute("SELECT * FROM xt_xtgnb where gnbm='" + Mid(Trim(tvTreeView.SelectedItem.Key), 2, Len(Trim(tvTreeView.SelectedItem.Key)) - 1) + "'")
  488.         If Not Xtgnbrec.EOF Then
  489.             gnsyte = Trim(Xtgnbrec.Fields("gnsy"))
  490.             Call Zxxymk(gnsyte)
  491.         End If
  492.     End If
  493. End Sub
  494. Public Sub Zxxymk(gnsy As String)                                            '根据用户选择执行相应程序
  495.   
  496.     Dim RecTemp As New ADODB.Recordset     '临时使用动态集
  497.     Dim Sqlstr As String                   '临时查询字符串
  498.     Dim An As Integer
  499.     
  500.     Dim frm As Form
  501.     Dim frmQuery As Form
  502.     If Len(Trim(gnsy)) = 0 Then
  503.         Exit Sub
  504.     End If
  505.     
  506.    
  507.     On Error GoTo Cwcl:
  508.     Select Case UCase(gnsy)
  509.         Case UCase("PM_ReportItem") '报表项目选择
  510.             If Not Security_Log("PM_ReportItem", Xtczybm, 1) Then
  511.                 Exit Sub
  512.             End If
  513.             Set frm = New Rep_SelectItem_Frm
  514.             frm.Show 1
  515.             Set frm = Nothing
  516.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  517.         Case UCase("Pm_Query") '通用查询
  518.             
  519.             Set frm = New Query_Frm
  520.             frm.Show 1
  521.             Set frm = Nothing
  522.         Case UCase("PM_Formula") '公式定义
  523.             If Not Security_Log("pm_Formula", Xtczybm, 1) Then
  524.                 Exit Sub
  525.             End If
  526.             Set frm = New Formula_Create_Frm
  527.             frm.Show 1
  528.             Set frm = Nothing
  529.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  530.         Case UCase("PM_ComputeSalary") '计算工资
  531.             If Not Security_Log("pm_ComputeSalary", Xtczybm, 1) Then
  532.                 Exit Sub
  533.             End If
  534.             Set frm = New Salary_Frm_Compute
  535.             frm.Show 1
  536.             Set frm = Nothing
  537.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  538.         Case UCase("PM_Tax") '个人所得税
  539.             If Not Security_Log("pm_Tax", Xtczybm, 1) Then
  540.                 Exit Sub
  541.             End If
  542.             Set frm = New Rep_Tax_Frm
  543.             Set frmQuery = New Query_Tax_Frm
  544.             frm.Show
  545.             frmQuery.sTableName = "PM_TaxData"
  546.             Set frmQuery.frmParent = frm
  547.             frmQuery.Show 1
  548.             
  549.         Case UCase("Pm_SalarySignal") '工资签名表
  550.             If Not Security_Log("pm_SalarySignal", Xtczybm, 1) Then
  551.                 Exit Sub
  552.             End If
  553.             Set frm = New Rep_DIYSalary_Frm
  554.             frm.sRCode = "001"
  555.             frm.sPTableName = "PM_PayRoll"
  556.             frm.HelpContextID = 2214002
  557.             frm.Show
  558.             Set frmQuery = New Query_RepSalary_Frm
  559.             frmQuery.sRCode = "001"
  560.             frmQuery.sPTableName = "PM_PayRoll"
  561.             Set frmQuery.frmParent = frm
  562.             frmQuery.Show 1
  563.             
  564.         Case UCase("Pm_RepSalaryPay") '工资发放表
  565.             If Not Security_Log("pm_RepSalaryPay", Xtczybm, 1) Then
  566.                 Exit Sub
  567.             End If
  568.             Set frm = New Rep_DIYSalary_Frm
  569.             frm.sRCode = "002"
  570.             frm.sPTableName = "PM_PayRoll"
  571.             frm.HelpContextID = 2214003
  572.             frm.Show
  573.             Set frmQuery = New Query_RepSalary_Frm
  574.             frmQuery.sRCode = "002"
  575.             frmQuery.sPTableName = "PM_PayRoll"
  576.             Set frmQuery.frmParent = frm
  577.             frmQuery.Show 1
  578.             
  579.         Case UCase("Pm_RepSalarySum") '工资汇总表
  580.             If Not Security_Log("pm_RepSalarySum", Xtczybm, 1) Then
  581.                 Exit Sub
  582.             End If
  583.             Set frm = New Rep_DIYSalary_Frm
  584.             frm.sRCode = "003"
  585.             frm.sPTableName = "PM_PayRoll"
  586.             frm.HelpContextID = 2214004
  587.             frm.Show
  588.             Set frmQuery = New Query_RepSalary_Frm
  589.             frmQuery.sRCode = "003"
  590.             frmQuery.sPTableName = "PM_PayRoll"
  591.             Set frmQuery.frmParent = frm
  592.             frmQuery.Show 1
  593.             
  594.         Case UCase("Pm_RepAttend") '考勤分析表
  595.             If Not Security_Log("pm_RepAttend", Xtczybm, 1) Then
  596.                 Exit Sub
  597.             End If
  598.             Set frm = New Rep_DIYAttend_Frm
  599.             frm.sRCode = "004"
  600.             frm.sPTableName = "PM_AttendRecord"
  601.             frm.Show
  602.             Set frmQuery = New Query_RepAttend_Frm
  603.             frmQuery.sRCode = "004"
  604.             frmQuery.sPTableName = "PM_AttendRecord"
  605.             Set frmQuery.frmParent = frm
  606.             frmQuery.Show 1
  607.                         
  608.         Case UCase("pm_register")                       '用户重新注册
  609.             XT_login.Show 1
  610.         Case UCase("pm_Ini")                            '数据初始化
  611.             If Xtxxts("数据初始化将会删除所有的数据," & Chr(13) & Chr(10) & "进行数据初始化吗?", 1, 2) = 6 Then
  612.                Call initializtion
  613.             End If
  614.         Case UCase("pm_exit")                           '退出系统
  615.             Unload XT_Main
  616.         '基础设置
  617.         Case UCase("pm_bank")                           '银行信息
  618.             '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  619.             If Not Security_Log("pm_bank", Xtczybm, 1) Then
  620.                 Exit Sub
  621.             End If
  622.             Bank_frmInfo.Show 1
  623.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  624.         Case UCase("pm_TaxRate")                        '税率设置
  625.             If Not Security_Log("pm_TaxRate", Xtczybm, 1) Then
  626.                 Exit Sub
  627.             End If
  628.             Tax_FrmRate.Show 1
  629.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  630.       
  631.         Case UCase("pm_FixItem")                        '固定项设置
  632.             Item_FrmSetFix.Show 1
  633.         Case UCase("pm_Item")                           '项目设置
  634.             If Not Security_Log("pm_Item", Xtczybm, 1) Then
  635.                 Exit Sub
  636.             End If
  637.             Item_FrmSet.Show 1
  638.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  639.         Case UCase("pm_sort")                           '类别设置
  640.             If Not Security_Log("pm_sort", Xtczybm, 1) Then
  641.                 Exit Sub
  642.             End If
  643.             Class_FrmSet.Show 1
  644.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  645.         Case UCase("pm_OpePope")                     '操作员权限设置
  646.             If Not Security_Log("pm_OpePope", Xtczybm, 1) Then
  647.                 Exit Sub
  648.             End If
  649.             Operator_Frm.Show 1
  650.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  651.         Case UCase("pm_SortItem")                       '类别项目选择
  652.             If Not Security_Log("pm_SortItem", Xtczybm, 1) Then
  653.                 Exit Sub
  654.             End If
  655.             Class_FrmItem.Show 1
  656.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  657.         Case UCase("pm_SortEmp")                        '类别人员选择
  658.             If Not Security_Log("pm_SortEmp", Xtczybm, 1) Then
  659.                 Exit Sub
  660.             End If
  661.             Class_frmEmp.Show 1
  662.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  663.         Case UCase("pm_BankItem")                       '代发栏目设置
  664.             If Not Security_Log("pm_BankItem", Xtczybm, 1) Then
  665.                 Exit Sub
  666.             End If
  667.             Bank_FrmColSet.Show 1
  668.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  669.         Case UCase("pm_RsItem")                         '人事项目选择
  670.             If Not Security_Log("pm_RsItem", Xtczybm, 1) Then
  671.                 Exit Sub
  672.             End If
  673.             RsItem_FrmPay.Show 1
  674.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  675.         Case UCase("pm_StandTbl")                       '标准表
  676.             If Not Security_Log("pm_StandTb", Xtczybm, 1) Then
  677.                 Exit Sub
  678.             End If
  679.             Stand_FrmFirst.Show 1
  680.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  681.         Case UCase("pm_Rs_Set_RsItems")                 '人事项目设置
  682.             If Not Security_Log("pm_Rs_Set_RsItems", Xtczybm, 1) Then
  683.                 Exit Sub
  684.             End If
  685.             Xtcdcs = 2
  686.             Set_RsItemsFrm.Show 1
  687.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  688.         Case UCase("Pm_Rs_Set_Position")                '人事项目排列
  689.             If Not Security_Log("Pm_Rs_Set_Position", Xtczybm, 1) Then
  690.                 Exit Sub
  691.             End If
  692.             Xtcdcs = 2
  693.             Set_PositionFrm.Show 1
  694.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  695.         '日常处理
  696.         Case UCase("pm_RsInfo")                         '人事信息维护
  697.             If Not Security_Log("pm_RsInfo", Xtczybm, 1) Then
  698.                 Exit Sub
  699.             End If
  700.             AddExit_TF = True
  701.             Ed_EmpArInfoFrm.FormOwner = "Self"
  702.             Ed_EmpArInfoFrm.SysOwner = 1
  703.             Ed_EmpArInfoFrm.Show 1
  704.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  705.         Case UCase("Pm_RsQuery")                        '人事信息查询
  706.             If Not Security_Log("Pm_RsQuery", Xtczybm, 1) Then
  707.                 Exit Sub
  708.             End If
  709.             Qr_RsBasicFrm.Show
  710.             Qr_RsBscCndFrm.Show 1
  711.         Case UCase("pm_Copy")                           '复制数据
  712.             If Not Security_Log("pm_Copy", Xtczybm, 1) Then
  713.                 Exit Sub
  714.             End If
  715.             If Xtyear = KjYear And Xtmm = Period Then
  716.                 Copy_FrmData.Show 1
  717.             Else
  718.                 Call Xtxxts("登录时间" & Xtyear & "年" & Xtmm & "月不是当前会计期间" & _
  719.                   KjYear & "年" & Period & "月," & Chr(10) & Chr(13) & "不能执行复制功能!", 0, 1)
  720.             End If
  721.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  722.         Case UCase("pm_Attend")                         '考勤录入
  723.             If Not Security_Log("pm_Attend", Xtczybm, 1) Then
  724.                 Exit Sub
  725.             End If
  726.             If Xtyear = KjYear And Xtmm = Period Then
  727.                 Attend_FrmDept.Show 1
  728.             Else
  729.                 Call Xtxxts("登录时间" & Xtyear & "年" & Xtmm & "月不是当前会计期间" & _
  730.                   KjYear & "年" & Period & "月," & Chr(10) & Chr(13) & "不能执行考勤录入!", 0, 1)
  731.             End If
  732.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  733.         Case UCase("pm_BankPayOff")                     '银行代发
  734.             If Not Security_Log("pm_BankPayOff", Xtczybm, 1) Then
  735.                 Exit Sub
  736.             End If
  737.             Rep_BankPay_Frm.Show
  738.             Query_BankPay_Frm.Show 1
  739.         Case UCase("pm_EndMonth")
  740.             If Not Security_Log("pm_EndMonth", Xtczybm, 1) Then
  741.                 Exit Sub
  742.             End If
  743.             EndM
  744.             Security_Log gnsy, Xtczybm, 2, False  '用户退出时写上机日志
  745.         '工具
  746.         Case UCase("pm_calendar")                       '会计日历
  747.             XT_kjrlFrm.Show 1
  748.         Case UCase("pm_cal")                            '计算器
  749.             Shell App.Path & "calc.exe", vbNormalFocus
  750.         
  751.         '帮助
  752.         Case UCase("pm_helptopic")                      '帮助主题
  753.             Call F1bz
  754.         Case UCase("pm_about")                          '关于
  755.             XT_frmAbout.Show
  756.     End Select
  757.     Set frm = Nothing
  758.     Set frmQuery = Nothing
  759.    
  760.     Exit Sub
  761. Cwcl:
  762.     Set frm = Nothing
  763.     Set frmQuery = Nothing
  764.     Tsxx = "此项系统功能有待完善!"
  765.     Call Xtxxts(Tsxx, 0, 4)
  766.     Exit Sub
  767. End Sub
  768. Private Sub EndM()
  769.     Dim An As Integer
  770.     Dim Rsc As New ADODB.Recordset
  771.     '月末结转
  772.     If Xtyear = KjYear And Xtmm = Period Then
  773.         On Error GoTo Err1
  774.         An = Xtxxts("进行月末结转之后," & KjYear & "年" & _
  775.               Period & "月的数据不能修改!" & Chr(10) & Chr(13) & "进行月末结转吗?", 1, 2)
  776.         If An = 6 Then   'Yes
  777.             If Period = 12 Then '如果是12月份计算本年月平均工资
  778.                 An = Xtxxts("是否计算" & KjYear & "年的月平均工资?", 1, 2)
  779.                 If An = 6 Then
  780.                     If Rsc.State = 1 Then Rsc.Close
  781.                     Set Rsc = Cw_DataEnvi.DataConnect.Execute("select * from PM_SortItem where EndMonth=1")
  782.                     If Rsc.EOF Then
  783.                         Call Xtxxts("请设置计算月平均工资的工资项目!", 0, 1)
  784.                         Exit Sub
  785.                     Else
  786.                         If AveWage = -1 Then '计算本年月平均工资
  787.                             '结转不成功
  788.                             GoTo Err1
  789.                         End If
  790.                     End If
  791.                 Else
  792.                     Cw_DataEnvi.DataConnect.Execute "update Gy_Kjrlb set PMjzbz=1 where " & _
  793.                         " Kjyear=" & KjYear & " and Period=" & Period
  794.                 End If
  795.             Else
  796.                 Cw_DataEnvi.DataConnect.Execute "update Gy_Kjrlb set PMjzbz=1 where " & _
  797.                         " Kjyear=" & KjYear & " and Period=" & Period
  798.             End If
  799.             Call Xtxxts("结转成功!", 0, 4)
  800.             If Rsc.State = 1 Then Rsc.Close
  801.             Set Rsc = Cw_DataEnvi.DataConnect.Execute("select * from Gy_Kjrlb where PMjzbz=0 order by Kjyear,Period")
  802.             If Not Rsc.EOF Then
  803.                 KjYear = Rsc!KjYear
  804.                 Period = Rsc!Period
  805.             End If
  806.         End If
  807.     Else
  808.         Call Xtxxts("登录时间" & Xtyear & "年" & Xtmm & "月不是当前会计期间" & _
  809.           KjYear & "年" & Period & "月," & Chr(10) & Chr(13) & "不能执行月末结转!", 0, 1)
  810.     End If
  811.     Set Rsc = Nothing
  812.     Exit Sub
  813. Err1:
  814.     Call Xtxxts("结转不成功!", 0, 1)
  815.     Set Rsc = Nothing
  816. End Sub
  817. Private Function AveWage() As String
  818.     Dim Sql As String
  819.     Dim Rsc As New ADODB.Recordset
  820.     Dim i As Long
  821.     Dim Sql1 As String
  822.     '建立视图,工资总数/月数,月数是人员实际领工资的月数
  823.     If Rsc.State = 1 Then Rsc.Close
  824.     Sql = "select SortID,FieldName from PM_SortItem p inner join Rs_items r " & _
  825.           " on p.ItemID=r.ItemID where EndMonth=1"
  826.     Set Rsc = Cw_DataEnvi.DataConnect.Execute(Sql)
  827.     Sql = ""
  828.     
  829.     Do While Not Rsc.EOF
  830.         Sql = Sql & " select " & Trim(Rsc!FieldName) & " as Wage ,Period ,EmpID " & _
  831.               " from PM_Payroll where SortID='" & Trim(Rsc!SortId) & "'" & _
  832.               " and Kjyear =" & KjYear & " union"
  833.         Rsc.MoveNext
  834.     Loop
  835.     
  836.     If Trim(Sql) <> "" Then
  837.         Sql = Left(Sql, Len(Sql) - 5)
  838.     End If
  839.     Sql = "create view PM_V_AveWage as " & Sql
  840.     Sql1 = "if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PM_V_AveWage]') and OBJECTPROPERTY(id, N'IsView') = 1) " & _
  841.          " drop view [dbo].[PM_V_AveWage] "
  842.     On Error GoTo Err1
  843.     With Cw_DataEnvi.DataConnect
  844.         .BeginTrans
  845.         .Execute Sql1
  846.         .Execute Sql
  847.         Sql = " update Rs_BasicInfo set PMLastYAvgSalary= AveWage from (select " & _
  848.               " a.SumW/b.Ms as AveWage,a.EmpID from (select EmpId,sum(Wage) as SumW from PM_V_AveWage" & _
  849.               " group by EmpId) a inner join (select  EmpID,count(distinct Period) as Ms from PM_V_AveWage " & _
  850.               " group by EmpID) b on a.EmpID=b.EmpID ) c where Rs_BasicInfo.EmpID=c.EmpID"
  851.         .Execute Sql
  852.         .Execute "update Gy_Kjrlb set PMjzbz=1 where " & _
  853.                  " Kjyear=" & KjYear & " and Period=" & Period
  854.         .CommitTrans
  855.     End With
  856.     AveWage = 1
  857.     Set Rsc = Nothing
  858.     Exit Function
  859. Err1:
  860.     Cw_DataEnvi.DataConnect.RollbackTrans
  861.     AveWage = -1
  862.     Set Rsc = Nothing
  863. End Function
  864. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)        '用户关闭窗体
  865.   
  866.     If Unload_TF = False Then
  867.         Cancel = 1
  868.         Me.WindowState = 1
  869.     End If
  870. End Sub
  871. Private Sub Form_Load()
  872.     
  873.     '设置窗体图标
  874.     Me.Icon = XT_Main.Icon
  875.     
  876.     '设置窗体位置大小,并调入系统功能树
  877.     Me.Left = 0
  878.     Me.Top = 0
  879.     Me.Width = XT_Main.Width - 60
  880.     Me.Height = XT_Main.Height - 760 - 690
  881.     Call Cshgns
  882.     
  883.     '启动调入数据等待提示
  884.     Load Xt_Wait
  885.     
  886. End Sub
  887. Private Sub Form_Unload(Cancel As Integer)
  888.     
  889.     On Error Resume Next
  890.     
  891.     Dim i As Integer
  892.     For i = Forms.Count - 1 To 0 Step -1
  893.         Unload Forms(i)
  894.     Next
  895.     If Me.WindowState <> vbMinimized Then
  896.         SaveSetting App.Title, "Settings", "MainLeft", Me.Left
  897.         SaveSetting App.Title, "Settings", "MainTop", Me.Top
  898.         SaveSetting App.Title, "Settings", "MainWidth", Me.Width
  899.         SaveSetting App.Title, "Settings", "MainHeight", Me.Height
  900.     End If
  901.     SaveSetting App.Title, "Settings", "ViewMode", lvListView.View
  902. End Sub
  903. Private Sub Form_Resize()
  904.     
  905.     On Error Resume Next
  906.     If Me.Width < 3000 Then Me.Width = 3000
  907.     SizeControls imgSplitter.Left
  908. End Sub
  909. Private Sub imgSplitter_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  910.     
  911.     With imgSplitter
  912.         picSplitter.Move .Left, .Top, .Width  2, .Height - 20
  913.     End With
  914.     picSplitter.Visible = True
  915.     mbMoving = True
  916. End Sub
  917. Private Sub imgSplitter_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  918.     
  919.     Dim sglPos As Single
  920.     If mbMoving Then
  921.         sglPos = x + imgSplitter.Left
  922.         If sglPos < sglSplitLimit Then
  923.             picSplitter.Left = sglSplitLimit
  924.         ElseIf sglPos > Me.Width - sglSplitLimit Then
  925.             picSplitter.Left = Me.Width - sglSplitLimit
  926.         Else
  927.             picSplitter.Left = sglPos
  928.         End If
  929.     End If
  930. End Sub
  931. Private Sub imgSplitter_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
  932.     
  933.     SizeControls picSplitter.Left
  934.     picSplitter.Visible = False
  935.     mbMoving = False
  936.     lvListView.Refresh
  937. End Sub
  938. Private Sub TreeView1_DragDrop(Source As Control, x As Single, y As Single)
  939.     
  940.     If Source = imgSplitter Then
  941.         SizeControls x
  942.     End If
  943. End Sub
  944. Sub SizeControls(x As Single)
  945.     
  946.     On Error Resume Next
  947.     '设置 Width 属性
  948.     If x < 3500 Then x = 3500
  949.     If x > (Me.Width - 1500) Then x = Me.Width - 1500
  950.     tvTreeView.Width = x
  951.     imgSplitter.Left = x
  952.     lvListView.Left = x + 40
  953.     lvListView.Width = Me.Width - (tvTreeView.Width + 140)
  954.     lblTitle(0).Width = tvTreeView.Width
  955.     lblTitle(1).Left = lvListView.Left + 20
  956.     lblTitle(1).Width = lvListView.Width - 40
  957.     '设置 Top 属性
  958.     tvTreeView.Top = tbToolBar.Height + picTitles.Height
  959.     lvListView.Top = tvTreeView.Top
  960.     '设置 height 属性
  961.     tvTreeView.Height = Me.ScaleHeight - (picTitles.Top + picTitles.Height)
  962.     
  963.     lvListView.Height = tvTreeView.Height
  964.     imgSplitter.Top = tvTreeView.Top
  965.     imgSplitter.Height = tvTreeView.Height
  966. End Sub
  967. Private Sub tbToolBar_ButtonClick(ByVal Button As MSComctlLib.Button)
  968.     
  969.     On Error Resume Next
  970.     
  971.     Select Case Button.Key
  972.         Case "返回"
  973.             tvTreeView.SetFocus
  974.               SendKeys "{up}", True
  975.         Case "向前"
  976.              tvTreeView.SetFocus
  977.               SendKeys "{DOWN}", True
  978.         Case "大图标"
  979.             lvListView.View = lvwIcon
  980.         Case "小图标"
  981.             lvListView.View = lvwSmallIcon
  982.         Case "列表"
  983.             lvListView.View = lvwList
  984.         Case "详细资料"
  985.             lvListView.View = lvwReport
  986.     End Select
  987. End Sub