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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{BEEECC20-4D5F-4F8B-BFDC-5D9B6FBDE09D}#1.0#0"; "vsflex8.ocx"
  3. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
  4. Object = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "TABCTL32.OCX"
  5. Begin VB.Form Item_FrmSet 
  6.    BorderStyle     =   3  'Fixed Dialog
  7.    Caption         =   "项目设置"
  8.    ClientHeight    =   7350
  9.    ClientLeft      =   45
  10.    ClientTop       =   330
  11.    ClientWidth     =   9375
  12.    HelpContextID   =   2212005
  13.    Icon            =   "基础设置_项目设置.frx":0000
  14.    KeyPreview      =   -1  'True
  15.    LinkTopic       =   "Form2"
  16.    LockControls    =   -1  'True
  17.    MaxButton       =   0   'False
  18.    MinButton       =   0   'False
  19.    ScaleHeight     =   7350
  20.    ScaleWidth      =   9375
  21.    ShowInTaskbar   =   0   'False
  22.    StartUpPosition =   2  '屏幕中心
  23.    Begin VB.Frame Frame2 
  24.       Height          =   630
  25.       Left            =   75
  26.       TabIndex        =   10
  27.       Top             =   570
  28.       Width           =   3525
  29.       Begin VB.ComboBox Cbo_ItemClass 
  30.          Height          =   300
  31.          Left            =   930
  32.          TabIndex        =   11
  33.          Text            =   "Combo1"
  34.          Top             =   225
  35.          Width           =   2445
  36.       End
  37.       Begin VB.Label Label3 
  38.          AutoSize        =   -1  'True
  39.          BackStyle       =   0  'Transparent
  40.          Caption         =   "项目类别"
  41.          Height          =   180
  42.          Left            =   135
  43.          TabIndex        =   12
  44.          Top             =   315
  45.          Width           =   720
  46.       End
  47.    End
  48.    Begin TabDlg.SSTab StTab 
  49.       Height          =   6105
  50.       Left            =   30
  51.       TabIndex        =   6
  52.       Top             =   1230
  53.       Width           =   9330
  54.       _ExtentX        =   16457
  55.       _ExtentY        =   10769
  56.       _Version        =   393216
  57.       Style           =   1
  58.       Tabs            =   2
  59.       Tab             =   1
  60.       TabHeight       =   520
  61.       TabCaption(0)   =   "列表视图"
  62.       TabPicture(0)   =   "基础设置_项目设置.frx":1042
  63.       Tab(0).ControlEnabled=   0   'False
  64.       Tab(0).Control(0)=   "CzxsGrid"
  65.       Tab(0).ControlCount=   1
  66.       TabCaption(1)   =   "单张视图"
  67.       TabPicture(1)   =   "基础设置_项目设置.frx":105E
  68.       Tab(1).ControlEnabled=   -1  'True
  69.       Tab(1).Control(0)=   "Frame1"
  70.       Tab(1).Control(0).Enabled=   0   'False
  71.       Tab(1).ControlCount=   1
  72.       Begin VB.Frame Frame1 
  73.          Height          =   5685
  74.          Left            =   90
  75.          TabIndex        =   13
  76.          Top             =   330
  77.          Width           =   9135
  78.          Begin VB.CommandButton Ydcommand1 
  79.             Height          =   300
  80.             Index           =   0
  81.             Left            =   3600
  82.             Picture         =   "基础设置_项目设置.frx":107A
  83.             Style           =   1  'Graphical
  84.             TabIndex        =   14
  85.             Top             =   3270
  86.             Visible         =   0   'False
  87.             Width           =   300
  88.          End
  89.          Begin VB.CommandButton BcCommand 
  90.             Caption         =   "保存(&S)"
  91.             Height          =   300
  92.             Left            =   1125
  93.             TabIndex        =   4
  94.             Top             =   1845
  95.             Width           =   1120
  96.          End
  97.          Begin VB.CommandButton QxCommand 
  98.             Cancel          =   -1  'True
  99.             Caption         =   "取消(&C)"
  100.             Height          =   300
  101.             Left            =   2325
  102.             TabIndex        =   5
  103.             Top             =   1845
  104.             Width           =   1120
  105.          End
  106.          Begin VB.TextBox LrText 
  107.             Height          =   300
  108.             Index           =   0
  109.             Left            =   1500
  110.             TabIndex        =   1
  111.             Text            =   "0"
  112.             Top             =   420
  113.             Width           =   1950
  114.          End
  115.          Begin VB.TextBox LrText 
  116.             Height          =   300
  117.             Index           =   1
  118.             Left            =   1500
  119.             TabIndex        =   2
  120.             Text            =   "1"
  121.             Top             =   825
  122.             Width           =   1950
  123.          End
  124.          Begin VB.TextBox LrText 
  125.             Height          =   300
  126.             Index           =   2
  127.             Left            =   1500
  128.             TabIndex        =   3
  129.             Text            =   "2"
  130.             Top             =   1245
  131.             Width           =   1950
  132.          End
  133.          Begin VB.Label TsLabel 
  134.             AutoSize        =   -1  'True
  135.             Caption         =   "项目名称:"
  136.             Height          =   180
  137.             Index           =   0
  138.             Left            =   570
  139.             TabIndex        =   17
  140.             Top             =   480
  141.             Width           =   810
  142.          End
  143.          Begin VB.Label Label1 
  144.             AutoSize        =   -1  'True
  145.             BackStyle       =   0  'Transparent
  146.             Caption         =   "项目长度:"
  147.             Height          =   180
  148.             Left            =   570
  149.             TabIndex        =   16
  150.             Top             =   885
  151.             Width           =   810
  152.          End
  153.          Begin VB.Label Label2 
  154.             AutoSize        =   -1  'True
  155.             BackStyle       =   0  'Transparent
  156.             Caption         =   "小数位数:"
  157.             Height          =   180
  158.             Left            =   570
  159.             TabIndex        =   15
  160.             Top             =   1305
  161.             Width           =   810
  162.          End
  163.       End
  164.       Begin VSFlex8Ctl.VSFlexGrid CzxsGrid 
  165.          Height          =   5625
  166.          Left            =   -74895
  167.          TabIndex        =   0
  168.          Top             =   390
  169.          Width           =   9135
  170.          _cx             =   5080
  171.          _cy             =   5080
  172.          Appearance      =   1
  173.          BorderStyle     =   1
  174.          Enabled         =   -1  'True
  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.          MousePointer    =   0
  185.          BackColor       =   -2147483643
  186.          ForeColor       =   -2147483640
  187.          BackColorFixed  =   -2147483633
  188.          ForeColorFixed  =   -2147483630
  189.          BackColorSel    =   -2147483635
  190.          ForeColorSel    =   -2147483634
  191.          BackColorBkg    =   8421504
  192.          BackColorAlternate=   -2147483643
  193.          GridColor       =   -2147483633
  194.          GridColorFixed  =   -2147483632
  195.          TreeColor       =   -2147483632
  196.          FloodColor      =   192
  197.          SheetBorder     =   -2147483642
  198.          FocusRect       =   1
  199.          HighLight       =   1
  200.          AllowSelection  =   -1  'True
  201.          AllowBigSelection=   -1  'True
  202.          AllowUserResizing=   0
  203.          SelectionMode   =   0
  204.          GridLines       =   1
  205.          GridLinesFixed  =   2
  206.          GridLineWidth   =   1
  207.          Rows            =   5000
  208.          Cols            =   10
  209.          FixedRows       =   1
  210.          FixedCols       =   0
  211.          RowHeightMin    =   0
  212.          RowHeightMax    =   0
  213.          ColWidthMin     =   0
  214.          ColWidthMax     =   0
  215.          ExtendLastCol   =   0   'False
  216.          FormatString    =   ""
  217.          ScrollTrack     =   0   'False
  218.          ScrollBars      =   3
  219.          ScrollTips      =   0   'False
  220.          MergeCells      =   0
  221.          MergeCompare    =   0
  222.          AutoResize      =   -1  'True
  223.          AutoSizeMode    =   0
  224.          AutoSearch      =   0
  225.          AutoSearchDelay =   2
  226.          MultiTotals     =   -1  'True
  227.          SubtotalPosition=   1
  228.          OutlineBar      =   0
  229.          OutlineCol      =   0
  230.          Ellipsis        =   0
  231.          ExplorerBar     =   0
  232.          PicturesOver    =   0   'False
  233.          FillStyle       =   0
  234.          RightToLeft     =   0   'False
  235.          PictureType     =   0
  236.          TabBehavior     =   0
  237.          OwnerDraw       =   0
  238.          Editable        =   0
  239.          ShowComboButton =   1
  240.          WordWrap        =   0   'False
  241.          TextStyle       =   0
  242.          TextStyleFixed  =   0
  243.          OleDragMode     =   0
  244.          OleDropMode     =   0
  245.          DataMode        =   0
  246.          VirtualData     =   -1  'True
  247.          DataMember      =   ""
  248.          ComboSearch     =   3
  249.          AutoSizeMouse   =   -1  'True
  250.          FrozenRows      =   0
  251.          FrozenCols      =   0
  252.          AllowUserFreezing=   0
  253.          BackColorFrozen =   0
  254.          ForeColorFrozen =   0
  255.          WallPaperAlignment=   9
  256.          AccessibleName  =   ""
  257.          AccessibleDescription=   ""
  258.          AccessibleValue =   ""
  259.          AccessibleRole  =   24
  260.       End
  261.    End
  262.    Begin MSComctlLib.Toolbar SzToolbar 
  263.       Align           =   1  'Align Top
  264.       Height          =   555
  265.       Left            =   0
  266.       TabIndex        =   7
  267.       Top             =   0
  268.       Width           =   9375
  269.       _ExtentX        =   16536
  270.       _ExtentY        =   979
  271.       ButtonWidth     =   820
  272.       ButtonHeight    =   926
  273.       AllowCustomize  =   0   'False
  274.       Appearance      =   1
  275.       Style           =   1
  276.       ImageList       =   "ImageList1"
  277.       _Version        =   393216
  278.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  279.          NumButtons      =   12
  280.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  281.             Caption         =   "设置"
  282.             Key             =   "ymsz"
  283.             ImageKey        =   "sz"
  284.          EndProperty
  285.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  286.             Caption         =   "打印"
  287.             Key             =   "dy"
  288.             Object.ToolTipText     =   "点击或按Ctrl+P打印表格"
  289.             ImageKey        =   "dy"
  290.          EndProperty
  291.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  292.             Caption         =   "预览"
  293.             Key             =   "yl"
  294.             ImageKey        =   "yl"
  295.          EndProperty
  296.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  297.             Style           =   3
  298.          EndProperty
  299.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  300.             Caption         =   "增加"
  301.             Key             =   "zj"
  302.             Object.ToolTipText     =   "点击或按Ctrl+A增加记录"
  303.             ImageKey        =   "xz"
  304.          EndProperty
  305.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  306.             Caption         =   "修改"
  307.             Key             =   "xg"
  308.             ImageKey        =   "xg"
  309.          EndProperty
  310.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  311.             Caption         =   "删除"
  312.             Key             =   "sc"
  313.             Object.ToolTipText     =   "点击或按Ctrl+D删除当前记录"
  314.             ImageKey        =   "sc"
  315.          EndProperty
  316.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  317.             Style           =   3
  318.          EndProperty
  319.          BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  320.             Caption         =   "刷新"
  321.             Key             =   "sx"
  322.             ImageKey        =   "sx"
  323.          EndProperty
  324.          BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  325.             Style           =   3
  326.          EndProperty
  327.          BeginProperty Button11 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  328.             Caption         =   "帮助"
  329.             Key             =   "bz"
  330.             ImageKey        =   "bz"
  331.          EndProperty
  332.          BeginProperty Button12 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  333.             Caption         =   "退出"
  334.             Key             =   "fh"
  335.             ImageKey        =   "tc"
  336.          EndProperty
  337.       EndProperty
  338.       BorderStyle     =   1
  339.       Begin MSComctlLib.Toolbar GsToolbar 
  340.          Height          =   525
  341.          Left            =   6870
  342.          TabIndex        =   8
  343.          Top             =   0
  344.          Width           =   2475
  345.          _ExtentX        =   4366
  346.          _ExtentY        =   926
  347.          ButtonWidth     =   1455
  348.          ButtonHeight    =   926
  349.          AllowCustomize  =   0   'False
  350.          Appearance      =   1
  351.          Style           =   1
  352.          ImageList       =   "ImageList1"
  353.          _Version        =   393216
  354.          BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  355.             NumButtons      =   3
  356.             BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  357.                Caption         =   "保存格式"
  358.                Key             =   "bcgs"
  359.                ImageKey        =   "bcgs"
  360.             EndProperty
  361.             BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  362.                Caption         =   "默认列宽"
  363.                Key             =   "hfmrgs"
  364.                ImageKey        =   "mrlk"
  365.             EndProperty
  366.             BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  367.                Caption         =   "显示项目"
  368.                Key             =   "szxsxm"
  369.                ImageKey        =   "xsxm"
  370.             EndProperty
  371.          EndProperty
  372.       End
  373.    End
  374.    Begin MSComctlLib.ImageList ImageList1 
  375.       Left            =   5385
  376.       Top             =   570
  377.       _ExtentX        =   1005
  378.       _ExtentY        =   1005
  379.       BackColor       =   -2147483643
  380.       ImageWidth      =   16
  381.       ImageHeight     =   16
  382.       MaskColor       =   12632256
  383.       _Version        =   393216
  384.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  385.          NumListImages   =   29
  386.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  387.             Picture         =   "基础设置_项目设置.frx":1404
  388.             Key             =   "sz"
  389.          EndProperty
  390.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  391.             Picture         =   "基础设置_项目设置.frx":179E
  392.             Key             =   "dy"
  393.          EndProperty
  394.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  395.             Picture         =   "基础设置_项目设置.frx":1B38
  396.             Key             =   "yl"
  397.          EndProperty
  398.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  399.             Picture         =   "基础设置_项目设置.frx":1ED2
  400.             Key             =   "xg"
  401.          EndProperty
  402.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  403.             Picture         =   "基础设置_项目设置.frx":226C
  404.             Key             =   "zh"
  405.          EndProperty
  406.          BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  407.             Picture         =   "基础设置_项目设置.frx":2606
  408.             Key             =   "sh"
  409.          EndProperty
  410.          BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  411.             Picture         =   "基础设置_项目设置.frx":29A0
  412.             Key             =   "bc"
  413.          EndProperty
  414.          BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  415.             Picture         =   "基础设置_项目设置.frx":2D3A
  416.             Key             =   "fq"
  417.          EndProperty
  418.          BeginProperty ListImage9 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  419.             Picture         =   "基础设置_项目设置.frx":30D4
  420.             Key             =   "bz"
  421.          EndProperty
  422.          BeginProperty ListImage10 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  423.             Picture         =   "基础设置_项目设置.frx":346E
  424.             Key             =   "tc"
  425.          EndProperty
  426.          BeginProperty ListImage11 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  427.             Picture         =   "基础设置_项目设置.frx":3808
  428.             Key             =   "bcgs"
  429.          EndProperty
  430.          BeginProperty ListImage12 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  431.             Picture         =   "基础设置_项目设置.frx":3BA2
  432.             Key             =   "mrlk"
  433.          EndProperty
  434.          BeginProperty ListImage13 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  435.             Picture         =   "基础设置_项目设置.frx":3F3C
  436.             Key             =   "xsxm"
  437.          EndProperty
  438.          BeginProperty ListImage14 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  439.             Picture         =   "基础设置_项目设置.frx":42D6
  440.             Key             =   "first"
  441.          EndProperty
  442.          BeginProperty ListImage15 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  443.             Picture         =   "基础设置_项目设置.frx":4670
  444.             Key             =   "prev"
  445.          EndProperty
  446.          BeginProperty ListImage16 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  447.             Picture         =   "基础设置_项目设置.frx":4A0A
  448.             Key             =   "next"
  449.          EndProperty
  450.          BeginProperty ListImage17 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  451.             Picture         =   "基础设置_项目设置.frx":4DA4
  452.             Key             =   "last"
  453.          EndProperty
  454.          BeginProperty ListImage18 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  455.             Picture         =   "基础设置_项目设置.frx":513E
  456.             Key             =   "xx"
  457.          EndProperty
  458.          BeginProperty ListImage19 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  459.             Picture         =   "基础设置_项目设置.frx":54D8
  460.             Key             =   "define"
  461.          EndProperty
  462.          BeginProperty ListImage20 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  463.             Picture         =   "基础设置_项目设置.frx":5872
  464.             Key             =   "exec"
  465.          EndProperty
  466.          BeginProperty ListImage21 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  467.             Picture         =   "基础设置_项目设置.frx":5C0C
  468.             Key             =   "xz"
  469.          EndProperty
  470.          BeginProperty ListImage22 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  471.             Picture         =   "基础设置_项目设置.frx":5FA6
  472.             Key             =   "sc"
  473.          EndProperty
  474.          BeginProperty ListImage23 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  475.             Picture         =   "基础设置_项目设置.frx":6340
  476.             Key             =   "sx"
  477.          EndProperty
  478.          BeginProperty ListImage24 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  479.             Picture         =   "基础设置_项目设置.frx":66DA
  480.             Key             =   "cx"
  481.          EndProperty
  482.          BeginProperty ListImage25 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  483.             Picture         =   "基础设置_项目设置.frx":6A74
  484.             Key             =   "zd"
  485.          EndProperty
  486.          BeginProperty ListImage26 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  487.             Picture         =   "基础设置_项目设置.frx":6E0E
  488.             Key             =   "dz"
  489.          EndProperty
  490.          BeginProperty ListImage27 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  491.             Picture         =   "基础设置_项目设置.frx":71A8
  492.             Key             =   "ph"
  493.          EndProperty
  494.          BeginProperty ListImage28 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  495.             Picture         =   "基础设置_项目设置.frx":7542
  496.             Key             =   "fz"
  497.          EndProperty
  498.          BeginProperty ListImage29 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  499.             Picture         =   "基础设置_项目设置.frx":78DC
  500.             Key             =   "dw"
  501.          EndProperty
  502.       EndProperty
  503.    End
  504.    Begin VB.Label Lbl_Count 
  505.       AutoSize        =   -1  'True
  506.       BackStyle       =   0  'Transparent
  507.       Caption         =   "Label4"
  508.       Height          =   180
  509.       Left            =   6960
  510.       TabIndex        =   9
  511.       Top             =   720
  512.       Width           =   540
  513.    End
  514. End
  515. Attribute VB_Name = "Item_FrmSet"
  516. Attribute VB_GlobalNameSpace = False
  517. Attribute VB_Creatable = False
  518. Attribute VB_PredeclaredId = True
  519. Attribute VB_Exposed = False
  520. '*******************************************************
  521. '*    模 块 名 称 :项目设置
  522. '*    功 能 描 述 :录入工资项目、考勤项目。
  523. '*    程序员姓名  :田建秀
  524. '*    最后修改人  :田建秀
  525. '*    最后修改时间:2001/11/30
  526. '*    备        注:
  527. '*******************************************************
  528. Dim Rec_CodeSet As New ADODB.Recordset   '编码设置表
  529. Dim jdzygs As Integer                    '控件焦点转移个数
  530. Dim Lrzt As Integer                      '录入状态标志(0-非录入状态 1-增加 2-修改)
  531. Dim ReportTitle As String                '报表主标题
  532. Dim sID As Integer                       '标识是 3 工资项目、4 考勤项目,
  533. Dim TableName As String
  534. Dim ItemIde As String
  535. Dim Str_RightEdit As String              '编辑(新增、修改、删除)权限索引
  536. '以下为固定使用变量(网格)
  537. Dim Cxnrrec As New ADODB.Recordset       '显示查询内容动态集
  538. Dim Dyymctbl As New DY_Dyymsz            '打印页面窗体变量
  539. Dim GridCode As String                   '显示网格网格代码
  540. Dim GridInf() As Variant                 '整个网格设置信息
  541. Dim Tsxx As String                       '系统提示信息
  542. Dim Qslz As Long                         '网格隐藏(非操作显示)列数
  543. Dim Sjhgd As Double                      '网格数据行高度
  544. Dim GridBoolean() As Boolean             '网格列信息(布尔型)
  545. Dim GridStr()  As String                 '网格列信息(字符型)
  546. Dim GridInt() As Integer                 '网格列信息(整型)
  547. Dim Szzls As Integer                     '数组总列数(网格列数-1)
  548. '以下为固定使用变量(文本框)
  549. Dim Textvar() As Variant                 '存储变体型文本框信息
  550. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  551. Dim Textint() As Integer                 '存储整型文本框信息
  552. Dim Textstr() As String                  '存储字符型文本框信息
  553. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  554. Dim TextGroupCode As String              '文本框录入分组编码
  555. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  556. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  557. Dim CurTextIndex As Integer              '当前文本框索引值
  558. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  559. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  560. Private Sub Cbo_ItemClass_click()
  561.     Select Case Trim(Cbo_ItemClass)
  562.         Case "工资项目"
  563.             sID = 3
  564.         Case "考勤项目"
  565.             sID = 4
  566.     End Select
  567.     TableItem
  568.     Cxnrtcwg
  569. End Sub
  570. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  571.     jdzygs = 10
  572.     
  573.     Select Case KeyAscii
  574.         Case vbKeyReturn
  575.             If Kjjdzy(jdzygs) Then
  576.                 KeyAscii = 0
  577.             End If
  578.         Case 39           '屏蔽"'"
  579.             KeyAscii = 0
  580.    End Select
  581.    
  582. End Sub
  583. Private Sub Form_Load()
  584.   
  585.     '打印报表标题信息
  586.     ReportTitle = "项 目 设 置"
  587.      
  588.     '调入打印页面设置窗体
  589.     XtReportCode = "pm_Item"
  590.     Load Dyymctbl
  591.     
  592.     '填充组合框
  593.     Call FillCombo(Cbo_ItemClass, "pm_Item", "", 0)
  594.     sID = 3
  595.     TableItem
  596.     '以下为文本框处理程序(读入文本框录入信息)
  597.     TextGroupCode = "pm_Item"
  598.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())
  599.     Call Wbkcsh
  600.     
  601.     '调入网格设置信息
  602.     GridCode = "pm_Item"
  603.     Call BzWgcsh(CzxsGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  604.     Qslz = GridInf(1)
  605.     Sjhgd = GridInf(2)
  606.     Szzls = CzxsGrid.Cols - 1
  607.     CzxsGrid.TextMatrix(0, 0) = "项目编号"
  608.     CzxsGrid.TextMatrix(0, 1) = "项目字段名"
  609.     CzxsGrid.ColWidth(0) = 500
  610.     '填 充 网 格
  611.     Call Cxnrtcwg
  612.        
  613.     '初始化toolbar,tab卡状态
  614.     StTab.Tab = 0
  615.     StTab.TabEnabled(1) = False
  616.     Frame1.Enabled = False
  617.      
  618.     '设置为非录入状态
  619.     Lrzt = 0
  620.     '编辑(新增、修改、删除)权限索引
  621.     Str_RightEdit = "Pm_Item_edit"
  622. End Sub
  623.  
  624. Private Sub Cxnrtcwg()                               '查询内容填充网格
  625.     Dim Sqlstr As String              '查询连接串
  626.     Dim jsqte As Long                 '查询临时使用变量
  627.   
  628.     '为加快显示速度,将网格刷新动作冻结
  629.     CzxsGrid.Redraw = False
  630.   
  631.     '[>>查询连接串
  632.     Sqlstr = "SELECT * FROM rs_items where sid=" & sID & " order by ItemId"
  633.     '<<]
  634.     Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  635.     
  636.     With Cxnrrec
  637.         CzxsGrid.Rows = CzxsGrid.FixedRows
  638.         If .EOF And .BOF Then
  639.             CzxsGrid.Redraw = True
  640.             Lbl_Count.Caption = "共" & .RecordCount & "项"
  641.             Exit Sub
  642.         End If
  643.         
  644.         jsqte = CzxsGrid.FixedRows
  645.         
  646.         Do While Not .EOF
  647.             CzxsGrid.AddItem ""
  648.             Call Jltcwg(Cxnrrec, jsqte)                              '调入填充网格子过程
  649.             CzxsGrid.RowHeight(jsqte) = Sjhgd                        '设置网格高度
  650.             .MoveNext
  651.             jsqte = jsqte + 1
  652.         Loop
  653.         Lbl_Count.Caption = "共" & .RecordCount & "项"
  654.     End With
  655.   
  656.     '将网格刷新动作解冻
  657.     CzxsGrid.Redraw = True
  658.     
  659. End Sub
  660. Private Sub Jltcwg(Jlbrec As ADODB.Recordset, Rowjsq As Long)           '记录内容填充网格
  661.     '[>>以下为自定义部分
  662.     With Jlbrec
  663.         CzxsGrid.TextMatrix(Rowjsq, 0) = .Fields("ItemId")
  664.         CzxsGrid.TextMatrix(Rowjsq, 1) = Trim(.Fields("FieldName")) & ""
  665.         CzxsGrid.TextMatrix(Rowjsq, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("ChName") & "")            '项目名称
  666.         CzxsGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("FieldLength") & "")       '项目长度
  667.         CzxsGrid.TextMatrix(Rowjsq, Sydz("003", GridStr(), Szzls)) = Trim(.Fields("FieldDotL") & "")         '小数位数
  668.         CzxsGrid.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("YnRoot") & "")            '是否固定项
  669.     End With
  670.     '以上为自定义部分<<]
  671.     
  672. End Sub
  673. Private Sub Form_Unload(Cancel As Integer)             '窗体卸载
  674.     Set Cxnrrec = Nothing
  675.     Set Rec_CodeSet = Nothing
  676.     Unload Dyymctbl
  677.    
  678. End Sub
  679. Private Sub TableItem()
  680.     '确定不同项目类型的表名、项目字段名的前四位数字
  681.     Select Case sID
  682.         Case 3
  683.             TableName = "PM_Payroll"
  684.             ItemIde = "Wage"
  685.         Case 4
  686.             TableName = "PM_AttendRecord"
  687.             ItemIde = "Atte"
  688.     End Select
  689. End Sub
  690. Private Function Bclrsj() As Boolean                   '判断录入数据有效性,并保存数据
  691.     Dim jsqte As Integer
  692.     Dim Rsc As New ADODB.Recordset
  693.                         '项目字段名类型标识
  694.   
  695.     '对文本框录入内容进行为零和为空判断(固定不变)
  696.     With Rec_CodeSet
  697.     
  698.         For jsqte = 0 To Max_Text_Index
  699.             If Textint(jsqte, 8) = 1 Then     '字段不能为空
  700.                 If Len(Trim(LrText(jsqte).Text)) = 0 Then
  701.                     Tsxx = Textstr(jsqte, 7) & "不能为空!"
  702.                     Call Xtxxts(Tsxx, 0, 1)
  703.                     LrText(jsqte).SetFocus
  704.                     Bclrsj = False
  705.                     Exit Function
  706.                 End If
  707.             Else
  708.                 If Textint(jsqte, 8) = 2 Then   '字段不能为零
  709.                     If Val(Trim(LrText(jsqte).Text)) = 0 Then
  710.                         Tsxx = Textstr(jsqte, 7) & "不能为零!"
  711.                         Call Xtxxts(Tsxx, 0, 1)
  712.                         LrText(jsqte).SetFocus
  713.                         Bclrsj = False
  714.                         Exit Function
  715.                     End If
  716.                 End If
  717.             End If
  718.         Next jsqte
  719.     
  720.         '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  721.         For jsqte = 0 To Max_Text_Index
  722.             If Textint(jsqte, 9) = 0 Or Textint(jsqte, 9) = 2 Then
  723.                 If Not TextYxxpd(jsqte) Then
  724.                     Exit Function
  725.                 End If
  726.             End If
  727.         Next jsqte
  728.         
  729.         '项目名称不能数字
  730.         If IsNumeric(LrText(0)) Then
  731.             Call Xtxxts("项目名称不能是纯粹的数字!", 0, 1)
  732.             LrText(0).SetFocus
  733.             LrText(0).SelStart = 0
  734.             LrText(0).SelLength = Len(Trim(LrText(0).Text))
  735.             Exit Function
  736.         End If
  737.          
  738.         '项目长度不能超过18
  739.         If Val(LrText(1)) > 18 Then
  740.             Call Xtxxts("项目长度不能超过18!", 0, 1)
  741.             LrText(1).SetFocus
  742.             LrText(1).SelStart = 0
  743.             LrText(1).SelLength = Len(Trim(LrText(1)))
  744.             Exit Function
  745.         End If
  746.         
  747.         '小数位数不能超过2
  748.         Select Case sID
  749.             Case 3
  750.                 If Val(LrText(2)) > 2 Then
  751.                     Call Xtxxts("工资项目小数位数不能超过2!", 0, 1)
  752.                     LrText(2).SetFocus
  753.                     LrText(2).SelStart = 0
  754.                     LrText(2).SelLength = Len(Trim(LrText(2)))
  755.                     Exit Function
  756.                 End If
  757.             Case 4
  758.                 If Val(LrText(2)) > 3 Then
  759.                     Call Xtxxts("考勤项目小数位数不能超过3!", 0, 1)
  760.                     LrText(2).SetFocus
  761.                     LrText(2).SelStart = 0
  762.                     LrText(2).SelLength = Len(Trim(LrText(2)))
  763.                     Exit Function
  764.                 End If
  765.         End Select
  766.         
  767.         '小数位数不能超过项目长度
  768.         If Val(LrText(2)) > Val(LrText(1)) Then
  769.             Call Xtxxts("小数位数不能超过项目长度!", 0, 1)
  770.             Exit Function
  771.         End If
  772.         
  773.        
  774.         
  775.         Call TableItem
  776.         
  777.         If Lrzt = 1 Then  '增 加
  778.         
  779.             '[>>
  780.             '判断名称是否重复
  781.             If .State = 1 Then .Close
  782.             .Open "SELECT * FROM Rs_Items WHERE ChName= '" + Trim(LrText(0).Text) + "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  783.     
  784.             If Not .EOF Then
  785.                 Tsxx = "项目名称重复!"
  786.                 Call Xtxxts(Tsxx, 0, 1)
  787.                 LrText(1).SetFocus
  788.                 Bclrsj = False
  789.                 Exit Function
  790.             End If
  791.         
  792.         
  793.             '判断记录内容无误后,将记录内容写入数据表
  794.             On Error GoTo Swcwcl
  795.             Cw_DataEnvi.DataConnect.BeginTrans
  796.             If Rsc.State = 1 Then Rsc.Close
  797.             Set Rsc = Cw_DataEnvi.DataConnect.Execute("select Itemid from Rs_Items  order by ItemId desc ")
  798.             With Rsc
  799.                 If Not .EOF Then
  800.                    ItemId = !ItemId + 1
  801.                 Else
  802.                    ItemId = "1"
  803.                 End If
  804.             End With
  805.             
  806.             '存储到Rs_Items表中
  807.             .AddNew
  808.             .Fields("ItemID") = ItemId                  '项目编码
  809.             .Fields("Sid") = sID
  810.             .Fields("FieldType") = 5
  811.             .Fields("ChName") = Trim(LrText(0).Text)    '项目名称
  812.             .Fields("FieldName") = ItemIde & ItemId
  813.             .Fields("FieldLength") = Val(Trim(LrText(1).Text))    '项目长度
  814.             If Trim(LrText(2).Text) = "" Then
  815.                 .Fields("FieldDotL") = 0
  816.             Else
  817.                 .Fields("FieldDotL") = Val(Trim(LrText(2).Text))     '项目小数位
  818.             End If
  819.             .Fields("YnRoot") = 0
  820.             .Fields("TableName") = TableName
  821.             .Update
  822.             '修改pm_Payroll的表结构
  823.             Sql = "alter table " & TableName & " add  " & ItemIde & ItemId & " numeric(" & Val(LrText(1)) & "," & Val(LrText(2)) & ") " & _
  824.                   " null constraint DF_" & ItemIde & ItemId & " default(0)"
  825.             Cw_DataEnvi.DataConnect.Execute Sql
  826.             Sql = " update " & TableName & " set " & ItemIde & ItemId & "=0"
  827.             Cw_DataEnvi.DataConnect.Execute Sql
  828.             Cw_DataEnvi.DataConnect.CommitTrans
  829.             '将记录加入网格
  830.             Sqlstr = "SELECT * FROM Rs_Items WHERE ItemId= " & ItemId
  831.             Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  832.    
  833.             With CzxsGrid
  834.                 .AddItem ""
  835.                 .RowHeight(.Rows - 1) = Sjhgd
  836.                 .Select .Rows - 1, Qslz
  837.                 Call Jltcwg(Cxnrrec, .Rows - 1)
  838.             End With
  839.             Tsxx = "保存完毕!"
  840.             Call Xtxxts(Tsxx, 0, 4)
  841.             
  842.             Call Cshlrxx(1)
  843.             LrText(0).SetFocus
  844.             '将网格按编码排序
  845.             With CzxsGrid
  846.                 .Col = 0
  847.                 CzxsGrid.Sort = flexSortNumericAscending
  848.             End With
  849.             Lbl_Count.Caption = "共" & CzxsGrid.Rows - CzxsGrid.FixedRows & "项"
  850.             '<<]
  851.     
  852.         Else  '否则为修改记录
  853.  
  854.             On Error GoTo Swcwcl
  855.             If .State = 1 Then .Close
  856.             .Open "select * from rs_Items where ChName='" & Trim(LrText(0)) & "' and ItemID<>" & Val(CzxsGrid.TextMatrix(CzxsGrid.Row, 0)), Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  857.             If Not .EOF Then
  858.                 Call Xtxxts("项目名称重复!", 0, 1)
  859.                 Exit Function
  860.             End If
  861.             Cw_DataEnvi.DataConnect.BeginTrans
  862.             ItemId = Val(CzxsGrid.TextMatrix(CzxsGrid.Row, 0))
  863.             If .State = 1 Then .Close
  864.             .Open "SELECT * FROM rs_Items WHERE ItemId= " & ItemId, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  865.      
  866.             If Not .EOF Then
  867.                 .Fields("ChName") = Trim(LrText(0).Text)         '项目名称
  868.                 .Fields("FieldLength") = Val(Trim(LrText(1).Text))    '项目长度
  869.                 If Trim(LrText(2).Text) = "" Then
  870.                     .Fields("FieldDotL") = 0
  871.                 Else
  872.                     .Fields("FieldDotL") = Val(Trim(LrText(2).Text))     '项目小数位
  873.                 End If
  874.                 .Update
  875.             End If
  876.             Sql = "alter table " & TableName & " alter column " & Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, 1)) & " numeric(" & Val(LrText(1)) & "," & _
  877.                   Val(LrText(2)) & ")"
  878.             Cw_DataEnvi.DataConnect.Execute Sql
  879.             Cw_DataEnvi.DataConnect.CommitTrans
  880.    
  881.             '刷新当前网格
  882.             Sqlstr = "SELECT * FROM Rs_Items WHERE ItemID= " & ItemId
  883.             Set Cxnrrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  884.    
  885.             With CzxsGrid
  886.                 Call Jltcwg(Cxnrrec, .Row)
  887.             End With
  888.    
  889.         End If
  890.      
  891.         '保存记录成功,函数返回真值
  892.         Bclrsj = True
  893.         Exit Function
  894.         
  895.     End With
  896.  
  897. Swcwcl:
  898.      Cw_DataEnvi.DataConnect.RollbackTrans
  899.      If Err.Number = -2147217833 Then
  900.          Tsxx = Trim(LrText(0)) & "的位数小于数据表中已有数据的位数!"
  901.      Else
  902.          Tsxx = "存盘过程中出现错误,程序自动恢复保存前状态!"
  903.      End If
  904.      Call Xtxxts(Tsxx, 0, 1)
  905.      
  906.      Exit Function
  907.      
  908. End Function
  909. Private Function Cshlrxx(lrztxx As Integer) As Boolean              '初始化录入字段信息
  910.     TextChangeLock = True       '关闭文本框Chang事件
  911.     
  912.     If lrztxx = 1 Then
  913.     
  914.         '增加新记录时将文本框清空
  915.         For jsqte = 0 To Max_Text_Index
  916.             If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
  917.                 LrText(jsqte).Text = ""
  918.                 LrText(jsqte).Tag = ""
  919.             End If
  920.             TextValiJudgeLock(jsqte) = True
  921.         Next jsqte
  922.        
  923.         '[>>
  924.         '在此处可添加新增记录时初始化设置
  925.         '<<]
  926.     Else
  927.     
  928.         '修改记录时根据记录关键字(编码)从数据表中读入其他字段内容
  929.         With RecTemp
  930.             Sqlstr = "SELECT * FROM Rs_Items Where ItemID=" & Val(Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, 0)))
  931.             Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  932.        
  933.             '记录如存在则读入其内容,否则提示记录已被其他人删除
  934.             If Not RecTemp.EOF Then
  935.                 LrText(0).Text = Trim(.Fields("ChName") & "")          '项目名称
  936.                 LrText(1).Text = .Fields("FieldLength")                '项目长度
  937.                 LrText(2).Text = .Fields("FieldDotL")                  '小数位数
  938.             Else
  939.                 Tsxx = "该记录已经被其他人删除,请刷新当前数据!"
  940.                 Call Xtxxts(Tsxx, 0, 4)
  941.                 Call Cancel
  942.                 TextChangeLock = False
  943.                 Exit Function
  944.             End If
  945.         End With
  946.     End If
  947.     
  948.     Cshlrxx = True
  949.     TextChangeLock = False
  950.     
  951. End Function
  952. Private Sub Scdqjl()                 '删 除 当 前 记 录
  953.     Dim Yhanswer As Integer
  954.     Dim Rsc As New ADODB.Recordset
  955.   
  956.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  957.     If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  958.          Exit Sub
  959.     End If
  960.     
  961.     '非数据行不能删除
  962.     If CzxsGrid.Row < CzxsGrid.FixedRows Then
  963.         Exit Sub
  964.     End If
  965.     
  966.     With CzxsGrid
  967.         If Trim(.TextMatrix(.Row, Sydz("004", GridStr(), Szzls))) = True Then
  968.             Call Xtxxts("固定项目不能删除!", 0, 1)
  969.             Exit Sub
  970.         End If
  971.     End With
  972.     '用户确认是否删除记录
  973.     Tsxx = "请确认是否删除当前记录?"
  974.     Yhanswer = Xtxxts(Tsxx, 2, 2)
  975.     
  976.     If Yhanswer = 2 Then
  977.         Exit Sub
  978.     End If
  979.     
  980.     '[>>以下需自定义部分
  981.     '当类别项目表中引用工资项目时,该工资项目不可删除。
  982.     If sID = 3 Then
  983.         If Rsc.State = 1 Then Rsc.Close
  984.         Set Rsc = Cw_DataEnvi.DataConnect.Execute("select * from Pm_SortItem where ItemId=" & CzxsGrid.TextMatrix(CzxsGrid.Row, 0))
  985.         If Not Rsc.EOF Then
  986.            Call Xtxxts(CzxsGrid.TextMatrix(CzxsGrid.Row, Sydz("001", GridStr(), Szzls)) & "已被工资类别引用,不能删除!", 0, 1)
  987.            Exit Sub
  988.         End If
  989.     End If
  990.     '当公式内容、限定条件、报表的显示项目中使用考勤项目、考勤表中该项目有数据时,该考勤项目不可删除。
  991.     If sID = 4 Then
  992.         With CzxsGrid
  993.             '判断公式内容
  994.             If Rsc.State = 1 Then Rsc.Close
  995.             Sql = "select * from Pm_Formula where charIndex('" & .TextMatrix(.Row, 1) & "',Fcontent,0)<>0 "
  996.             Set Rsc = Cw_DataEnvi.DataConnect.Execute(Sql)
  997.             If Not Rsc.EOF Then
  998.                Call Xtxxts(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls)) & "在公式中用到,不能删除!", 0, 1)
  999.                Exit Sub
  1000.             End If
  1001.             '判断公式的限定条件
  1002.             If Rsc.State = 1 Then Rsc.Close
  1003.             Sql = "select * from Pm_Formula where charIndex('" & .TextMatrix(.Row, 1) & "',Flimit,0)<>0 "
  1004.             Set Rsc = Cw_DataEnvi.DataConnect.Execute(Sql)
  1005.             If Not Rsc.EOF Then
  1006.                Call Xtxxts(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls)) & "在公式的限定条件中用到,不能删除!", 0, 1)
  1007.                Exit Sub
  1008.             End If
  1009.             '判断标准表的限定条件
  1010.             If Rsc.State = 1 Then Rsc.Close
  1011.             Sql = "select * from Pm_StandTbl where charIndex('" & .TextMatrix(.Row, 1) & "',BzbCond,0)<>0 "
  1012.             Set Rsc = Cw_DataEnvi.DataConnect.Execute(Sql)
  1013.             If Not Rsc.EOF Then
  1014.                Call Xtxxts(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls)) & "在标准表的限定条件中用到,不能删除!", 0, 1)
  1015.                Exit Sub
  1016.             End If
  1017.             '判断报表的项目
  1018.             If Rsc.State = 1 Then Rsc.Close
  1019.             Sql = "select * from Pm_ReportItem where FieldName='" & .TextMatrix(.Row, 1) & "'"
  1020.             Set Rsc = Cw_DataEnvi.DataConnect.Execute(Sql)
  1021.             If Not Rsc.EOF Then
  1022.                Call Xtxxts(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls)) & "在报表的项目中用到,不能删除!", 0, 1)
  1023.                Exit Sub
  1024.             End If
  1025.             '判断考勤表中是否该项目是否有数据
  1026.             If Rsc.State = 1 Then Rsc.Close
  1027.             Sql = "select * from Pm_AttendRecord where " & .TextMatrix(.Row, 1) & "<>0 "
  1028.             Set Rsc = Cw_DataEnvi.DataConnect.Execute(Sql)
  1029.             If Not Rsc.EOF Then
  1030.                Call Xtxxts(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls)) & "在考勤数据表中有数据,不能删除!", 0, 1)
  1031.                Exit Sub
  1032.             End If
  1033.         End With
  1034.     End If
  1035.     
  1036.     On Error GoTo Cwcl
  1037.     
  1038.     Cw_DataEnvi.DataConnect.BeginTrans
  1039.     Sql = "delete Rs_Items where ItemID = " + Trim(CzxsGrid.TextMatrix(CzxsGrid.Row, 0))
  1040.     Cw_DataEnvi.DataConnect.Execute Sql
  1041.     Sql = " alter table " & TableName & " drop constraint  DF_" & CzxsGrid.TextMatrix(CzxsGrid.Row, 1)
  1042.     Sql = Sql & " alter table " & TableName & " drop column " & CzxsGrid.TextMatrix(CzxsGrid.Row, 1)
  1043.     Cw_DataEnvi.DataConnect.Execute Sql
  1044.     '以上为自定义部分<<]
  1045.   
  1046.     Cw_DataEnvi.DataConnect.CommitTrans
  1047.     CzxsGrid.RemoveItem CzxsGrid.Row
  1048.     Lbl_Count.Caption = "共" & CzxsGrid.Rows - CzxsGrid.FixedRows & "项"
  1049.     Exit Sub
  1050.   
  1051. Cwcl:
  1052.     Cw_DataEnvi.DataConnect.RollbackTrans
  1053.     
  1054.     If Err.Number = -2147217873 Then                '(-2147217873 为SQL Server 2000通过建立外键产生的错误号)
  1055.         Tsxx = "该编码已经被使用,不能删除!"
  1056.         Call Xtxxts(Tsxx, 0, 1)
  1057.         Exit Sub
  1058.     Else
  1059.         Tsxx = "出现未知情况,该编码不能被删除!"
  1060.         Call Xtxxts(Tsxx, 0, 1)
  1061.         Exit Sub
  1062.     End If
  1063.     
  1064. End Sub
  1065. '*******************以下区域为编写自定义过程区域**********************
  1066. '*******************以上区域为编写自定义过程区域**********************
  1067. '******************以下为基本处理程序(固定不变)************************'
  1068. Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)        '支持热键操作
  1069.     If Shift = 2 Then
  1070.         Select Case UCase(Chr(KeyCode))
  1071.             Case "P"                                                                          'Ctrl+P 打印
  1072.                 If SzToolbar.Buttons("dy").Visible And SzToolbar.Buttons("dy").Enabled Then
  1073.                     Call bbyl(False)
  1074.                 End If
  1075.             Case "A"                                                                          'Ctrl+A 增加
  1076.                 '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  1077.                 If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  1078.                     Exit Sub
  1079.                 End If
  1080.                 If SzToolbar.Buttons("zj").Visible And SzToolbar.Buttons("zj").Enabled Then
  1081.                     Call Toolbjzt
  1082.                     Lrzt = 1
  1083.                     Call Cshlrxx(Lrzt)
  1084.                     LrText(0).SetFocus
  1085.                     LrText(0).Enabled = True
  1086.                 End If
  1087.             Case "D"                                                                          'Ctrl+D 删除
  1088.                 If SzToolbar.Buttons("sc").Visible And SzToolbar.Buttons("sc").Enabled Then
  1089.                     Call Scdqjl
  1090.                 End If
  1091.         End Select
  1092.     End If
  1093.     
  1094. End Sub
  1095. Private Sub SzToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)
  1096.    
  1097.     Select Case Button.Key
  1098.         Case "ymsz"                                          '页面设置
  1099.             Dyymctbl.Show 1
  1100.         Case "yl"                                            '预 览
  1101.             Call bbyl(True)
  1102.         Case "dy"                                            '打 印
  1103.             Call bbyl(False)
  1104.         Case "zj"                                            '增 加
  1105.             '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  1106.             If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  1107.                 Exit Sub
  1108.             End If
  1109.             Call Toolbjzt
  1110.             Lrzt = 1
  1111.             Call Cshlrxx(Lrzt)
  1112.             LrText(0).Enabled = True
  1113.             LrText(1).Enabled = True
  1114.             LrText(0).SetFocus
  1115.         Case "xg"                                            '修 改
  1116.             Call Xgdqjl
  1117.         Case "sc"                                            '删 除
  1118.             Call Scdqjl
  1119.         Case "sx"                                            '刷 新
  1120.             Call Cxnrtcwg
  1121.         Case "bz"                                            '帮 助
  1122.             Call F1bz
  1123.         Case "fh"                                            '退 出
  1124.             Unload Me
  1125.         End Select
  1126.         
  1127. End Sub
  1128. Private Sub CzxsGrid_DblClick()                            '修改当前编码记录
  1129.     Call Xgdqjl
  1130.   
  1131. End Sub
  1132. Private Sub Xgdqjl()                                       '修改当前编码记录
  1133.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  1134.     If Not Security_Log(Str_RightEdit, Xtczybm, 1, True, False) Then
  1135.         BcCommand.Enabled = False
  1136.     End If
  1137.     
  1138.     If CzxsGrid.Row < CzxsGrid.FixedRows Then
  1139.         Exit Sub
  1140.     End If
  1141.    
  1142.     Call Toolbjzt
  1143.     Lrzt = 2
  1144.     
  1145.     If Cshlrxx(Lrzt) Then
  1146.         LrText(1).Enabled = True
  1147.         With CzxsGrid
  1148.             If Trim(.TextMatrix(.Row, Sydz("004", GridStr(), Szzls))) = True Then
  1149.                 LrText(0).Enabled = False
  1150.                 LrText(1).SetFocus
  1151.             Else
  1152.                 LrText(0).Enabled = True
  1153.                 LrText(0).SetFocus
  1154.             End If
  1155.         End With
  1156.     End If
  1157.   
  1158. End Sub
  1159. Private Sub Toolbjzt()                                     'Toolbar状态(编辑状态)
  1160.     StTab.TabEnabled(1) = True
  1161.     StTab.Tab = 1
  1162.     Frame1.Enabled = True
  1163.     StTab.TabEnabled(0) = False
  1164.     CzxsGrid.Enabled = False
  1165.   
  1166.     With SzToolbar
  1167.         .Buttons("ymsz").Enabled = False
  1168.         .Buttons("dy").Enabled = False
  1169.         .Buttons("yl").Enabled = False
  1170.         .Buttons("zj").Enabled = False
  1171.         .Buttons("xg").Enabled = False
  1172.         .Buttons("sc").Enabled = False
  1173.         .Buttons("sx").Enabled = False
  1174.     End With
  1175.     Cbo_ItemClass.Enabled = False
  1176. End Sub
  1177. Private Sub Toolfbjzt()                                    'Toolbar状态(非编辑状态)
  1178.     StTab.TabEnabled(0) = True
  1179.     StTab.Tab = 0
  1180.     CzxsGrid.Enabled = True
  1181.     Frame1.Enabled = False
  1182.     StTab.TabEnabled(1) = False
  1183.     Lrzt = 0
  1184.     
  1185.     With SzToolbar
  1186.         .Buttons("ymsz").Enabled = True
  1187.         .Buttons("dy").Enabled = True
  1188.         .Buttons("yl").Enabled = True
  1189.         .Buttons("zj").Enabled = True
  1190.         .Buttons("xg").Enabled = True
  1191.         .Buttons("sc").Enabled = True
  1192.         .Buttons("sx").Enabled = True
  1193.     End With
  1194.     Cbo_ItemClass.Enabled = True
  1195. End Sub
  1196. Private Sub BcCommand_Click()                                           '保 存
  1197.     If Not Bclrsj Then
  1198.         Exit Sub
  1199.     End If
  1200.   
  1201.     If Lrzt = 2 Then
  1202.         Call Toolfbjzt
  1203.     End If
  1204.   
  1205. End Sub
  1206. Private Sub QxCommand_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)       '取消
  1207.   
  1208.     '避免执行Click程序
  1209.     Bln_Cancel = True
  1210.   
  1211.     Call Cancel
  1212.     
  1213. End Sub
  1214. Private Sub QxCommand_Click()                                                                         '取消
  1215.  
  1216.     If Bln_Cancel Then
  1217.         Bln_Cancel = False
  1218.         Exit Sub
  1219.     End If
  1220.  
  1221.     Call Cancel
  1222.     
  1223. End Sub
  1224. Private Sub Cancel()                                                                                  '取消
  1225.   
  1226.     '文本框加锁
  1227.     For jsqte = 0 To Max_Text_Index
  1228.         TextValiJudgeLock(jsqte) = True
  1229.     Next jsqte
  1230.   
  1231.     Call Toolfbjzt
  1232.     
  1233. End Sub
  1234. Private Sub CzxsGrid_BeforeMoveColumn(ByVal Col As Long, Position As Long)           '网格列发生移动时自动交换网格索引信息
  1235.     
  1236.     FnBln_RefreshArray Col, Position, GridStr(), GridInf()
  1237. End Sub
  1238. Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)   '表格格式设置(通用)
  1239.     
  1240.     Select Case Button.Key
  1241.         Case "bcgs"                                       '保存表格格式
  1242.             Call Bcwggs(CzxsGrid, GridCode, GridStr())
  1243.         Case "hfmrgs"                                     '恢复默认格式
  1244.             Call Hfmrgs(CzxsGrid, GridCode, GridStr())
  1245.         Case "szxsxm"                                     '设置显示项目
  1246.             Call Szxsxm(CzxsGrid, GridCode)
  1247.     End Select
  1248.     
  1249. End Sub
  1250. Private Sub bbyl(bbylte As Boolean)                    '报表打印预览
  1251.     Dim Bbzbt$, Bbxbt() As String, bbxbtzzxs() As Integer, Bbxbtgs As Integer
  1252.     Dim Bbbwh() As String, Bbbwhzzxs() As Integer, Bbbwhgs As Integer
  1253.     Bbxbtgs = 1                                          '报 表 小 标 题 行 数
  1254.     Bbbwhgs = 0                                          '报 表 表 尾 行 数
  1255.     ReDim Bbxbt(1 To Bbxbtgs)
  1256.     ReDim bbxbtzzxs(1 To Bbxbtgs)
  1257.     
  1258.     If Bbbwhgs <> 0 Then
  1259.         ReDim Bbbwh(1 To Bbbwhgs)
  1260.         ReDim Bbbwhzzxs(1 To Bbbwhgs)
  1261.     End If
  1262.     
  1263.     Bbzbt = ReportTitle
  1264.     Bbxbt(1) = " "
  1265.     bbxbtzzxs(1) = 0                                     '报表行组织形式(0-居左 1-居中 2-居右)
  1266.     
  1267.     Call Scyxsjb(CzxsGrid)                               '生成报表数据
  1268.     Call Scdybb(Dyymctbl, Bbzbt, Bbxbt(), bbxbtzzxs(), Bbxbtgs, Bbbwh(), Bbbwhzzxs(), Bbbwhgs, bbylte)
  1269.   
  1270.     If Not bbylte Then
  1271.         Unload DY_Tybbyldy
  1272.     End If
  1273.     
  1274. End Sub
  1275. '************以下为文本框录入处理程序(固定不变部分)*************'
  1276. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  1277.     '以下为依据实际情况自定义部分[
  1278.   
  1279.         '在此填写文本框录入事后处理程序
  1280.    
  1281.     ']以上为依据实际情况自定义部分
  1282.     
  1283. End Sub
  1284. Private Sub LrText_Change(Index As Integer)
  1285.     '屏蔽程序改变控制
  1286.     If TextChangeLock Then
  1287.         Exit Sub
  1288.     End If
  1289.     
  1290.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  1291.     
  1292.     '限制字段录入长度
  1293.           
  1294.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  1295.     
  1296.     Call TextChangeLimit(LrText(Index), Textint(Index, 1))  '去掉无效字符
  1297.     
  1298.     Select Case Textint(Index, 1)
  1299.         Case 8, 11      '金额型
  1300.             Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  1301.         Case 9, 12      '数量型
  1302.             Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  1303.         Case 10         '单价型
  1304.             Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  1305.         Case Else       '其他小数类型控制
  1306.             If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  1307.                 Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  1308.             End If
  1309.     End Select
  1310.         
  1311.     TextChangeLock = False '解锁
  1312.     
  1313. End Sub
  1314. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  1315.    
  1316.     Call TextShow(Index)
  1317.     CurTextIndex = Index
  1318.     LrText(Index).SelStart = Len(LrText(Index))
  1319.    
  1320. End Sub
  1321. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  1322.    
  1323.     Select Case KeyCode
  1324.          Case vbKeyF2
  1325.              Call Text_Help(Index)
  1326.     End Select
  1327.    
  1328. End Sub
  1329. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  1330.    
  1331.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  1332.     '项目名称只能是汉字、数字、字母,且不能是完全的数字
  1333.     If Index = 0 Then
  1334.         If Not (KeyAscii < 0 Or KeyAscii >= 48 And KeyAscii <= 57 Or KeyAscii >= 65 And KeyAscii <= 90 Or KeyAscii >= 97 And KeyAscii <= 122 Or KeyAscii = 8) Then
  1335.             KeyAscii = 0
  1336.         End If
  1337.     End If
  1338. End Sub
  1339. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点
  1340.     '显示相应信息但不能进行有效性判断
  1341.   
  1342. End Sub
  1343. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)     '按钮提供帮助
  1344.     
  1345.     Call Text_Help(Index)
  1346.     
  1347. End Sub
  1348. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  1349.   
  1350.     If Not Textboolean(Index, 1) Then
  1351.         Exit Sub
  1352.     End If
  1353.    
  1354.     '调用帮助
  1355.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  1356.   
  1357.     '根据设置选择显示编码和名称,并进行存储
  1358.     If Len(Xtfhcs) <> 0 Then
  1359.         If Textint(Index, 3) = 1 Then
  1360.             LrText(Index).Text = Xtfhcsfz
  1361.             LrText(Index).Tag = Xtfhcs
  1362.         Else
  1363.             LrText(Index).Text = Xtfhcs
  1364.             LrText(Index).Tag = Xtfhcsfz
  1365.         End If
  1366.     End If
  1367.    
  1368.     LrText(Index).SetFocus
  1369.     
  1370. End Sub
  1371. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  1372.     '填写文本框得到焦点,进行相应信息处理程序
  1373.    
  1374. End Sub
  1375. Private Sub Wbkcsh()                          '录入文本框初始化
  1376.     Dim jsqte As Integer
  1377.   
  1378.     '最大录入文本框索引值
  1379.     Max_Text_Index = Textvar(1)
  1380.   
  1381.     ReDim TextValiJudgeLock(Max_Text_Index)
  1382.     
  1383.     For jsqte = 0 To Max_Text_Index
  1384.      
  1385.         If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
  1386.             If Textboolean(jsqte, 1) Then
  1387.                 If jsqte <> 0 And Not Textboolean(jsqte, 3) Then
  1388.                     Load Ydcommand1(jsqte)
  1389.                 End If
  1390.                 Ydcommand1(jsqte).Visible = True
  1391.                 Ydcommand1(jsqte).Move LrText(jsqte).Left + LrText(jsqte).Width, LrText(jsqte).Top
  1392.             End If
  1393.             TextChangeLock = True
  1394.             LrText(jsqte).Text = ""
  1395.             LrText(jsqte).Tag = ""
  1396.             
  1397.             If Textint(jsqte, 5) <> 0 Then
  1398.                 LrText(jsqte).MaxLength = Textint(jsqte, 5)
  1399.             End If
  1400.             
  1401.             TextChangeLock = False
  1402.         End If
  1403.         
  1404.         TextValiJudgeLock(jsqte) = True
  1405.     Next jsqte
  1406.     
  1407. End Sub
  1408. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  1409.     Dim Sqlstr As String
  1410.     Dim Findrec As ADODB.Recordset
  1411.   
  1412.     '文本框内容未曾改变不进行有效性判断
  1413.     If TextValiJudgeLock(Index) Then
  1414.         TextYxxpd = True
  1415.         Exit Function
  1416.     End If
  1417.   
  1418.     '文本框内容为空认为有效,并清空其Tag值
  1419.     If Trim(LrText(Index)) = "" Then
  1420.         LrText(Index).Tag = ""
  1421.         Call Wbklrwbcl(Index)
  1422.         TextValiJudgeLock(Index) = True
  1423.         TextYxxpd = True
  1424.         Exit Function
  1425.     End If
  1426.   
  1427.     '可在此加入不做有效性判断的理由
  1428.   
  1429.     Select Case Textint(Index, 4)
  1430.         Case 1      '编码型
  1431.             Sqlstr = Trim(Textstr(Index, 5))
  1432.             Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  1433.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1434.          
  1435.             If Findrec.EOF Then
  1436.                 Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  1437.                 LrText(Index).SetFocus
  1438.                 Exit Function
  1439.             Else
  1440.                 Select Case Textint(Index, 3)
  1441.                     Case 0
  1442.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1443.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1444.                         End If
  1445.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1446.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1447.                         End If
  1448.                     Case 1
  1449.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1450.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1451.                         End If
  1452.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1453.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1454.                         End If
  1455.                 End Select
  1456.             End If
  1457.             
  1458.         Case 2      '日期型
  1459.             If IsDate(LrText(Index).Text) Then
  1460.                 LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  1461.                 If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  1462.                     LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  1463.                 End If
  1464.             Else
  1465.                 Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  1466.                 Call Xtxxts(Tsxx, 0, 1)
  1467.                 LrText(Index).SetFocus
  1468.                 Exit Function
  1469.             End If
  1470.             
  1471.         Case 3      '其他类型
  1472.         
  1473.     End Select
  1474.     
  1475.     '如果有效则加锁,用户不改变内容则不再进行有效性判断
  1476.     TextValiJudgeLock(Index) = True
  1477.     '调用文本框事后处理程序
  1478.     Call Wbklrwbcl(Index)
  1479.    
  1480.     '有效性判断通过则返回True
  1481.     TextYxxpd = True
  1482.    
  1483. End Function