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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form RsItem_FrmPay 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "人事项目选择"
  5.    ClientHeight    =   3780
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   5325
  9.    HelpContextID   =   2212011
  10.    Icon            =   "基础设置_人事项目选择.frx":0000
  11.    LinkTopic       =   "Form1"
  12.    LockControls    =   -1  'True
  13.    MaxButton       =   0   'False
  14.    MinButton       =   0   'False
  15.    ScaleHeight     =   3780
  16.    ScaleWidth      =   5325
  17.    ShowInTaskbar   =   0   'False
  18.    StartUpPosition =   2  '屏幕中心
  19.    Begin VB.CommandButton Cmd_Cancel 
  20.       Caption         =   "取消(&C)"
  21.       Height          =   300
  22.       Left            =   4095
  23.       TabIndex        =   10
  24.       Top             =   3390
  25.       Width           =   1120
  26.    End
  27.    Begin VB.CommandButton Cmd_Ok 
  28.       Caption         =   "保存(&S)"
  29.       Height          =   300
  30.       Left            =   2895
  31.       TabIndex        =   9
  32.       Top             =   3390
  33.       Width           =   1120
  34.    End
  35.    Begin VB.Frame Frame1 
  36.       Height          =   3225
  37.       Left            =   60
  38.       TabIndex        =   0
  39.       Top             =   60
  40.       Width           =   5175
  41.       Begin VB.ListBox Lst_PicthON 
  42.          Height          =   1140
  43.          Index           =   1
  44.          Left            =   3870
  45.          TabIndex        =   12
  46.          Top             =   2040
  47.          Width           =   1095
  48.       End
  49.       Begin VB.ListBox Lst_Pre 
  50.          Height          =   960
  51.          Index           =   1
  52.          Left            =   795
  53.          TabIndex        =   11
  54.          Top             =   1770
  55.          Width           =   1125
  56.       End
  57.       Begin VB.CommandButton Cmd_L 
  58.          Caption         =   "<"
  59.          Height          =   315
  60.          Left            =   2265
  61.          TabIndex        =   8
  62.          Top             =   2160
  63.          Width           =   630
  64.       End
  65.       Begin VB.CommandButton Cmd_AllL 
  66.          Caption         =   "<<"
  67.          Height          =   315
  68.          Left            =   2265
  69.          TabIndex        =   7
  70.          Top             =   1680
  71.          Width           =   630
  72.       End
  73.       Begin VB.CommandButton Cmd_R 
  74.          Caption         =   ">"
  75.          Height          =   315
  76.          Left            =   2265
  77.          TabIndex        =   6
  78.          Top             =   1170
  79.          Width           =   630
  80.       End
  81.       Begin VB.CommandButton Cmd_AllR 
  82.          Caption         =   ">>"
  83.          Height          =   315
  84.          Left            =   2265
  85.          TabIndex        =   5
  86.          Top             =   690
  87.          Width           =   630
  88.       End
  89.       Begin VB.ListBox Lst_PicthON 
  90.          Height          =   2580
  91.          Index           =   0
  92.          Left            =   3000
  93.          TabIndex        =   4
  94.          Top             =   510
  95.          Width           =   2040
  96.       End
  97.       Begin VB.ListBox Lst_Pre 
  98.          Height          =   2580
  99.          Index           =   0
  100.          Left            =   105
  101.          TabIndex        =   2
  102.          Top             =   510
  103.          Width           =   2040
  104.       End
  105.       Begin VB.Label Lbl_PicthON 
  106.          AutoSize        =   -1  'True
  107.          BackStyle       =   0  'Transparent
  108.          Caption         =   "选中项:"
  109.          Height          =   180
  110.          Left            =   3120
  111.          TabIndex        =   3
  112.          Top             =   300
  113.          Width           =   630
  114.       End
  115.       Begin VB.Label Lbl_Pre 
  116.          AutoSize        =   -1  'True
  117.          BackStyle       =   0  'Transparent
  118.          Caption         =   "备选项:"
  119.          Height          =   180
  120.          Left            =   180
  121.          TabIndex        =   1
  122.          Top             =   300
  123.          Width           =   630
  124.       End
  125.    End
  126. End
  127. Attribute VB_Name = "RsItem_FrmPay"
  128. Attribute VB_GlobalNameSpace = False
  129. Attribute VB_Creatable = False
  130. Attribute VB_PredeclaredId = True
  131. Attribute VB_Exposed = False
  132. '*******************************************************
  133. '*    模 块 名 称 :人事项目选择
  134. '*    功 能 描 述 :将需要保存历史记录的、与计算工资有关的人事项目选入到
  135. '*                 工资表,用*号表示。选入到工资表中的人事项目,如果它在
  136. '*                 它在工资表中无数据,可取消选择。
  137. '*    程序员姓名  :田建秀
  138. '*    最后修改人  :田建秀
  139. '*    最后修改时间:2002/1/21
  140. '*    备        注:
  141. '*******************************************************
  142. Option Explicit
  143. Dim Rsc As New ADODB.Recordset
  144. Dim Sql As String
  145. Dim I As Long
  146. Dim Str_RightEdit As String              '编辑(新增、修改、删除)权限索引
  147. Private Sub Cmd_AllL_Click()
  148.     Dim FidName As String
  149.     I = 0
  150.     With Lst_PicthON(0)
  151.         Do While I <= .ListCount - 1
  152.             If Left(Trim(Lst_PicthON(0).List(I)), 1) <> "*" Then
  153.                 '还没有成为PM_payroll表的字段
  154.                 Call Lr(I)
  155.             Else
  156.                 With Lst_PicthON(1)
  157.                      FidName = Left(Trim(.List(I)), InStr(Trim(.List(I)), " ") - 1)
  158.                      If LCase(Trim(FidName)) = "empno" Or LCase(Trim(FidName)) = "empname" _
  159.                         Or LCase(Trim(FidName)) = "deptcode" Or LCase(Trim(FidName)) = "empsort" Then
  160.                         I = I + 1
  161.                      Else
  162.                         If Rsc.State = 1 Then Rsc.Close
  163.                         Sql = "select * from PM_Payroll where " & FidName & " is not null"
  164.                         Set Rsc = Cw_DataEnvi.DataConnect.Execute(Sql)
  165.                         If Not Rsc.EOF Then
  166.                             Call Xtxxts("“" & Right(Trim(Lst_PicthON(0).List(I)), Len(Trim(Lst_PicthON(0).List(I))) - 1) & "”在工资数据表中已有数据,不能返回为备选项!", 0, 1)
  167.                             I = I + 1
  168.                         Else
  169.                             Call Lr(I)
  170.                         End If
  171.                      End If
  172.                 End With
  173.             End If
  174.         Loop
  175.     End With
  176.     LCount
  177. End Sub
  178. Private Sub Cmd_AllR_Click()
  179.     With Lst_Pre(0)
  180.         For I = 0 To .ListCount - 1
  181.             Lst_PicthON(0).AddItem .List(I)
  182.             Lst_PicthON(1).AddItem Lst_Pre(1).List(I)
  183.         Next
  184.         .Clear
  185.     End With
  186.     LCount
  187. End Sub
  188. Private Sub Cmd_Cancel_Click()
  189.     Unload Me
  190. End Sub
  191. Private Sub Cmd_L_Click()
  192.     Dim FidName
  193.     If Lst_PicthON(0).listindex = -1 Then
  194.         Exit Sub
  195.     End If
  196.     If Left(Trim(Lst_PicthON(0).Text), 1) <> "*" Then
  197.         '还没有成为PM_payroll表的字段
  198.         Call Lr(Lst_PicthON(0).listindex)
  199.     Else
  200.         With Lst_PicthON(1)
  201.              FidName = Left(Trim(.List(Lst_PicthON(0).listindex)), InStr(Trim(.List(Lst_PicthON(0).listindex)), " ") - 1)
  202.              If LCase(Trim(FidName)) = "empno" Or LCase(Trim(FidName)) = "empname" _
  203.                 Or LCase(Trim(FidName)) = "deptcode" Or LCase(Trim(FidName)) = "empsort" Then
  204.                 Exit Sub
  205.              End If
  206.              If Rsc.State = 1 Then Rsc.Close
  207.              Sql = "select * from PM_Payroll where " & FidName & " is not null"
  208.              Set Rsc = Cw_DataEnvi.DataConnect.Execute(Sql)
  209.              If Not Rsc.EOF Then
  210.                 Call Xtxxts("“" & Right(Trim(Lst_PicthON(0).Text), Len(Trim(Lst_PicthON(0).Text)) - 1) & "”在工资数据表中已有数据,不能返回为备选项!", 0, 1)
  211.              Else
  212.                 Call Lr(Lst_PicthON(0).listindex)
  213.              End If
  214.         End With
  215.     End If
  216.     LCount
  217. End Sub
  218. Private Sub Lr(listindex As Long)
  219.     '将选中项返回成为备选项
  220.     With Lst_PicthON(0)
  221.         Lst_Pre(0).AddItem .List(listindex)
  222.         Lst_Pre(1).AddItem Lst_PicthON(1).List(listindex)
  223.         Lst_PicthON(1).RemoveItem (listindex)
  224.         .RemoveItem (listindex)
  225.     End With
  226. End Sub
  227. Private Sub Cmd_Ok_Click()
  228.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  229.     If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  230.         Exit Sub
  231.     End If
  232.     Dim Sql1 As String
  233.     Dim FidName As String
  234.     Sql = ""
  235.     Sql1 = " "
  236.     
  237.     With Lst_PicthON(1)
  238.         For I = 0 To .ListCount - 1
  239.             If Left(Trim(Lst_PicthON(0).List(I)), 1) <> "*" Then
  240.                 Sql = Sql & " alter table pm_Payroll add " & .List(I)
  241.                 Sql1 = Sql1 & " update Rs_Items set AddMinusItem=1 where " & _
  242.                       " FieldName='" & _
  243.                       Left(Trim(.List(I)), InStr(Trim(.List(I)), " ") - 1) & _
  244.                       "'"
  245.             End If
  246.         Next
  247.     End With
  248.     With Lst_Pre(1)
  249.         For I = 0 To .ListCount - 1
  250.             If Left(Trim(Lst_Pre(0).List(I)), 1) = "*" Then
  251.                 FidName = Left(Trim(.List(I)), InStr(Trim(.List(I)), " ") - 1)
  252.                 Sql = Sql & " alter table pm_Payroll drop column " & FidName
  253.                 Sql1 = Sql1 & " update Rs_Items set AddMinusItem=0 where " & _
  254.                       " FieldName='" & FidName & "'"
  255.             End If
  256.         Next
  257.     End With
  258.     
  259.     On Error GoTo Err1
  260.     If Trim(Sql) = "" Then
  261.         Unload Me
  262.         Exit Sub
  263.     End If
  264.     With Cw_DataEnvi.DataConnect
  265.         .BeginTrans
  266.         .Execute Sql
  267.         .Execute Sql1
  268.         .CommitTrans
  269.     End With
  270.     Call Xtxxts("转移成功!", 0, 4)
  271.     Unload Me
  272.     Exit Sub
  273. Err1:
  274.     Cw_DataEnvi.DataConnect.RollbackTrans
  275.     Call Xtxxts("转移不成功!", 0, 1)
  276. End Sub
  277. Private Sub Cmd_R_Click()
  278.     
  279.     With Lst_Pre(0)
  280.         If .listindex = -1 Then
  281.             Exit Sub
  282.         End If
  283.         Lst_PicthON(0).AddItem .List(.listindex)
  284.         Lst_PicthON(1).AddItem Lst_Pre(1).List(.listindex)
  285.         Lst_Pre(1).RemoveItem (.listindex)
  286.         .RemoveItem (.listindex)
  287.     End With
  288.     LCount
  289. End Sub
  290. Private Sub Form_Load()
  291.     Lst_Pre(1).Visible = False
  292.     Lst_PicthON(1).Visible = False
  293.     Sql = "select o.Name as TableName,ChName,fieldname ,t.name as typeName,c.length,c.scale from " & _
  294.         " syscolumns c inner join sysobjects o on  c.id=o.id " & _
  295.         " inner join systypes t on c.xtype=t.xusertype " & _
  296.         " inner join rs_items r on r.fieldname=c.name " & _
  297.         " where  (o.name='Rs_basicInfo' or o.name='rs_extendInfo') " & _
  298.         " and r.addminusitem=0 and (sid=1 or sid=2) order by o.name,itemid "
  299.     Set Rsc = Cw_DataEnvi.DataConnect.Execute(Sql)
  300.     Do While Not Rsc.EOF
  301.         Lst_Pre(0).AddItem Trim(Rsc!ChName)
  302.         Call Add1(Rsc, Lst_Pre(1))
  303.         Rsc.MoveNext
  304.     Loop
  305.  
  306.    
  307.     If Rsc.State = 1 Then Rsc.Close
  308.     Sql = "select o.Name as TableName,ChName,fieldname ,t.name as typeName,c.length,c.scale from " & _
  309.         " syscolumns c inner join sysobjects o on  c.id=o.id " & _
  310.         " inner join systypes t on c.xtype=t.xusertype " & _
  311.         " inner join rs_items r on r.fieldname=c.name " & _
  312.         " where  (o.name='Rs_basicInfo' or o.name='rs_extendInfo') " & _
  313.         " and r.addminusitem=1 and (sid=1 or sid=2) order by o.name,itemid "
  314.     Set Rsc = Cw_DataEnvi.DataConnect.Execute(Sql)
  315.    
  316.     Do While Not Rsc.EOF
  317.         Lst_PicthON(0).AddItem "*" & Space(1) & Trim(Rsc!ChName)
  318.         Call Add1(Rsc, Lst_PicthON(1))
  319.         Rsc.MoveNext
  320.     Loop
  321.     LCount
  322.     '编辑(新增、修改、删除)权限索引
  323.     Str_RightEdit = "Pm_RsItem_edit"
  324.     Exit Sub
  325. End Sub
  326. Private Sub LCount()
  327.     Lbl_Pre.Caption = "备选项:" & Space(2) & "共" & Lst_Pre(0).ListCount & "项"
  328.     Lbl_PicthON.Caption = "选中项:" & Space(2) & "共" & Lst_PicthON(0).ListCount & "项"
  329. End Sub
  330. Private Sub Add1(Rsc As ADODB.Recordset, lst As ListBox)
  331.    With Rsc
  332.         If Left(Trim(!TypeName), 1) = "n" Then
  333.             'unicode数据类型
  334.             lst.AddItem Trim(!FieldName) & _
  335.                    Space(1) & Trim(!TypeName) & _
  336.                    "(" & !Length / 2 & ") null"
  337.         ElseIf LCase(Trim(!TableName)) = "rs_extendinfo" Then
  338.             lst.AddItem Trim(!FieldName) & _
  339.                    Space(1) & Trim(!TypeName) & _
  340.                    "(" & !Length & ") null"
  341.         ElseIf !Scale <> 0 And LCase(Trim(!TypeName)) <> "datetime" Then
  342.             lst.AddItem Trim(!FieldName) & _
  343.                    Space(1) & Trim(!TypeName) & _
  344.                    "(" & !Length & "," & !Scale & ") null"
  345.         ElseIf LCase(Trim(!TypeName)) = "bit" Or LCase(Trim(!TypeName)) = "datetime" Or LCase(Trim(!TypeName)) = "image" Then
  346.             lst.AddItem Trim(!FieldName) & _
  347.                    Space(1) & Trim(!TypeName)
  348.         Else
  349.             lst.AddItem Trim(!FieldName) & _
  350.                    Space(1) & Trim(!TypeName) & _
  351.                    "(" & !Length & ") null"
  352.         End If
  353.     End With
  354. End Sub
  355. Private Sub Form_Unload(Cancel As Integer)
  356.     Set Rsc = Nothing
  357. End Sub
  358. Private Sub Lst_PicthON_dblClick(Index As Integer)
  359.     Call Cmd_L_Click
  360. End Sub
  361. Private Sub Lst_Pre_DblClick(Index As Integer)
  362.     Call Cmd_R_Click
  363. End Sub