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

企业管理

开发平台:

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