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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{D76D7128-4A96-11D3-BD95-D296DC2DD072}#1.0#0"; "VSOCX7.OCX"
  3. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  4. Begin VB.Form FrmJcsz_MidCheckStand 
  5.    BackColor       =   &H00E9F4FA&
  6.    BorderStyle     =   1  'Fixed Single
  7.    Caption         =   "中控检验标准"
  8.    ClientHeight    =   5205
  9.    ClientLeft      =   675
  10.    ClientTop       =   720
  11.    ClientWidth     =   9345
  12.    Icon            =   "基础_中控检验标准.frx":0000
  13.    KeyPreview      =   -1  'True
  14.    LinkTopic       =   "Form4"
  15.    MaxButton       =   0   'False
  16.    MinButton       =   0   'False
  17.    ScaleHeight     =   5205
  18.    ScaleWidth      =   9345
  19.    StartUpPosition =   1  '所有者中心
  20.    Begin VB.ComboBox Cmb_MName 
  21.       Enabled         =   0   'False
  22.       Height          =   300
  23.       Left            =   4200
  24.       Style           =   2  'Dropdown List
  25.       TabIndex        =   20
  26.       Top             =   1740
  27.       Width           =   1630
  28.    End
  29.    Begin VB.ComboBox Cmb_LineName 
  30.       Enabled         =   0   'False
  31.       Height          =   300
  32.       Left            =   1500
  33.       Style           =   2  'Dropdown List
  34.       TabIndex        =   19
  35.       Top             =   1740
  36.       Width           =   1630
  37.    End
  38.    Begin VB.ComboBox YdCombo 
  39.       Height          =   300
  40.       Left            =   9000
  41.       Style           =   2  'Dropdown List
  42.       TabIndex        =   7
  43.       Top             =   960
  44.       Visible         =   0   'False
  45.       Width           =   1155
  46.    End
  47.    Begin VB.CommandButton Ydcommand1 
  48.       Height          =   300
  49.       Left            =   10680
  50.       Picture         =   "基础_中控检验标准.frx":1042
  51.       Style           =   1  'Graphical
  52.       TabIndex        =   6
  53.       Top             =   600
  54.       Visible         =   0   'False
  55.       Width           =   300
  56.    End
  57.    Begin VB.Timer Timer1 
  58.       Interval        =   1
  59.       Left            =   9690
  60.       Top             =   150
  61.    End
  62.    Begin VB.TextBox Ydtext 
  63.       BackColor       =   &H80000018&
  64.       BorderStyle     =   0  'None
  65.       Height          =   330
  66.       Left            =   7710
  67.       MultiLine       =   -1  'True
  68.       TabIndex        =   5
  69.       Top             =   960
  70.       Visible         =   0   'False
  71.       Width           =   1185
  72.    End
  73.    Begin VB.CommandButton Ydcommand 
  74.       Height          =   300
  75.       Left            =   10680
  76.       Picture         =   "基础_中控检验标准.frx":13CC
  77.       Style           =   1  'Graphical
  78.       TabIndex        =   4
  79.       Top             =   990
  80.       Visible         =   0   'False
  81.       Width           =   300
  82.    End
  83.    Begin VB.TextBox LrText 
  84.       ForeColor       =   &H00000000&
  85.       Height          =   300
  86.       Index           =   0
  87.       Left            =   960
  88.       TabIndex        =   2
  89.       Text            =   "0"
  90.       Top             =   780
  91.       Width           =   1650
  92.    End
  93.    Begin MSComctlLib.Toolbar Tlb_Action 
  94.       Align           =   1  'Align Top
  95.       Height          =   570
  96.       Left            =   0
  97.       TabIndex        =   3
  98.       Top             =   0
  99.       Width           =   9345
  100.       _ExtentX        =   16484
  101.       _ExtentY        =   1005
  102.       ButtonWidth     =   820
  103.       ButtonHeight    =   953
  104.       AllowCustomize  =   0   'False
  105.       Wrappable       =   0   'False
  106.       Appearance      =   1
  107.       Style           =   1
  108.       ImageList       =   "ImageList1"
  109.       _Version        =   393216
  110.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  111.          NumButtons      =   25
  112.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  113.             Caption         =   "打印"
  114.             Key             =   "dy"
  115.             Object.ToolTipText     =   "打印当前单据或Ctrl+P"
  116.             ImageKey        =   "dy"
  117.          EndProperty
  118.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  119.             Caption         =   "预览"
  120.             Key             =   "yl"
  121.             ImageKey        =   "yl"
  122.          EndProperty
  123.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  124.             Key             =   "fgh0"
  125.             Style           =   3
  126.          EndProperty
  127.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  128.             Caption         =   "新增"
  129.             Key             =   "xz"
  130.             Object.ToolTipText     =   "新增加一张单据或F5"
  131.             ImageKey        =   "xz"
  132.          EndProperty
  133.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  134.             Caption         =   "修改"
  135.             Key             =   "xg"
  136.             Object.ToolTipText     =   "修改当前单据或F3"
  137.             ImageKey        =   "xg"
  138.          EndProperty
  139.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  140.             Caption         =   "删除"
  141.             Key             =   "sc"
  142.             Object.ToolTipText     =   "删除当前单据"
  143.             ImageKey        =   "sc"
  144.          EndProperty
  145.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  146.             Key             =   "fgh1"
  147.             Style           =   3
  148.          EndProperty
  149.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  150.             Caption         =   "增行"
  151.             Key             =   "zh"
  152.             Object.ToolTipText     =   "插入一行或Insert"
  153.             ImageKey        =   "zh"
  154.          EndProperty
  155.          BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  156.             Caption         =   "删行"
  157.             Key             =   "sh"
  158.             Object.ToolTipText     =   "删除当前记录行或Delete"
  159.             ImageKey        =   "sh"
  160.          EndProperty
  161.          BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  162.             Key             =   "fgh2"
  163.             Style           =   3
  164.          EndProperty
  165.          BeginProperty Button11 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  166.             Caption         =   "查询"
  167.             Key             =   "find"
  168.             ImageKey        =   "cx"
  169.          EndProperty
  170.          BeginProperty Button12 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  171.             Key             =   "fgh9"
  172.             Style           =   3
  173.          EndProperty
  174.          BeginProperty Button13 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  175.             Caption         =   "保存"
  176.             Key             =   "bc"
  177.             Object.ToolTipText     =   "保存单据或F6"
  178.             ImageKey        =   "bc"
  179.          EndProperty
  180.          BeginProperty Button14 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  181.             Caption         =   "放弃"
  182.             Key             =   "fq"
  183.             Object.ToolTipText     =   "放弃此次操作"
  184.             ImageKey        =   "fq"
  185.          EndProperty
  186.          BeginProperty Button15 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  187.             Enabled         =   0   'False
  188.             Object.Visible         =   0   'False
  189.             Key             =   "fgh3"
  190.             Style           =   3
  191.          EndProperty
  192.          BeginProperty Button16 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  193.             Enabled         =   0   'False
  194.             Object.Visible         =   0   'False
  195.             Caption         =   "审核"
  196.             Key             =   "shsh"
  197.             ImageKey        =   "check"
  198.          EndProperty
  199.          BeginProperty Button17 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  200.             Enabled         =   0   'False
  201.             Object.Visible         =   0   'False
  202.             Caption         =   "弃审"
  203.             Key             =   "shqs"
  204.             ImageKey        =   "qs"
  205.          EndProperty
  206.          BeginProperty Button18 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  207.             Key             =   "fgh4"
  208.             Style           =   3
  209.          EndProperty
  210.          BeginProperty Button19 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  211.             Caption         =   "首张"
  212.             Key             =   "first"
  213.             ImageKey        =   "first"
  214.          EndProperty
  215.          BeginProperty Button20 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  216.             Caption         =   "上张"
  217.             Key             =   "prev"
  218.             ImageKey        =   "prev"
  219.          EndProperty
  220.          BeginProperty Button21 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  221.             Caption         =   "下张"
  222.             Key             =   "next"
  223.             ImageKey        =   "next"
  224.          EndProperty
  225.          BeginProperty Button22 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  226.             Caption         =   "末张"
  227.             Key             =   "last"
  228.             ImageKey        =   "last"
  229.          EndProperty
  230.          BeginProperty Button23 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  231.             Key             =   "fgh5"
  232.             Style           =   3
  233.          EndProperty
  234.          BeginProperty Button24 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  235.             Caption         =   "帮助"
  236.             Key             =   "bz"
  237.             ImageKey        =   "bz"
  238.          EndProperty
  239.          BeginProperty Button25 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  240.             Caption         =   "退出"
  241.             Key             =   "fh"
  242.             ImageKey        =   "tc"
  243.          EndProperty
  244.       EndProperty
  245.       BorderStyle     =   1
  246.    End
  247.    Begin MSComctlLib.ImageList ImageList1 
  248.       Left            =   10410
  249.       Top             =   1350
  250.       _ExtentX        =   1005
  251.       _ExtentY        =   1005
  252.       BackColor       =   -2147483643
  253.       ImageWidth      =   16
  254.       ImageHeight     =   16
  255.       MaskColor       =   12632256
  256.       _Version        =   393216
  257.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  258.          NumListImages   =   37
  259.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  260.             Picture         =   "基础_中控检验标准.frx":1756
  261.             Key             =   "sz"
  262.          EndProperty
  263.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  264.             Picture         =   "基础_中控检验标准.frx":1AF0
  265.             Key             =   "dy"
  266.          EndProperty
  267.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  268.             Picture         =   "基础_中控检验标准.frx":1E8A
  269.             Key             =   "yl"
  270.          EndProperty
  271.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  272.             Picture         =   "基础_中控检验标准.frx":2224
  273.             Key             =   "xg"
  274.          EndProperty
  275.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  276.             Picture         =   "基础_中控检验标准.frx":25BE
  277.             Key             =   "zh"
  278.          EndProperty
  279.          BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  280.             Picture         =   "基础_中控检验标准.frx":2958
  281.             Key             =   "sh"
  282.          EndProperty
  283.          BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  284.             Picture         =   "基础_中控检验标准.frx":2CF2
  285.             Key             =   "bc"
  286.          EndProperty
  287.          BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  288.             Picture         =   "基础_中控检验标准.frx":308C
  289.             Key             =   "fq"
  290.          EndProperty
  291.          BeginProperty ListImage9 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  292.             Picture         =   "基础_中控检验标准.frx":3426
  293.             Key             =   "bz"
  294.          EndProperty
  295.          BeginProperty ListImage10 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  296.             Picture         =   "基础_中控检验标准.frx":37C0
  297.             Key             =   "tc"
  298.          EndProperty
  299.          BeginProperty ListImage11 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  300.             Picture         =   "基础_中控检验标准.frx":3B5A
  301.             Key             =   "bcgs"
  302.          EndProperty
  303.          BeginProperty ListImage12 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  304.             Picture         =   "基础_中控检验标准.frx":3EF4
  305.             Key             =   "mrlk"
  306.          EndProperty
  307.          BeginProperty ListImage13 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  308.             Picture         =   "基础_中控检验标准.frx":428E
  309.             Key             =   "xsxm"
  310.          EndProperty
  311.          BeginProperty ListImage14 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  312.             Picture         =   "基础_中控检验标准.frx":4628
  313.             Key             =   "first"
  314.          EndProperty
  315.          BeginProperty ListImage15 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  316.             Picture         =   "基础_中控检验标准.frx":49C2
  317.             Key             =   "prev"
  318.          EndProperty
  319.          BeginProperty ListImage16 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  320.             Picture         =   "基础_中控检验标准.frx":4D5C
  321.             Key             =   "next"
  322.          EndProperty
  323.          BeginProperty ListImage17 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  324.             Picture         =   "基础_中控检验标准.frx":50F6
  325.             Key             =   "last"
  326.          EndProperty
  327.          BeginProperty ListImage18 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  328.             Picture         =   "基础_中控检验标准.frx":5490
  329.             Key             =   "xx"
  330.          EndProperty
  331.          BeginProperty ListImage19 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  332.             Picture         =   "基础_中控检验标准.frx":582A
  333.             Key             =   "define"
  334.          EndProperty
  335.          BeginProperty ListImage20 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  336.             Picture         =   "基础_中控检验标准.frx":5BC4
  337.             Key             =   "exec"
  338.          EndProperty
  339.          BeginProperty ListImage21 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  340.             Picture         =   "基础_中控检验标准.frx":5F5E
  341.             Key             =   "xz"
  342.          EndProperty
  343.          BeginProperty ListImage22 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  344.             Picture         =   "基础_中控检验标准.frx":62F8
  345.             Key             =   "sc"
  346.          EndProperty
  347.          BeginProperty ListImage23 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  348.             Picture         =   "基础_中控检验标准.frx":6692
  349.             Key             =   "sx"
  350.          EndProperty
  351.          BeginProperty ListImage24 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  352.             Picture         =   "基础_中控检验标准.frx":6A2C
  353.             Key             =   "cx"
  354.          EndProperty
  355.          BeginProperty ListImage25 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  356.             Picture         =   "基础_中控检验标准.frx":6DC6
  357.             Key             =   "zd"
  358.          EndProperty
  359.          BeginProperty ListImage26 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  360.             Picture         =   "基础_中控检验标准.frx":7160
  361.             Key             =   "dz"
  362.          EndProperty
  363.          BeginProperty ListImage27 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  364.             Picture         =   "基础_中控检验标准.frx":74FA
  365.             Key             =   "ph"
  366.          EndProperty
  367.          BeginProperty ListImage28 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  368.             Picture         =   "基础_中控检验标准.frx":7894
  369.             Key             =   "fz"
  370.          EndProperty
  371.          BeginProperty ListImage29 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  372.             Picture         =   "基础_中控检验标准.frx":7C2E
  373.             Key             =   "dw"
  374.          EndProperty
  375.          BeginProperty ListImage30 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  376.             Picture         =   "基础_中控检验标准.frx":7FC8
  377.             Key             =   "hf"
  378.          EndProperty
  379.          BeginProperty ListImage31 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  380.             Picture         =   "基础_中控检验标准.frx":8362
  381.             Key             =   "pz"
  382.          EndProperty
  383.          BeginProperty ListImage32 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  384.             Picture         =   "基础_中控检验标准.frx":86FC
  385.             Key             =   "check"
  386.          EndProperty
  387.          BeginProperty ListImage33 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  388.             Picture         =   "基础_中控检验标准.frx":8A96
  389.             Key             =   "qs"
  390.          EndProperty
  391.          BeginProperty ListImage34 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  392.             Picture         =   "基础_中控检验标准.frx":8E30
  393.             Key             =   "fullcheck"
  394.          EndProperty
  395.          BeginProperty ListImage35 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  396.             Picture         =   "基础_中控检验标准.frx":91CA
  397.             Key             =   "qq"
  398.          EndProperty
  399.          BeginProperty ListImage36 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  400.             Picture         =   "基础_中控检验标准.frx":9564
  401.             Key             =   "bcw"
  402.          EndProperty
  403.          BeginProperty ListImage37 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  404.             Picture         =   "基础_中控检验标准.frx":98FE
  405.             Key             =   "ye"
  406.          EndProperty
  407.       EndProperty
  408.    End
  409.    Begin VSFlex8Ctl.VSFlexGrid WglrGrid 
  410.       Height          =   3345
  411.       Left            =   120
  412.       TabIndex        =   1
  413.       Top             =   2280
  414.       Width           =   10680
  415.       _ExtentX        =   18838
  416.       _ExtentY        =   5900
  417.       Appearance      =   1
  418.       BorderStyle     =   1
  419.       Enabled         =   -1  'True
  420.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  421.          Name            =   "宋体"
  422.          Size            =   9
  423.          Charset         =   134
  424.          Weight          =   400
  425.          Underline       =   0   'False
  426.          Italic          =   0   'False
  427.          Strikethrough   =   0   'False
  428.       EndProperty
  429.       MousePointer    =   0
  430.       BackColor       =   16777215
  431.       ForeColor       =   -2147483640
  432.       BackColorFixed  =   12640511
  433.       ForeColorFixed  =   -2147483630
  434.       BackColorSel    =   -2147483643
  435.       ForeColorSel    =   -2147483640
  436.       BackColorBkg    =   16777215
  437.       BackColorAlternate=   16777215
  438.       GridColor       =   -2147483633
  439.       GridColorFixed  =   -2147483632
  440.       TreeColor       =   -2147483632
  441.       FloodColor      =   192
  442.       SheetBorder     =   -2147483642
  443.       FocusRect       =   1
  444.       HighLight       =   1
  445.       AllowSelection  =   0   'False
  446.       AllowBigSelection=   0   'False
  447.       AllowUserResizing=   0
  448.       SelectionMode   =   0
  449.       GridLines       =   1
  450.       GridLinesFixed  =   2
  451.       GridLineWidth   =   1
  452.       Rows            =   5000
  453.       Cols            =   10
  454.       FixedRows       =   1
  455.       FixedCols       =   0
  456.       RowHeightMin    =   0
  457.       RowHeightMax    =   0
  458.       ColWidthMin     =   0
  459.       ColWidthMax     =   0
  460.       ExtendLastCol   =   0   'False
  461.       FormatString    =   ""
  462.       ScrollTrack     =   0   'False
  463.       ScrollBars      =   3
  464.       ScrollTips      =   0   'False
  465.       MergeCells      =   0
  466.       MergeCompare    =   0
  467.       AutoResize      =   -1  'True
  468.       AutoSizeMode    =   0
  469.       AutoSearch      =   0
  470.       MultiTotals     =   -1  'True
  471.       SubtotalPosition=   1
  472.       OutlineBar      =   0
  473.       OutlineCol      =   0
  474.       Ellipsis        =   0
  475.       ExplorerBar     =   0
  476.       PicturesOver    =   0   'False
  477.       FillStyle       =   0
  478.       RightToLeft     =   0   'False
  479.       PictureType     =   0
  480.       TabBehavior     =   0
  481.       OwnerDraw       =   0
  482.       Editable        =   0   'False
  483.       ShowComboButton =   -1  'True
  484.       WordWrap        =   -1  'True
  485.       TextStyle       =   0
  486.       TextStyleFixed  =   0
  487.       OleDragMode     =   0
  488.       OleDropMode     =   0
  489.       DataMode        =   0
  490.       VirtualData     =   -1  'True
  491.       Begin VSFlex8Ctl.VSFlexGrid HjGrid 
  492.          Height          =   885
  493.          Left            =   0
  494.          TabIndex        =   8
  495.          Top             =   2400
  496.          Visible         =   0   'False
  497.          Width           =   7545
  498.          _ExtentX        =   13309
  499.          _ExtentY        =   1561
  500.          Appearance      =   1
  501.          BorderStyle     =   0
  502.          Enabled         =   -1  'True
  503.          BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  504.             Name            =   "宋体"
  505.             Size            =   9
  506.             Charset         =   134
  507.             Weight          =   400
  508.             Underline       =   0   'False
  509.             Italic          =   0   'False
  510.             Strikethrough   =   0   'False
  511.          EndProperty
  512.          MousePointer    =   0
  513.          BackColor       =   14671839
  514.          ForeColor       =   -2147483640
  515.          BackColorFixed  =   -2147483633
  516.          ForeColorFixed  =   -2147483630
  517.          BackColorSel    =   -2147483643
  518.          ForeColorSel    =   -2147483640
  519.          BackColorBkg    =   16777215
  520.          BackColorAlternate=   14671839
  521.          GridColor       =   -2147483633
  522.          GridColorFixed  =   -2147483632
  523.          TreeColor       =   -2147483632
  524.          FloodColor      =   192
  525.          SheetBorder     =   -2147483642
  526.          FocusRect       =   1
  527.          HighLight       =   1
  528.          AllowSelection  =   0   'False
  529.          AllowBigSelection=   0   'False
  530.          AllowUserResizing=   0
  531.          SelectionMode   =   0
  532.          GridLines       =   1
  533.          GridLinesFixed  =   2
  534.          GridLineWidth   =   1
  535.          Rows            =   5000
  536.          Cols            =   10
  537.          FixedRows       =   1
  538.          FixedCols       =   0
  539.          RowHeightMin    =   0
  540.          RowHeightMax    =   0
  541.          ColWidthMin     =   0
  542.          ColWidthMax     =   0
  543.          ExtendLastCol   =   0   'False
  544.          FormatString    =   ""
  545.          ScrollTrack     =   0   'False
  546.          ScrollBars      =   3
  547.          ScrollTips      =   0   'False
  548.          MergeCells      =   0
  549.          MergeCompare    =   0
  550.          AutoResize      =   -1  'True
  551.          AutoSizeMode    =   0
  552.          AutoSearch      =   0
  553.          MultiTotals     =   -1  'True
  554.          SubtotalPosition=   1
  555.          OutlineBar      =   0
  556.          OutlineCol      =   0
  557.          Ellipsis        =   0
  558.          ExplorerBar     =   0
  559.          PicturesOver    =   0   'False
  560.          FillStyle       =   0
  561.          RightToLeft     =   0   'False
  562.          PictureType     =   0
  563.          TabBehavior     =   0
  564.          OwnerDraw       =   0
  565.          Editable        =   0   'False
  566.          ShowComboButton =   -1  'True
  567.          WordWrap        =   -1  'True
  568.          TextStyle       =   0
  569.          TextStyleFixed  =   0
  570.          OleDragMode     =   0
  571.          OleDropMode     =   0
  572.          DataMode        =   0
  573.          VirtualData     =   -1  'True
  574.       End
  575.    End
  576.    Begin MSComctlLib.ImageCombo cboline 
  577.       Height          =   315
  578.       Left            =   1500
  579.       TabIndex        =   0
  580.       Top             =   1200
  581.       Visible         =   0   'False
  582.       Width           =   1575
  583.       _ExtentX        =   2778
  584.       _ExtentY        =   556
  585.       _Version        =   393216
  586.       ForeColor       =   -2147483640
  587.       BackColor       =   -2147483643
  588.       Locked          =   -1  'True
  589.    End
  590.    Begin MSComctlLib.ImageCombo cboMname 
  591.       Height          =   315
  592.       Left            =   3600
  593.       TabIndex        =   10
  594.       Top             =   1200
  595.       Visible         =   0   'False
  596.       Width           =   1695
  597.       _ExtentX        =   2990
  598.       _ExtentY        =   556
  599.       _Version        =   393216
  600.       ForeColor       =   -2147483640
  601.       BackColor       =   -2147483643
  602.       Locked          =   -1  'True
  603.    End
  604.    Begin MSComctlLib.ImageCombo cbodot 
  605.       Height          =   315
  606.       Left            =   5820
  607.       TabIndex        =   17
  608.       Top             =   1200
  609.       Visible         =   0   'False
  610.       Width           =   1575
  611.       _ExtentX        =   2778
  612.       _ExtentY        =   556
  613.       _Version        =   393216
  614.       ForeColor       =   -2147483640
  615.       BackColor       =   -2147483643
  616.       Locked          =   -1  'True
  617.    End
  618.    Begin VB.ComboBox Cmb_MNumber 
  619.       Height          =   300
  620.       Left            =   4305
  621.       Style           =   2  'Dropdown List
  622.       TabIndex        =   22
  623.       Top             =   1740
  624.       Visible         =   0   'False
  625.       Width           =   1455
  626.    End
  627.    Begin VB.ComboBox Cmb_SiteName 
  628.       Enabled         =   0   'False
  629.       Height          =   300
  630.       Left            =   6825
  631.       Style           =   2  'Dropdown List
  632.       TabIndex        =   18
  633.       Top             =   1740
  634.       Width           =   1630
  635.    End
  636.    Begin VB.ComboBox Cmb_SiteCode 
  637.       Height          =   300
  638.       Left            =   7545
  639.       Style           =   2  'Dropdown List
  640.       TabIndex        =   21
  641.       Top             =   1740
  642.       Visible         =   0   'False
  643.       Width           =   915
  644.    End
  645.    Begin VB.ComboBox Cmb_LineCode 
  646.       Enabled         =   0   'False
  647.       Height          =   300
  648.       Left            =   1560
  649.       Style           =   2  'Dropdown List
  650.       TabIndex        =   23
  651.       Top             =   1740
  652.       Visible         =   0   'False
  653.       Width           =   1275
  654.    End
  655.    Begin VB.Label TsLabel 
  656.       Alignment       =   1  'Right Justify
  657.       AutoSize        =   -1  'True
  658.       BackStyle       =   0  'Transparent
  659.       Caption         =   "单据号:"
  660.       Height          =   180
  661.       Index           =   0
  662.       Left            =   120
  663.       TabIndex        =   16
  664.       Top             =   840
  665.       Width           =   765
  666.    End
  667.    Begin VB.Label Lab_Checker 
  668.       Appearance      =   0  'Flat
  669.       BackColor       =   &H80000005&
  670.       BackStyle       =   0  'Transparent
  671.       ForeColor       =   &H00000000&
  672.       Height          =   225
  673.       Left            =   7170
  674.       TabIndex        =   15
  675.       Top             =   6360
  676.       Width           =   735
  677.    End
  678.    Begin VB.Label Lab_Bill 
  679.       Appearance      =   0  'Flat
  680.       BackColor       =   &H80000005&
  681.       BackStyle       =   0  'Transparent
  682.       ForeColor       =   &H00000000&
  683.       Height          =   225
  684.       Left            =   9030
  685.       TabIndex        =   14
  686.       Top             =   6330
  687.       Width           =   735
  688.    End
  689.    Begin VB.Label Lab_OperStatus 
  690.       BackColor       =   &H000080FF&
  691.       Caption         =   "1"
  692.       Height          =   345
  693.       Left            =   10290
  694.       TabIndex        =   13
  695.       Top             =   960
  696.       Visible         =   0   'False
  697.       Width           =   345
  698.    End
  699.    Begin VB.Label Lab_Djclzt 
  700.       BackColor       =   &H0000FFFF&
  701.       Caption         =   "1"
  702.       ForeColor       =   &H00808080&
  703.       Height          =   255
  704.       Left            =   10320
  705.       TabIndex        =   12
  706.       Top             =   600
  707.       Visible         =   0   'False
  708.       Width           =   285
  709.    End
  710.    Begin VB.Label Lab_BillId 
  711.       AutoSize        =   -1  'True
  712.       BackColor       =   &H0080C0FF&
  713.       Height          =   270
  714.       Left            =   7680
  715.       TabIndex        =   11
  716.       Top             =   600
  717.       Visible         =   0   'False
  718.       Width           =   2490
  719.    End
  720.    Begin VB.Label Lab_Title 
  721.       AutoSize        =   -1  'True
  722.       BackColor       =   &H80000018&
  723.       BackStyle       =   0  'Transparent
  724.       Caption         =   "单据标题自动调整"
  725.       BeginProperty Font 
  726.          Name            =   "宋体"
  727.          Size            =   15
  728.          Charset         =   134
  729.          Weight          =   700
  730.          Underline       =   0   'False
  731.          Italic          =   0   'False
  732.          Strikethrough   =   0   'False
  733.       EndProperty
  734.       ForeColor       =   &H00000000&
  735.       Height          =   300
  736.       Left            =   2640
  737.       TabIndex        =   9
  738.       Top             =   780
  739.       Width           =   2520
  740.    End
  741. End
  742. Attribute VB_Name = "FrmJcsz_MidCheckStand"
  743. Attribute VB_GlobalNameSpace = False
  744. Attribute VB_Creatable = False
  745. Attribute VB_PredeclaredId = True
  746. Attribute VB_Exposed = False
  747. '***********************************************************************************************************
  748. '*    模 块 名 称 :中控检验标准
  749. '*    功 能 描 述 :此功能模块主要完成单据录入、修改、删除、预览打印等。
  750. '*    程序员姓名  :张晶石
  751. '*    最后修改人  :
  752. '*    最后修改时间:2002/01/22
  753. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  754. '*
  755. '*    1.每次调入外部功能窗体,均要加锁ChangeLock=True,窗体关闭后解锁ChangeLock=false
  756. '*                                    TextValiLock=True             TextValiLock=false
  757. '*
  758. '*    2.Lab_OperStatus 用此标签来标识单据录入状态(默认值为1) "1"-浏览 "2"-新增 "3"-修改
  759. '*
  760. '*    3.Lab_Djclzt 用此标签来标识单据处理状态(默认值为1) "1"-填制单据  "2"-查询单据列表  "3"-明细帐联查单据
  761. '*
  762. '*    4.原则:只要单据能够存盘(无论修改或新增)则其必须接受完整性及有效性规则检查
  763. '***********************************************************************************************************
  764.  
  765. '[以下为根据实际情况设置变量
  766. Dim Bln_BillChange As Boolean                   '标识单据是否发生改动
  767. Dim Rec_Query As New ADODB.Recordset            '单据组查询结果动态集(保存当前单据组ID)
  768. Public Str_QueryCondi As String                 '单据组查询条件(接收单据列表传递查询条件)
  769. Public bln_Help As Boolean
  770. Dim str_TempSql As String
  771. Dim rs_Temp As New ADODB.Recordset
  772. ']
  773. '以下为固定使用变量(单据)
  774. Dim BillCode As String                          '单据设计编码(索引号)
  775. Dim Var_Bill() As Variant                       '用来返回单据设计信息
  776. Dim ReportTitle As String                       '报表主标题
  777. Dim Tsxx As String                              '系统提示信息
  778. '以下为固定使用变量(网格)
  779. Dim Cxnrrec As New ADODB.Recordset              '显示查询内容动态集
  780. Dim Dyymctbl As New DY_Dyymsz                   '打印页面窗体变量
  781. Dim GridCode As String                          '显示网格网格代码
  782. Dim GridInf() As Variant                        '整个网格设置信息
  783. Dim Pmbcsjhs As Long                            '屏幕网格保持数据行数(大于等于1)
  784. Dim Fzxwghs As Integer                          '辅助项网格行数(包括合计行)
  785. Dim Sfxshjwg As Boolean                         '是否显示合计网格
  786. Dim Qslz As Long                                '网格隐藏(非操作显示)列数
  787. Dim Sjhgd As Double                             '网格数据行高度
  788. Dim GridBoolean() As Boolean                    '网格列信息(布尔型)
  789. Dim GridStr()  As String                        '网格列信息(字符型)
  790. Dim GridInt() As Integer                        '网格列信息(整型)
  791. Dim Sfblbzkd As Boolean                         '是否保留帮助宽度(字段提供帮助时,是否为按钮保留空间)
  792. Dim Dqlrwgh As Long                             '当前录入数据网格行
  793. Dim Dqlrwgl As Long                             '当前录入数据网格列
  794. Dim Dqlkwgh As Long                             '刚刚离开网格行(不一定为录入行)
  795. Dim Dqlkwgl As Long                             '刚刚离开网格列
  796. Dim Dqtoprow As Long                            '当前录入状态时最上端可视行
  797. Dim Dqleftcol As Long                           '当前录入状态时最左端可视列
  798. Dim Zdlrqnr As String                           '字段录入修改前内容(用来判断内容是否修改)
  799. Dim Wbkbhlock As Boolean                        '文本框改变值锁
  800. Dim Changelock As Boolean                       '网格行列改变控制锁(用来区别用户改变.程序改变)
  801. Dim Gdtlock As Boolean                          '滚动条滚动控制(用来区别用户改变.程序改变)
  802. Dim Yxxpdlock As Boolean                        '字段有效性判断锁(内容不修改不需进行字段有效性判断)
  803. Dim Hyxxpdlock As Boolean                       '行有效性判断锁(字段内容不修改不需进行行有效性判断)
  804. Dim Valilock As Boolean                         '文本框失去焦点是否进行有效性控制(TRUE 为锁定*限用网格录入)
  805. Dim Shsfts As Boolean                           '删除记录行是否提示
  806. Dim Szzls As Integer                            '网格信息数组最大下标值(网格列数-1)
  807. '以下为固定使用变量(文本框)
  808. Dim Textvar() As Variant                        '存储变体型文本框信息
  809. Dim Textboolean() As Boolean                    '存储布尔型文本框信息
  810. Dim Textint() As Integer                        '存储整型文本框信息
  811. Dim Textstr() As String                         '存储字符型文本框信息
  812. Dim Max_Text_Index As Integer                   '最大录入文本框索引值
  813. Dim TextGroupCode As String                     '文本框录入分组编码
  814. Dim TextValiLock As Boolean                     '文本框失去焦点是否进行有效性控制判断
  815. Dim TextValiJudgeLock() As Boolean              '文本框录入有效性判断控制锁
  816. Dim TextChangeLock As Boolean                   '文本框内容变换控制锁
  817.     
  818. Private Sub Form_KeyPress(KeyAscii As Integer)      '控 制 焦 点 转 移
  819.     Dim jdzygs As Integer
  820.     jdzygs = 7                                       '在单据录入中,此焦点转移控制值一定小于等于文本框个数,否则网格回车键将不支持.
  821.     Select Case KeyAscii
  822.     Case vbKeyReturn
  823.         If Kjjdzy(jdzygs) Then
  824.             KeyAscii = 0
  825.         End If
  826.     Case 39           '屏蔽字符"'"
  827.         KeyAscii = 0
  828.     End Select
  829. End Sub
  830. Private Sub Form_Load()                                                        '窗 体 装 入
  831.     
  832.     '初始化各种锁值(Fixed)
  833.     Changelock = False             '网格行列改变控制锁
  834.     Gdtlock = False                '滚动条滚动控制
  835.     Yxxpdlock = True               '字段有效性判断锁
  836.     Hyxxpdlock = True              '行有效性判断锁
  837.     Wbkbhlock = False              '文本框内容改变锁
  838.     
  839.     '调入单据信息(需要修改BillCode)
  840.     BillCode = "1503"
  841.     Call Sub_ReadBillInfo(BillCode, Me, Var_Bill())
  842.     Lab_Title = Var_Bill(2)
  843.     Lab_Title.Move (Me.Width - Lab_Title.Width) / 2, 800
  844.     
  845.     '报表编码
  846.     XtReportCode = Var_Bill(5)
  847.     Load Dyymctbl
  848.     
  849.     '以下为文本框处理程序(Fixed)
  850.     TextGroupCode = Var_Bill(3)
  851.     
  852.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  853.     Call Wbkcsh
  854.     
  855.     '调入网格并记录一些网格信息(Fixed)
  856.     GridCode = Var_Bill(4)         '网格属性编码
  857.     Call BzWgcsh(WglrGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  858.     
  859.     Qslz = GridInf(1)
  860.     Sjhgd = GridInf(2)
  861.     Fzxwghs = GridInf(4)
  862.     Sfblbzkd = GridInf(5)
  863.     Shsfts = GridInf(6)
  864.     Sfxshjwg = GridInf(7)
  865.     Szzls = WglrGrid.Cols - 1
  866.     Pmbcsjhs = Int((WglrGrid.Height - WglrGrid.FixedRows * WglrGrid.RowHeight(0)) / Sjhgd) - Fzxwghs - 1
  867.     
  868.     For Jsqte = WglrGrid.FixedRows To WglrGrid.Rows - 1
  869.         WglrGrid.RowHeight(Jsqte) = Sjhgd
  870.     Next Jsqte
  871.     
  872.     '初始化合计网格(Fixed)
  873.     Call Cshhjwg
  874.     
  875.     '单据变动置为False(Fixed)
  876.     Bln_BillChange = False
  877.     
  878.     '调入数据初始化模块(Fixed)
  879.     Lab_Djclzt.Caption = Xtcdcs
  880.     Call Sjcsh(Trim(Lab_Djclzt.Caption))
  881.     
  882.     '[<<以下自定义部分,初始化下拉文本框
  883.     Cmb_LineName.Move LrText(0).Left, LrText(0).Top, LrText(0).Width
  884.     Cmb_MName.Move LrText(1).Left, LrText(1).Top, LrText(1).Width
  885.     Cmb_SiteName.Move LrText(2).Left, LrText(2).Top, LrText(2).Width
  886.     LrText(0).Visible = False
  887.     Call InitCmb
  888.     '>>]
  889. End Sub
  890. Private Sub Form_Unload(Cancel As Integer)           '窗体卸载
  891.     
  892.     '是否保存已修改单据
  893.      Dim YAnswer As Integer
  894.      If Lab_OperStatus.Caption = "2" Or Lab_OperStatus.Caption = "3" Then
  895.          Tsxx = "单据尚未保存,是否退出?"
  896.          YAnswer = Xtxxts(Tsxx, 2, 2)
  897.          If YAnswer <> 1 Then
  898.              Cancel = 1
  899.              Exit Sub
  900.          End If
  901.      End If
  902.     
  903.     
  904.     '卸载打印页面窗体
  905.     Unload Dyymctbl
  906.     
  907.     '判断单据是否发生变化,并返回相应标识
  908.     If Bln_BillChange Then
  909.         Xtfhcs = "1"
  910.     Else
  911.         Xtfhcs = "0"
  912.     End If
  913.     
  914. End Sub
  915. Private Sub Sjcsh(Str_Pzclzt As String)              '数据初始化模块(根据实际情况)
  916.     
  917.     Dim Sqlstr As String       '查询单据列表条件
  918.     
  919.     '[>>根据实际情况初始化
  920.     Select Case Str_Pzclzt
  921.     Case "1"   '填制单据
  922.         '调入用户查询结果动态集(默认显示用户当前操作业务日期的单据)
  923.         Sqlstr = "SELECT midstandmainid From QC_MidStandMain ORDER BY midstandmainid "
  924.         Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  925.         
  926.         '新增单据
  927.         Call Sub_AddBill
  928.     Case "2"   '查询单据(单据列表)
  929.         
  930.         '填充查询单据标识
  931.         Lab_BillId.Caption = XT_BillID
  932.         Str_QueryCondi = Xtcdcsfz
  933.         
  934.         Call Sub_ShowBill
  935.         Call Sub_OperStatus("10")
  936.         
  937.         '调入用户查询结果动态集
  938.         Sqlstr = "SELECT DISTINCT midstandmainid From qc_v_midstandsub a " & Str_QueryCondi & " ORDER BY midstandmainid"
  939.         Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  940.         Rec_Query.Find "midstandmainid=" & Val(Lab_BillId.Caption)
  941.     Case "3"   '明细帐联查单据
  942.         '设置工具条显示
  943.         With Tlb_Action
  944.             .Buttons("xz").Enabled = False             '新增
  945.             .Buttons("xg").Enabled = False             '修改
  946.             .Buttons("sc").Enabled = False             '删除
  947.             .Buttons("fgh0").Enabled = False           '分隔行
  948.             .Buttons("zh").Enabled = False             '增行
  949.             .Buttons("sh").Enabled = False             '删行
  950.             .Buttons("fgh1").Enabled = False           '分隔行
  951.             .Buttons("bc").Enabled = False             '保存
  952.             .Buttons("fq").Enabled = False             '放弃
  953.             .Buttons("shsh").Enabled = False           '审核
  954.             .Buttons("shqs").Enabled = False           '弃审
  955.             .Buttons("fgh2").Enabled = False           '分隔行
  956.             .Buttons("find").Enabled = False           '查询
  957.             .Buttons("first").Enabled = False          '首张
  958.             .Buttons("prev").Enabled = False           '上张
  959.             .Buttons("next").Enabled = False           '下张
  960.             .Buttons("last").Enabled = False           '末张
  961.             .Buttons("fgh5").Enabled = False           '分割行
  962.         End With
  963.         
  964.         Call Sub_ShowBill
  965.         
  966.         '设置操作状态为浏览
  967.         Lab_OperStatus.Caption = "1"
  968.         
  969.         '录入文本框
  970.         For Jsqte = Max_Text_Index To 0 Step -1
  971.             LrText(Jsqte).Enabled = False
  972.         Next Jsqte
  973.     End Select
  974.     
  975.     '<<]
  976.     
  977. End Sub
  978. Private Sub Sub_ShowBill()                                          '根据当前单据ID显示整张单据内容
  979.     
  980.     '过程默认参数为当前窗体中单据ID:Lab_BillID
  981.     Dim Sqlstr As String                           '临时使用字符串
  982.     Dim RecTemp As New ADODB.Recordset             '临时使用动态集
  983.     Dim Jsqte As Long                              '临时计数器
  984.     
  985.     '禁止网格刷新动作,为加快网格显示速度(Fixed)
  986.     WglrGrid.Redraw = False
  987.     
  988.     '本张单据查询字符串
  989.     Sqlstr = "select * from qc_v_midstandsub Where midstandmainid='" & Val(Lab_BillId.Caption) & "' Order By qc_v_midstandsub.midStandSubId"
  990.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  991.     
  992.     With RecTemp
  993.         WglrGrid.Rows = WglrGrid.FixedRows
  994.         If .EOF Then
  995.             WglrGrid.Redraw = True
  996.             Exit Sub
  997.         Else
  998.             '[>>显示单据头
  999.             TextChangeLock = True     '文本框加锁
  1000.             Cmb_LineName.Text = Trim(.Fields("LineName") & "")                          '生产线名称
  1001.             Cmb_LineCode.Text = Trim(.Fields("LineCode") & "")                          '生产线代码
  1002.             LrText(0).Text = Trim(.Fields("LineName") & "")                             '生产线名称
  1003.             '填充物料下拉框
  1004.             Cmb_MName_DropDown
  1005.             For Jsqte = 0 To Cmb_MName.ListCount - 1
  1006.                 If Cmb_MName.List(Jsqte) = Trim(.Fields("MName")) Then
  1007.                     Cmb_MName.Text = Cmb_MName.List(Jsqte)                              '物料名称
  1008.                     Cmb_MNumber.Text = Cmb_MNumber.List(Jsqte)                          '物料代码
  1009.                     Exit For
  1010.                 End If
  1011.             Next Jsqte
  1012.             LrText(1).Text = Trim(.Fields("MName") & "")                                '物料名称
  1013.             '填充取样点下拉框
  1014.             Cmb_SiteName_DropDown
  1015.             For Jsqte = 0 To Cmb_SiteName.ListCount - 1
  1016.                 If Cmb_SiteName.List(Jsqte) = Trim(.Fields("SiteName")) Then
  1017.                     Cmb_SiteName.Text = Cmb_SiteName.List(Jsqte)                        '取样点名称
  1018.                     Cmb_SiteCode.Text = Cmb_SiteCode.List(Jsqte)                        '取样点代码
  1019.                     Exit For
  1020.                 End If
  1021.             Next Jsqte
  1022.             LrText(2).Text = Trim(.Fields("SiteName") & "")                             '取样点名称
  1023.             
  1024.             '<<]
  1025.         End If
  1026.         
  1027.         Jsqte = WglrGrid.FixedRows
  1028.         Do While Not .EOF
  1029.             WglrGrid.AddItem ""
  1030.             '[>>显示单据分录
  1031.             WglrGrid.TextMatrix(Jsqte, 0) = "*"                                                            '数据有效行标识(必填)
  1032.             WglrGrid.TextMatrix(Jsqte, 1) = Trim(.Fields("itemcode") & "")                                 '检验项目代码
  1033.             WglrGrid.TextMatrix(Jsqte, Sydz("001", GridStr(), Szzls)) = Trim(.Fields("itemname") & "")     '检验项目名称
  1034.             WglrGrid.TextMatrix(Jsqte, Sydz("002", GridStr(), Szzls)) = Trim(.Fields("stand") & "")        '检验标准
  1035.             WglrGrid.TextMatrix(Jsqte, Sydz("003", GridStr(), Szzls)) = Trim(.Fields("unitname") & "")     '计量单位
  1036.             WglrGrid.TextMatrix(Jsqte, Sydz("004", GridStr(), Szzls)) = Trim(.Fields("Remark") & "")       '备注
  1037.             
  1038.             WglrGrid.RowHeight(Jsqte) = Sjhgd
  1039.             .MoveNext
  1040.             Jsqte = Jsqte + 1
  1041.         Loop
  1042.     End With
  1043.     
  1044.     
  1045.     '调整网格(Fixed)
  1046.     Call Sub_AdjustGrid
  1047.     
  1048.     '将网格刷新解禁(Fixed)
  1049.     WglrGrid.Redraw = True
  1050.     
  1051. End Sub
  1052. Private Sub Tlb_Action_ButtonClick(ByVal Button As MSComctlLib.Button)             '用户点击工具条
  1053.     
  1054.     '屏蔽文本框,下拉组合框有效性判断
  1055.     Valilock = True
  1056.     
  1057.     '屏蔽网格失去焦点产生的有效性判断
  1058.     Changelock = True
  1059.     
  1060.     Select Case Button.Key
  1061.     Case "yl"                                            '预 览
  1062.         If Fun_Drfrmyxxpd Then
  1063.             BillGridPrint WglrGrid, LrText, GridStr(), Szzls, GridCode, TextGroupCode, XtReportCode, False
  1064.         End If
  1065.     Case "dy"                                            '打 印
  1066.         If Fun_Drfrmyxxpd Then
  1067.             Dim yhAnswer As Integer      '打印提示
  1068.             
  1069.             '用户确认是否打印单据
  1070.             Tsxx = "请确认是否打印当前单据?"
  1071.             yhAnswer = Xtxxts(Tsxx, 2, 2)
  1072.             If yhAnswer = 2 Then
  1073.                 Exit Sub
  1074.             End If
  1075.             BillGridPrint WglrGrid, LrText, GridStr(), Szzls, GridCode, TextGroupCode, XtReportCode, True
  1076.         End If
  1077.     Case "xz"                                            '新 增
  1078.         Call Sub_AddBill
  1079.     Case "xg"                                            '修 改
  1080.         Call Sub_EditBill
  1081.     Case "sc"                                            '删 除
  1082.         Call Sub_DeleteBill
  1083.     Case "zh"                                            '增 行
  1084.         Call zjlrfl
  1085.     Case "sh"                                            '删 行
  1086.         Call Scdqfl
  1087.     Case "bc"                                            '保 存
  1088.         If Fun_Drfrmyxxpd Then
  1089.             Call Sub_SaveBill
  1090.         End If
  1091.     Case "fq"                                            '放 弃
  1092.         Call Sub_AbandonBill
  1093.     Case "find"                                          '查 询
  1094.         Call Drbmhelp(0, "Qc_MidCheckStand", "")
  1095.         If Xtfhcs <> "" Then
  1096.             Lab_BillId.Caption = Xtfhcs
  1097.             Call Sub_ShowBill
  1098.         End If
  1099.     Case "first"                                         '首 张
  1100.         Call Sub_First
  1101.     Case "prev"                                          '上 张
  1102.         Call Sub_Prev
  1103.     Case "next"                                          '下 张
  1104.         Call Sub_Next
  1105.     Case "last"                                          '末 张
  1106.         Call Sub_Last
  1107.     Case "bz"                                            '帮 助
  1108.         Call F1bz
  1109.     Case "fh"                                            '退 出
  1110.         Unload Me
  1111.     End Select
  1112.     
  1113.     '解 锁
  1114.     Valilock = False
  1115.     Changelock = False
  1116.     TextChangeLock = False
  1117.     
  1118. End Sub
  1119. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)     '支持热键操作
  1120.     
  1121.     Select Case KeyCode
  1122.     Case vbKeyF5          '增加单据
  1123.         If Tlb_Action.Buttons("xz").Enabled And Tlb_Action.Buttons("xz").Visible Then
  1124.             Call Sub_AddBill
  1125.         End If
  1126.     Case vbKeyF3          '修改单据
  1127.         If Tlb_Action.Buttons("xg").Enabled And Tlb_Action.Buttons("xg").Visible Then
  1128.             Call Sub_EditBill
  1129.         End If
  1130.     Case vbKeyF6          '保存单据
  1131.         If Tlb_Action.Buttons("bc").Enabled And Tlb_Action.Buttons("bc").Visible Then
  1132.             If Fun_Drfrmyxxpd Then Call Sub_SaveBill
  1133.         End If
  1134.     End Select
  1135.     
  1136. End Sub
  1137. Private Sub Sub_OperStatus(Str_Status As String)                 '工具条依据不同状态所进行的变化
  1138.     
  1139.     With Tlb_Action
  1140.         Select Case Str_Status
  1141.         Case "10"   '浏览((列表)调入单据处理时的进入状态、(列表)新增状态时放弃录入)
  1142.             '工具条
  1143.             .Buttons("dy").Enabled = True       '打印
  1144.             .Buttons("yl").Enabled = True       '预览
  1145.             .Buttons("xz").Enabled = True       '新增
  1146.             .Buttons("xg").Enabled = True       '修改
  1147.             .Buttons("sc").Enabled = True       '删除
  1148.             .Buttons("zh").Enabled = False      '增行
  1149.             .Buttons("sh").Enabled = False      '删行
  1150.             .Buttons("bc").Enabled = False      '保存
  1151.             .Buttons("fq").Enabled = False      '放弃
  1152.             .Buttons("find").Enabled = True     '查询
  1153.             .Buttons("first").Enabled = True    '首张
  1154.             .Buttons("prev").Enabled = True     '上张
  1155.             .Buttons("next").Enabled = True     '下张
  1156.             .Buttons("last").Enabled = True     '末张
  1157.             .Buttons("bz").Enabled = True       '帮助
  1158.             .Buttons("fh").Enabled = True       '退出
  1159.             
  1160.             '设置文本框浏览状态
  1161.             Call Sub_LrtextStatus(False)
  1162.         Case "20"   '新增单据((录入)新增一张单据 、(列表)新增一张单据)
  1163.             '工具条
  1164.             .Buttons("dy").Enabled = False      '打印
  1165.             .Buttons("yl").Enabled = False      '预览
  1166.             .Buttons("xz").Enabled = False      '新增
  1167.             .Buttons("xg").Enabled = False      '修改
  1168.             .Buttons("sc").Enabled = False      '删除
  1169.             .Buttons("zh").Enabled = True       '增行
  1170.             .Buttons("sh").Enabled = True       '删行
  1171.             .Buttons("bc").Enabled = True       '保存
  1172.             .Buttons("fq").Enabled = True       '放弃
  1173.             .Buttons("find").Enabled = False    '查询
  1174.             .Buttons("first").Enabled = False   '首张
  1175.             .Buttons("prev").Enabled = False    '上张
  1176.             .Buttons("next").Enabled = False    '下张
  1177.             .Buttons("last").Enabled = False    '末张
  1178.             .Buttons("bz").Enabled = True       '帮助
  1179.             .Buttons("fh").Enabled = True       '退出
  1180.             
  1181.             '设置文本框录入状态
  1182.             Call Sub_LrtextStatus(True)
  1183.         Case "30"   '修改((录入)调入修改功能、(列表)调入修改功能)
  1184.             '工具条
  1185.             .Buttons("dy").Enabled = False      '打印
  1186.             .Buttons("yl").Enabled = False      '预览
  1187.             .Buttons("xz").Enabled = False      '新增
  1188.             .Buttons("xg").Enabled = False      '修改
  1189.             .Buttons("sc").Enabled = False      '删除
  1190.             .Buttons("zh").Enabled = True       '增行
  1191.             .Buttons("sh").Enabled = True       '删行
  1192.             .Buttons("bc").Enabled = True       '保存
  1193.             .Buttons("fq").Enabled = True       '放弃
  1194.             .Buttons("find").Enabled = False    '查询
  1195.             .Buttons("first").Enabled = False   '首张
  1196.             .Buttons("prev").Enabled = False    '上张
  1197.             .Buttons("next").Enabled = False    '下张
  1198.             .Buttons("last").Enabled = False    '末张
  1199.             .Buttons("bz").Enabled = True       '帮助
  1200.             .Buttons("fh").Enabled = True       '退出
  1201.             
  1202.             '设置文本框录入状态
  1203.             Call Sub_LrtextStatus(False)
  1204.         End Select
  1205.     End With
  1206.     
  1207. End Sub
  1208. Private Sub Sub_LrtextStatus(TextEnabled As Boolean)                            '设置录入文本框状态
  1209.     
  1210.     '录入文本框状态设置
  1211.     If TextEnabled Then
  1212.         For Jsqte = Max_Text_Index To 0 Step -1
  1213.             '判断文本框是否可编辑
  1214.             If Textboolean(Jsqte, 5) Then
  1215.                 LrText(Jsqte).Enabled = True
  1216.             Else
  1217.                 LrText(Jsqte).Enabled = False
  1218.             End If
  1219.         Next Jsqte
  1220.         Cmb_LineName.Enabled = True
  1221.         Cmb_MName.Enabled = True
  1222.         Cmb_SiteName.Enabled = True
  1223.     Else
  1224.         For Jsqte = Max_Text_Index To 0 Step -1
  1225.             LrText(Jsqte).Enabled = False
  1226.         Next Jsqte
  1227.         Cmb_LineName.Enabled = False
  1228.         Cmb_SiteName.Enabled = False
  1229.         Cmb_MName.Enabled = False
  1230.     End If
  1231.     
  1232. End Sub
  1233. Private Sub Wbkcl()                                                 '文本框录入之前处理(根据实际情况)
  1234.     
  1235.     Dim xswbrr As String
  1236.     With WglrGrid
  1237.         Zdlrqnr = Trim(.Text)
  1238.         xswbrr = Trim(.Text)
  1239.         If GridBoolean(.Col, 3) Then   '列表框录入
  1240.             '填充列表框程序
  1241.             Call FillCombo(YdCombo, GridStr(.Col, 5), xswbrr, 0)
  1242.         Else
  1243.             Wbkbhlock = True
  1244.             
  1245.             '====以下为用户自定义
  1246.             Ydtext.Text = xswbrr
  1247.             '====以上为用户自定义
  1248.             
  1249.             Wbkbhlock = False
  1250.             Ydtext.SelStart = Len(Ydtext.Text)
  1251.         End If
  1252.     End With
  1253.     
  1254. End Sub
  1255. Private Function sjzdyxxpd(Dqpdwgh As Long, Dqpdwgl As Long) As Boolean       '录入数据字段有效性判断,同时进行字段录入事后处理
  1256.     
  1257.     '函数参数:Dqpdwgh, Dqpdwgl 当前要判断网格单元所处行列值
  1258.     
  1259.     Dim Str_JudgeText As String                 '临时有效性判断字段内容
  1260.     Dim Coljsq As Long                          '临时列计数器
  1261.     Dim RecTemp As New ADODB.Recordset          '临时使用动态集
  1262.     Dim Sqlstr As String                        '临时使用查询字符串
  1263.     
  1264.     With WglrGrid
  1265.         '非录入状态或非数据行则其有效性为合法
  1266.         If Yxxpdlock Or .Row < .FixedRows Then
  1267.             sjzdyxxpd = True
  1268.             Exit Function
  1269.         End If
  1270.         
  1271.         '取得当前要判断字段内容
  1272.         Str_JudgeText = Trim(.TextMatrix(Dqpdwgh, Dqpdwgl))
  1273.         
  1274.         '根据不同字段进行相应的处理(依据其逻辑编号)
  1275.         Select Case GridStr(Dqpdwgl, 1)
  1276.             '[>>以下为自定义部分
  1277.             Case "001"                   '检验项目
  1278.                 If Not Trim(Str_JudgeText) = "" Then
  1279.                     '1.放置字段有效性判断
  1280.                     Sqlstr = "SELECT itemcode,itemname,unitname From qc_checkitem Where itemcode='" & Str_JudgeText & "' Or itemName='" & Str_JudgeText & "'"
  1281.                     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1282.                     If RecTemp.EOF Then
  1283.                         Tsxx = "此检验项目不存在!"
  1284.                         GoTo Lrcwcl
  1285.                     End If
  1286.                     
  1287.                     For i = .FixedRows To .Rows - 1
  1288.                        If Trim(.TextMatrix(i, 0)) = "*" Then
  1289.                            str_temp1 = Trim(.TextMatrix(i, Sydz("001", GridStr(), Szzls)))
  1290.                            For j = i + 1 To .Rows - 1
  1291.                                If Trim(.TextMatrix(j, 0)) = "*" Then
  1292.                                    str_temp2 = Trim(.TextMatrix(j, Sydz("001", GridStr(), Szzls)))
  1293.                                    If str_temp1 = str_temp2 Then
  1294.                                        Tsxx = "检验项目不能重复!"
  1295.                                        GoTo Lrcwcl
  1296.                                    End If
  1297.                                End If
  1298.                            Next j
  1299.                        End If
  1300.                     Next i
  1301.                   
  1302.                   '2.放置字段事后处理程序
  1303.                     .TextMatrix(Dqpdwgh, 1) = Trim(RecTemp.Fields("itemcode") & "")                                  '显示检验项目
  1304.                     .TextMatrix(Dqpdwgh, Sydz("001", GridStr(), Szzls)) = Trim(RecTemp.Fields("itemName") & "")      '显示检验项目名称
  1305.                     .TextMatrix(Dqpdwgh, Sydz("003", GridStr(), Szzls)) = Trim(RecTemp.Fields("unitname") & "")      '显示检验项目计量单位
  1306.                     
  1307.                 Else
  1308.                     '3.清空相关字段
  1309.                     .TextMatrix(Dqpdwgh, 0) = ""
  1310.                     .TextMatrix(Dqpdwgh, Sydz("001", GridStr(), Szzls)) = ""
  1311.                     .TextMatrix(Dqpdwgh, Sydz("002", GridStr(), Szzls)) = ""
  1312.                     .TextMatrix(Dqpdwgh, Sydz("003", GridStr(), Szzls)) = ""
  1313.                     .TextMatrix(Dqpdwgh, Sydz("004", GridStr(), Szzls)) = ""
  1314.                 End If
  1315.     '            '<<以上为自定义部分]
  1316.         End Select
  1317.         
  1318.         '字段录入正确后为零字段清空(Fixed)
  1319.         Call Qkwlzd(Dqpdwgh, Dqpdwgl)
  1320.         
  1321.         '字段有效性判断通过,将字段有效性判断加锁直至再次改变(Fixed)
  1322.         sjzdyxxpd = True
  1323.         Yxxpdlock = True
  1324.         Exit Function
  1325.     End With
  1326.     
  1327. Lrcwcl:    '录入错误处理
  1328.     With WglrGrid
  1329.         
  1330.         '给出错误提示信息
  1331.         Call Xtxxts(Tsxx, 0, 1)
  1332.         
  1333.         '返回网格错误位置(ChangeLock避免再次引发RowColChange有效性判断),装入录入载体
  1334.         Changelock = True
  1335.         .Select Dqpdwgh, Dqpdwgl
  1336.         Changelock = False
  1337.         Call xswbk
  1338.         
  1339.         '函数返回False
  1340.         sjzdyxxpd = False
  1341.         Exit Function
  1342.     End With
  1343.     
  1344. End Function
  1345. Private Function Sjhzyxxpd(ByVal Yxxpdh As Long) As Boolean                     '录入数据行有效性判断,同时进行行处理
  1346.     
  1347.     '函数参数:Yxxpdh 要进行有效性判断的网格数据行的行值
  1348.     
  1349.     Dim Lrywlz As Long                            '录入有误网格列值
  1350.     Dim RecTemp As New ADODB.Recordset            '临时使用动态集
  1351.     
  1352.     With WglrGrid
  1353.         '判断行为空(行中所有可编辑列数据均为空或为零)和无效数据行则清除当前行
  1354.         If .Rows <= .FixedRows Then Exit Function   ' 如果没有记录,则退出
  1355.         If .TextMatrix(Yxxpdh, 0) <> "*" Then
  1356.             Sjhzyxxpd = True
  1357.             Exit Function
  1358.         Else
  1359.             If pdhwk(Yxxpdh) And Yxxpdh + 1 <= .Rows - 1 Then
  1360.                 '当要判断行处于网格末行时才允许删行,否则要进行有效性判断
  1361.                 If .TextMatrix(Yxxpdh + 1, 0) <> "*" Then
  1362.                     Changelock = True
  1363.                     .RemoveItem Yxxpdh
  1364.                     If .Rows < Pmbcsjhs + .FixedRows + Fzxwghs + 1 Then
  1365.                         .AddItem ""
  1366.                         .RowHeight(.Rows - 1) = Sjhgd
  1367.                     End If
  1368.                     Changelock = False
  1369.                     Sjhzyxxpd = True
  1370.                     Exit Function
  1371.                 End If
  1372.             End If
  1373.         End If
  1374.         
  1375.         '行没有发生变化则不进行有效性判断
  1376.         If Hyxxpdlock Then
  1377.             Sjhzyxxpd = True
  1378.             Exit Function
  1379.         End If
  1380.         
  1381.         '[>>以下为自定义部分
  1382.         
  1383.         '1.放置行有效性判断程序
  1384.         
  1385.         '1.1首先进行单个不能为空或不能为零判断(Fixed)
  1386.         For Jsqte = Qslz To .Cols - 1
  1387.             
  1388.             '字段不能为空
  1389.             If GridInt(Jsqte, 5) = 1 Then
  1390.                 If Len(Trim(.TextMatrix(Yxxpdh, Jsqte))) = 0 Then
  1391.                     Tsxx = GridStr(Jsqte, 2)
  1392.                     Lrywlz = Jsqte
  1393.                     GoTo Lrcwcl
  1394.                     Exit For
  1395.                 End If
  1396.             End If
  1397.             
  1398.             '字段不能为零
  1399.             If GridInt(Jsqte, 5) = 2 Then
  1400.                 If Val(Trim(.TextMatrix(Yxxpdh, Jsqte))) = 0 Then
  1401.                     Tsxx = GridStr(Jsqte, 2)
  1402.                     Lrywlz = Jsqte
  1403.                     GoTo Lrcwcl
  1404.                     Exit For
  1405.                 End If
  1406.             End If
  1407.         Next Jsqte
  1408.         
  1409.         '1.2进行其他有效性判断,编写格式同1.1
  1410.         
  1411.         '2.放置行处理程序(当数据行通过有效性判断)
  1412.         
  1413.         '以上为自定义部分<<]
  1414.     End With    'WglrGrid
  1415.     
  1416.     '如果此行通过行有效性判断则加锁,直至此行数据再次发生变化
  1417.     Sjhzyxxpd = True
  1418.     Hyxxpdlock = True
  1419.     Exit Function
  1420.     
  1421. Lrcwcl:      '录入错误处理
  1422.     With WglrGrid
  1423.         
  1424.         '给出错误提示信息
  1425.         Call Xtxxts(Tsxx, 0, 1)
  1426.         
  1427.         '返回网格错误位置 (ChangeLock避免再次引发RowColChange有效性判断), 装入录入载体
  1428.         Changelock = True
  1429.         .Select Yxxpdh, Lrywlz
  1430.         Changelock = False
  1431.         Call xswbk
  1432.         
  1433.         '函数返回False
  1434.         Sjhzyxxpd = False
  1435.         Exit Function
  1436.     End With
  1437.     
  1438. End Function
  1439. Private Sub Sub_AddBill()                                                '新增一张单据
  1440.     
  1441.     Dim RecTemp As New ADODB.Recordset            '临时使用动态集
  1442.     Dim Jsqte As Long                             '临时计数器
  1443.     
  1444.     '设置操作状态为新增(Fixed)
  1445.     Lab_OperStatus.Caption = "2"
  1446.     
  1447.     '设置工具条状态(Fixed)
  1448.     Call Sub_OperStatus("20")
  1449.     
  1450.     '清空VouchID(Fixed)
  1451.     Lab_BillId.Caption = ""
  1452.     
  1453.     '录入文本框清除内容
  1454.     For Jsqte = Max_Text_Index To 0 Step -1
  1455.         LrText(Jsqte).Tag = ""
  1456.         LrText(Jsqte).Text = ""
  1457.     Next Jsqte
  1458.     
  1459.     '重置网格(Fixed)
  1460.     With WglrGrid
  1461.         .Rows = Pmbcsjhs + .FixedRows + Fzxwghs + 1
  1462.         For Jsqte = .FixedRows To .Rows - 1
  1463.             .RowHeight(Jsqte) = Sjhgd
  1464.         Next Jsqte
  1465.         WglrGrid.Clear 1
  1466.         Changelock = True
  1467.         .Select .FixedRows, Qslz
  1468.         Changelock = False
  1469.     End With
  1470.     
  1471.     '让第一个录入项得到焦点(Fixed)
  1472.     On Error Resume Next
  1473.     Cmb_SiteName.ListIndex = -1
  1474.     Cmb_SiteName.SetFocus
  1475.     
  1476. End Sub
  1477. Private Sub Sub_EditBill()                                                '修改一张单据
  1478.     
  1479.     Dim RecTemp As New ADODB.Recordset     '临时使用动态集
  1480.     
  1481.     '非有效单据不予进行修改动作
  1482.     If Val(Lab_BillId.Caption) = 0 Then
  1483.         Exit Sub
  1484.     End If
  1485.     
  1486.     '设置操作状态为修改
  1487.     Lab_OperStatus.Caption = "3"
  1488.     
  1489.     '设置工具条状态
  1490.     Call Sub_OperStatus("30")
  1491.     
  1492. End Sub
  1493. Private Sub Sub_DeleteBill()                                               '删除当前单据
  1494.     Dim YAnswer As Integer               '确认是否删除当前单据
  1495.     Dim Jsqte As Long                    '临时使用计数器
  1496.     
  1497.     '非有效单据不予进行删除动作
  1498.     If Val(Lab_BillId.Caption) = 0 Then
  1499.         Exit Sub
  1500.     End If
  1501.     
  1502.     Tsxx = "请确认是否删除当前单据?"
  1503.     YAnswer = Xtxxts(Tsxx, 2, 2)
  1504.     
  1505.     If YAnswer = 1 Then
  1506.         
  1507.         '进行事务处理
  1508.         On Error GoTo Swcwcl
  1509.         Cw_DataEnvi.DataConnect.BeginTrans
  1510.         
  1511.         '1.删除单据所有内容
  1512.         Cw_DataEnvi.DataConnect.Execute ("Delete Qc_MidStandSub Where midstandmainid=" & Val(Lab_BillId.Caption))
  1513.         Cw_DataEnvi.DataConnect.Execute ("Delete QC_MidStandMain Where midstandmainid=" & Val(Lab_BillId.Caption))
  1514.         
  1515.         Cw_DataEnvi.DataConnect.CommitTrans
  1516.         
  1517.         '标识单据发生改动
  1518.         Bln_BillChange = True
  1519.         
  1520.         '单据ID置0
  1521.         Lab_BillId.Caption = 0
  1522.     Else
  1523.         Exit Sub
  1524.     End If
  1525.     
  1526.     '删除单据后重置状态
  1527.     
  1528.     '1.显示下一张单据
  1529.     Call Sub_Next
  1530.     
  1531.     '2.如果无下一张单据则搜索上一张单据
  1532.     If Val(Lab_BillId.Caption) = 0 Then
  1533.         Call Sub_Prev
  1534.     End If
  1535.     
  1536.     '3.如无单据则置单据为空状态
  1537.     If Val(Lab_BillId.Caption) = 0 Then
  1538.         '清除录入文本框
  1539.         For Jsqte = Max_Text_Index To 0 Step -1
  1540.             LrText(Jsqte).Tag = ""
  1541.             LrText(Jsqte).Text = ""
  1542.         Next Jsqte
  1543.         
  1544.         '重置网格(Fixed)
  1545.         With WglrGrid
  1546.             .Rows = Pmbcsjhs + .FixedRows + Fzxwghs + 1
  1547.             For Jsqte = .FixedRows To .Rows - 1
  1548.                 .RowHeight(Jsqte) = Sjhgd
  1549.             Next Jsqte
  1550.             WglrGrid.Clear 1
  1551.             Changelock = True
  1552.             .Select .FixedRows, Qslz
  1553.             Changelock = False
  1554.         End With
  1555.         
  1556.         '设置操作状态为浏览
  1557.         Lab_OperStatus = "1"
  1558.         Call Sub_OperStatus("10")
  1559.     End If
  1560.     
  1561.     Rec_Query.Requery
  1562.     Rec_Query.Find "midstandmainid=" & Val(Lab_BillId.Caption)
  1563.     Exit Sub
  1564.     
  1565. Swcwcl:          '单据删除时出现错误
  1566.     Cw_DataEnvi.DataConnect.RollbackTrans
  1567.     If Err.Number = -2147217873 Then              '(-2147217873 为SQL Server 2000通过建立外键产生的错误号)
  1568.         Tsxx = "该检验标准已经被使用,不能删除!"
  1569.         Call Xtxxts(Tsxx, 0, 1)
  1570.         Exit Sub
  1571.     Else
  1572.         Tsxx = "单据删除过程中出现未知错误,程序自动恢复保存前状态!"
  1573.         Call Xtxxts(Tsxx, 0, 1)
  1574.         Exit Sub
  1575.     End If
  1576.     
  1577. End Sub
  1578. Private Sub Sub_AbandonBill()                                              '放弃对当前单据的操作
  1579.     
  1580.     Dim Jsqte As Long                    '临时使用计数器
  1581.     
  1582.     '先关闭录入载体(Fixed)
  1583.     Changelock = True
  1584.     Valilock = True
  1585.     Call Ycwbk
  1586.     Changelock = False
  1587.     Valilock = False
  1588.     
  1589.     '如果单据有效则重新显示当前单据,置单据为空状态
  1590.     Lab_OperStatus = "1"
  1591.     If Not Rec_Query.EOF Then
  1592.         Lab_BillId.Caption = Rec_Query.Fields("midstandmainid")
  1593.         Call Sub_ShowBill
  1594.     Else
  1595.         '单据ID置为0
  1596.         Lab_BillId.Caption = 0
  1597.         
  1598.         '清除录入文本框
  1599.         For Jsqte = Max_Text_Index To 0 Step -1
  1600.             LrText(Jsqte).Tag = ""
  1601.             LrText(Jsqte).Text = ""
  1602.         Next Jsqte
  1603.        
  1604.        '重置网格(Fixed)
  1605.         With WglrGrid
  1606.             .Rows = Pmbcsjhs + .FixedRows + Fzxwghs + 1
  1607.             For Jsqte = .FixedRows To .Rows - 1
  1608.                 .RowHeight(Jsqte) = Sjhgd
  1609.             Next Jsqte
  1610.             
  1611.             WglrGrid.Clear 1
  1612.             Changelock = True
  1613.             .Select .FixedRows, Qslz
  1614.             Changelock = False
  1615.         End With
  1616.     End If
  1617.     
  1618.     '设置操作状态为浏览
  1619.     Lab_OperStatus = "1"
  1620.     Call Sub_OperStatus("10")
  1621. End Sub
  1622. Private Function Sub_SaveBill() As Boolean                                   '保 存 单 据
  1623.     
  1624.     Dim RecTemp As New ADODB.Recordset                    '临时使用动态集
  1625.     Dim Rec_VouchMain As New ADODB.Recordset              '单据主表动态集
  1626.     Dim Rec_VouchSub As New ADODB.Recordset               '单据子表动态集
  1627.     Dim Rowjsq As Long                                    '网格行计数器
  1628.     Dim Coljsq As Long                                    '网格列计数器
  1629.     Dim Jsqte As Integer                                  '临时计数器
  1630.     Dim Lng_RowCount As Long                              '有效数据行计数器
  1631.     Dim Lrywlz As Long                                    '录入有误列值
  1632.     
  1633.     Sub_SaveBill = False
  1634.     
  1635.     '一.============先对单据内容进行有效性判断==============='
  1636.     
  1637.     '先进行字段不能为空或不能为零有效性判断(Fixed)
  1638.     For Jsqte = 0 To Max_Text_Index
  1639.         If Textint(Jsqte, 8) = 1 Then     '字段不能为空
  1640.             If Len(Trim(LrText(Jsqte).Text)) = 0 Then
  1641.                 Tsxx = Textstr(Jsqte, 7) & "不能为空!"
  1642.                 Call Xtxxts(Tsxx, 0, 1)
  1643.                 LrText(Jsqte).SetFocus
  1644.                 Exit Function
  1645.             End If
  1646.         Else
  1647.             If Textint(Jsqte, 8) = 2 Then   '字段不能为零
  1648.                 If Val(Trim(LrText(Jsqte).Text)) = 0 Then
  1649.                     Tsxx = Textstr(Jsqte, 7) & "不能为零!"
  1650.                     Call Xtxxts(Tsxx, 0, 1)
  1651.                     LrText(Jsqte).SetFocus
  1652.                     Exit Function
  1653.                 End If
  1654.             End If
  1655.         End If
  1656.     Next Jsqte
  1657.     
  1658.     '对需要进行事后判断的文本框录入内容进行有效性判断 (Fixed)
  1659.     For Jsqte = 0 To Max_Text_Index
  1660.         If Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2 Then
  1661.             If Not TextYxxpd(Jsqte) Then
  1662.                 Call TextShow(Jsqte)
  1663.                 Exit Function
  1664.             End If
  1665.         End If
  1666.     Next Jsqte
  1667.     
  1668.     '[>>
  1669.     
  1670.     '可在此区域写入其他对单据表头内容的有效性判断.
  1671.    If Cmb_LineName.Text = "" Then
  1672.        Tsxx = "生产线不能为空!"
  1673.        Call Xtxxts(Tsxx, 0, 1)
  1674.        Cmb_LineName.SetFocus
  1675.        Exit Function
  1676.     End If
  1677.    If Cmb_MName.Text = "" Then
  1678.        Tsxx = "中控物料名称不能为空!"
  1679.        Call Xtxxts(Tsxx, 0, 1)
  1680.        Cmb_MName.SetFocus
  1681.        Exit Function
  1682.     End If
  1683.    If Cmb_SiteName.Text = "" Then
  1684.        Tsxx = "取样点名称不能为空!"
  1685.        Call Xtxxts(Tsxx, 0, 1)
  1686.        Cmb_SiteName.SetFocus
  1687.        Exit Function
  1688.    End If
  1689.     
  1690.     '<<]
  1691.     
  1692.     '[>>下面将对所有有效数据行进行有效性判断
  1693.     
  1694.     Lng_RowCount = 0
  1695.     
  1696.     With WglrGrid
  1697.         For Rowjsq = .FixedRows To .Rows - 1
  1698.             '带*号者为有效数据行(Fixed)
  1699.             If .TextMatrix(Rowjsq, 0) <> "*" Then
  1700.                 Exit For
  1701.             Else
  1702.                 Lng_RowCount = Lng_RowCount + 1
  1703.             End If
  1704.             
  1705.             '1.首先进行为空或为零判断(Fixed)
  1706.             
  1707.             For Jsqte = Qslz To .Cols - 1
  1708.                 
  1709.                 '字段不能为空
  1710.                 If GridInt(Jsqte, 5) = 1 Then
  1711.                     If Len(Trim(.TextMatrix(Rowjsq, Jsqte))) = 0 Then
  1712.                         Tsxx = GridStr(Jsqte, 2)
  1713.                         Lrywlz = Jsqte
  1714.                         GoTo Lrcwcl
  1715.                         Exit For
  1716.                     End If
  1717.                 End If
  1718.                 
  1719.                 '字段不能为零
  1720.                 If GridInt(Jsqte, 5) = 2 Then
  1721.                     If Val(Trim(.TextMatrix(Rowjsq, Jsqte))) = 0 Then
  1722.                         Tsxx = GridStr(Jsqte, 2)
  1723.                         Lrywlz = Jsqte
  1724.                         GoTo Lrcwcl
  1725.                         Exit For
  1726.                     End If
  1727.                 End If
  1728.             Next Jsqte
  1729.             
  1730.             '2.判断检验项目是否存在(Define)
  1731.             Sqlstr = "SELECT itemcode From qc_checkitem Where itemCode='" & Trim(.TextMatrix(Rowjsq, 1)) & "'"
  1732.             Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1733.             If RecTemp.EOF Then
  1734.                 Tsxx = "此检验项目不存在!"
  1735.                 Lrywlz = Sydz("001", GridStr(), Szzls)
  1736.                 GoTo Lrcwcl
  1737.             End If
  1738.         Next Rowjsq
  1739.         
  1740.         '单据分录行数不能为零(Fixed)
  1741.         If Lng_RowCount = 0 Then
  1742.             Tsxx = "检验项目不能为空!"
  1743.             Call Xtxxts(Tsxx, 0, 1)
  1744.             Exit Function
  1745.         End If
  1746.         
  1747.         '[>>
  1748.         '此处可以定义整张单据不能通过有效性检查的理由
  1749.      For i = .FixedRows To .Rows - 1
  1750.         If Trim(.TextMatrix(i, 0)) = "*" Then
  1751.             str_temp1 = Trim(.TextMatrix(i, Sydz("001", GridStr(), Szzls)))
  1752.             For j = i + 1 To .Rows - 1
  1753.                 If Trim(.TextMatrix(j, 0)) = "*" Then
  1754.                     str_temp2 = Trim(.TextMatrix(j, Sydz("001", GridStr(), Szzls)))
  1755.                     If str_temp1 = str_temp2 Then
  1756.                         Call Xtxxts("检验项目不能重复!", 0, 1)
  1757.                         Exit Function
  1758.                     End If
  1759.                 End If
  1760.             Next j
  1761.         End If
  1762.     Next i
  1763.         '<<]
  1764.     End With  '网格
  1765.     
  1766.     
  1767.     '二.=============如果以上有效性检查均顺利通过,则执行存盘动作============'
  1768.     
  1769.     '对存盘进行事务处理(Fixed)
  1770.     On Error GoTo Swcwcl
  1771.     Cw_DataEnvi.DataConnect.BeginTrans
  1772.     
  1773.     '判断单据状态以进行不同处理
  1774.     
  1775.     '1.先对单据主表进行处理
  1776.     If Trim(Lab_OperStatus) = "2" Then
  1777.         
  1778.         '新增单据
  1779.         
  1780.         '1.对于某些单据号自动生成的单据则可在此处自动生成
  1781.         LrText(0).Text = CreatBillCode(BillCode, True)
  1782.         
  1783.         '2.开始存盘
  1784.         
  1785.         '打开单据主表动态集
  1786.         If Rec_VouchMain.State = 1 Then Rec_VouchMain.Close
  1787.         Rec_VouchMain.Open "Select * From QC_MidStandMain Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1788.         
  1789.         With Rec_VouchMain
  1790.             .AddNew
  1791.             .Fields("midstandmainid") = CreatBillID(BillCode)
  1792.             .Fields("mnumber") = Trim(Cmb_MNumber.Text & "")
  1793.             .Fields("linecode") = Trim(Cmb_LineCode.Text & "")
  1794.             .Fields("sitecode") = Trim(Cmb_SiteCode.Text & "")
  1795.             .Update
  1796.             '系统读出单据ID写入Lab_BillID
  1797.             Lab_BillId.Caption = .Fields("midstandmainid")
  1798.         End With
  1799.     Else
  1800.         '修改单据
  1801.         
  1802.         '1.删除原单据子表中所有内容
  1803.         
  1804.         Cw_DataEnvi.DataConnect.Execute ("Delete Qc_MidStandSub Where midstandmainid=" & Val(Lab_BillId.Caption))
  1805.         
  1806.     End If
  1807.     
  1808.     '2.对单据子表进行处理
  1809.     
  1810.     '打开单据子表动态集
  1811.     If Rec_VouchSub.State = 1 Then Rec_VouchSub.Close
  1812.     Rec_VouchSub.Open "Select * From Qc_MidStandSub Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1813.     
  1814.     '将网格中有效数据行写入单据子表
  1815.     For Rowjsq = WglrGrid.FixedRows To WglrGrid.Rows - 1
  1816.         If WglrGrid.TextMatrix(Rowjsq, 0) <> "*" Then
  1817.             Exit For
  1818.         End If
  1819.         
  1820.         With Rec_VouchSub
  1821.             .AddNew
  1822.             .Fields("midStandSubId") = Rowjsq - WglrGrid.FixedRows + 1                            '单据记录顺序号
  1823.             .Fields("midstandmainid") = Val(Lab_BillId.Caption)                                   '单据ID
  1824.             .Fields("ItemCode") = Trim(WglrGrid.TextMatrix(Rowjsq, 1))                            '检验项目
  1825.             .Fields("Stand") = Trim(WglrGrid.TextMatrix(Rowjsq, Sydz("002", GridStr(), Szzls)))   '检验标准
  1826.             .Fields("Remark") = Trim(WglrGrid.TextMatrix(Rowjsq, Sydz("004", GridStr(), Szzls)))  '备注
  1827.             .Update
  1828.         End With
  1829.     Next Rowjsq
  1830.     Cw_DataEnvi.DataConnect.CommitTrans
  1831.     
  1832.     Sub_SaveBill = True
  1833.     Tsxx = "单据存盘完毕!"
  1834.     Call Xtxxts(Tsxx, 0, 4)
  1835.     
  1836.     '标识单据发生改动
  1837.     Bln_BillChange = True
  1838.     
  1839.     '设置单据改变后的状态
  1840.     Lab_OperStatus = "1"
  1841.     Call Sub_OperStatus("10")
  1842.     Rec_Query.Requery
  1843.     Rec_Query.Find "midstandmainid=" & Val(Lab_BillId.Caption)
  1844.     
  1845.     Exit Function
  1846.     
  1847. Swcwcl:       '数据存盘时出现错误
  1848.     Cw_DataEnvi.DataConnect.RollbackTrans
  1849.     With WglrGrid
  1850.         If Err.Number = -2147217887 Then
  1851.             Tsxx = "单据中第  " & Trim(Str(Rowjsq - .FixedRows + 1)) & " 条分录录入数据超出允许范围!"
  1852.             Call Xtxxts(Tsxx, 0, 1)
  1853.             Changelock = True
  1854.             .Select Rowjsq, Qslz
  1855.             WglrGrid.SetFocus
  1856.             Changelock = False
  1857.             Exit Function
  1858.         Else
  1859.             Tsxx = "存盘过程中出现未知错误,程序自动恢复保存前状态!"
  1860.             Call Xtxxts(Tsxx, 0, 1)
  1861.             Exit Function
  1862.         End If
  1863.     End With
  1864.     
  1865. Lrcwcl:        '录入错误处理(存盘前逐行有效性判断)
  1866.     With WglrGrid
  1867.         Call Xtxxts("(第 " & Trim(Str(Rowjsq - .FixedRows + 1)) & " 条单据分录)-" & Tsxx, 0, 1)
  1868.         Changelock = True
  1869.         .Select Rowjsq, Lrywlz
  1870.         WglrGrid.SetFocus
  1871.         Changelock = False
  1872.         Exit Function
  1873.     End With
  1874.     
  1875. End Function
  1876. '选择首张,上张,下张,末张(此4个过程只需用您的单据ID字段名替换"midstandmainid"即可)
  1877. Private Sub Sub_First()             '首 张
  1878.     
  1879.     With Rec_Query
  1880.         If .RecordCount = 0 Then
  1881.             Exit Sub
  1882.         End If
  1883.         .MoveFirst
  1884.         Lab_BillId.Caption = .Fields("midstandmainid")
  1885.         Call Sub_ShowBill
  1886.     End With
  1887.     
  1888. End Sub
  1889. Private Sub Sub_Prev()             '上 张
  1890.     
  1891.     With Rec_Query
  1892.         If .RecordCount = 0 Then
  1893.             Exit Sub
  1894.         End If
  1895.         If Not .BOF Then
  1896.             .MovePrevious
  1897.         End If
  1898.         If Not .BOF Then
  1899.             Lab_BillId.Caption = .Fields("midstandmainid")
  1900.         Else
  1901.             .MoveNext
  1902.         End If
  1903.         Call Sub_ShowBill
  1904.     End With
  1905.     
  1906. End Sub
  1907. Private Sub Sub_Next()             '下 张
  1908.     With Rec_Query
  1909.         If .RecordCount = 0 Then
  1910.             Exit Sub
  1911.         End If
  1912.         If Not .EOF Then
  1913.             .MoveNext
  1914.         End If
  1915.         If Not .EOF Then
  1916.             Lab_BillId.Caption = .Fields("midstandmainid")
  1917.         Else
  1918.             .MovePrevious
  1919.         End If
  1920.         Call Sub_ShowBill
  1921.     End With
  1922.     
  1923. End Sub
  1924. Private Sub Sub_Last()              '末 张
  1925.     
  1926.     With Rec_Query
  1927.         If .RecordCount = 0 Then
  1928.             Exit Sub
  1929.         End If
  1930.         .MoveLast
  1931.         Lab_BillId.Caption = .Fields("midstandmainid")
  1932.         Call Sub_ShowBill
  1933.     End With
  1934.     
  1935. End Sub
  1936. '[>>===================以下为根据实际业务需要自定义过程区域=============================<<]
  1937. '*****************以下为下拉框设置*******************
  1938. Private Sub InitCmb()
  1939.     Dim Rec_Line As New ADODB.Recordset
  1940.     Cmb_LineCode.Clear
  1941.     Cmb_LineName.Clear
  1942.     Cmb_LineCode.AddItem " "
  1943.     Cmb_LineName.AddItem " "
  1944.     Set Rec_Line = Cw_DataEnvi.DataConnect.Execute("SELECT * FROM QC_ProductLine Order By LineCode ")
  1945.     If Rec_Line.RecordCount < 1 Then
  1946.         Rec_Line.Close
  1947.         Exit Sub
  1948.     End If
  1949.     Do While Not Rec_Line.EOF
  1950.         Cmb_LineCode.AddItem Trim(Rec_Line.Fields("LineCode") & "")
  1951.         Cmb_LineName.AddItem Trim(Rec_Line.Fields("LineName") & "")
  1952.         Rec_Line.MoveNext
  1953.     Loop
  1954.     Cmb_LineCode.ListIndex = 0
  1955.     Cmb_LineName.ListIndex = 0
  1956.     '设置TabIndex
  1957.     Cmb_LineName.TabIndex = 0
  1958.     Cmb_MName.TabIndex = 1
  1959.     Cmb_SiteName.TabIndex = 2
  1960. End Sub
  1961. Private Sub Cmb_LineName_Click()
  1962.     If Cmb_LineCode.ListIndex <> Cmb_LineName.ListIndex Then
  1963.         WglrGrid.Clear 1
  1964.         Cmb_LineCode.Text = Cmb_LineCode.List(Cmb_LineName.ListIndex)
  1965.         Cmb_MName_DropDown
  1966.         Cmb_SiteName_DropDown
  1967.     End If
  1968. End Sub
  1969. '[<<=====================按回车转移焦点自动填充列表框=====================
  1970. Private Sub Cmb_LineName_LostFocus()
  1971.     If Cmb_MName.ListCount = 0 Then
  1972.         Cmb_MName_DropDown
  1973.     End If
  1974. End Sub
  1975. Private Sub Cmb_MName_LostFocus()
  1976.     If Cmb_SiteName.ListCount = 0 Then
  1977.         Cmb_SiteName_DropDown
  1978.     End If
  1979. End Sub
  1980. '>>]=====================填充结束==========================================
  1981. Private Sub Cmb_MName_Click()
  1982.     If Cmb_MNumber.ListIndex <> Cmb_MName.ListIndex Then
  1983.         WglrGrid.Clear 1
  1984.         
  1985.         Cmb_MNumber.Text = Cmb_MNumber.List(Cmb_MName.ListIndex)
  1986.         Cmb_SiteName_DropDown
  1987.     End If
  1988. End Sub
  1989. Private Sub Cmb_MName_DropDown()
  1990.     Cmb_MName.Clear
  1991.     Cmb_MNumber.Clear
  1992.     Dim Rs_MName As ADODB.Recordset
  1993.     Dim Str_MName As String
  1994.     Str_MName = "SELECT DISTINCT QC_SamplingSite.Mnumber,qc_midmaterial.mname FROM QC_SamplingSite LEFT JOIN qc_midmaterial ON QC_SamplingSite.Mnumber=qc_midmaterial.Mnumber WHERE QC_SamplingSite.linecode='" & Trim(Cmb_LineCode.Text & "") & "'"
  1995.     Set Rs_MName = Cw_DataEnvi.DataConnect.Execute(Str_MName)
  1996.     If Rs_MName.RecordCount < 1 Then
  1997.         Rs_MName.Close
  1998.         Exit Sub
  1999.     End If
  2000.     
  2001.     Do While Not Rs_MName.EOF
  2002.         Cmb_MName.AddItem Trim(Rs_MName!MName & "")
  2003.         Cmb_MNumber.AddItem Trim(Rs_MName!MNumber & "")
  2004.         Rs_MName.MoveNext
  2005.     Loop
  2006.     
  2007.     Rs_MName.Close
  2008.     Set Rs_MName = Nothing
  2009. End Sub
  2010. Private Sub Cmb_SiteName_Click()
  2011.     If Cmb_SiteName.ListIndex <> -1 And Trim(Lab_OperStatus) = "2" Then
  2012.        WglrGrid.Clear 1
  2013.         
  2014.        Cmb_SiteCode.Text = Cmb_SiteCode.List(Cmb_SiteName.ListIndex)
  2015.        str_TempSql = "select * from qc_midstandmain where mnumber='" & Trim(Cmb_MNumber.Text & "") & "' and linecode='" & _
  2016.        Trim(Cmb_LineCode.Text & "") & "' and sitecode='" & Trim(Cmb_SiteCode.Text & "") & "'"
  2017.        Set rs_Temp = Cw_DataEnvi.DataConnect.Execute(str_TempSql)
  2018.     
  2019.         If rs_Temp.EOF Then
  2020.            Exit Sub
  2021.         Else
  2022.            Tsxx = "此取样点的检验标准已经建立!"
  2023.            Call Xtxxts(Tsxx, 0, 3)
  2024.            Cmb_SiteName.ListIndex = -1
  2025.            Cmb_SiteName.SetFocus
  2026.         End If
  2027.     End If
  2028. End Sub
  2029. Private Sub Cmb_SiteName_DropDown()
  2030.     Cmb_SiteName.Clear
  2031.     Cmb_SiteCode.Clear
  2032.     Dim Rec_Site As ADODB.Recordset
  2033.     Set Rec_Site = Cw_DataEnvi.DataConnect.Execute("SELECT * FROM QC_SamplingSite WHERE mnumber='" & Trim(Cmb_MNumber.Text & "") & "'")
  2034.     If Rec_Site.RecordCount < 1 Then
  2035.         Rec_Site.Close
  2036.         Exit Sub
  2037.     End If
  2038.     
  2039.     Do While Not Rec_Site.EOF
  2040.         Cmb_SiteName.AddItem Trim(Rec_Site!SiteName & "")
  2041.         Cmb_SiteCode.AddItem Trim(Rec_Site!SiteCode & "")
  2042.         Rec_Site.MoveNext
  2043.     Loop
  2044.     
  2045.     Rec_Site.Close
  2046.     Set Rec_Site = Nothing
  2047. End Sub
  2048. '*****************以上为下拉框设置********************
  2049.     
  2050. '[>>===================以上为根据实际业务需要自定义过程区域=============================<<]
  2051. '===================以 下 程 序 为 通 用 部 分 ,一 般 不 需 更 改(程序动作部分)======================='
  2052. Private Sub Sub_AdjustGrid()
  2053.     
  2054.     '调 整 网 格
  2055.     With WglrGrid
  2056.         '加 1 保持一行录入行
  2057.         If .Rows < Pmbcsjhs + .FixedRows + Fzxwghs + 1 Then
  2058.             .Rows = Pmbcsjhs + .FixedRows + Fzxwghs + 1
  2059.             For Jsqte = .FixedRows To .Rows - 1
  2060.                 .RowHeight(Jsqte) = Sjhgd
  2061.             Next Jsqte
  2062.         End If
  2063.         
  2064.         '判断是否有辅助行和录入行,如没有则加行
  2065.         Do While .TextMatrix(.Rows - 1 - Fzxwghs, 0) = "*"
  2066.             .AddItem ""
  2067.             .RowHeight(.Rows - 1) = Sjhgd
  2068.         Loop
  2069.     
  2070.     End With
  2071.     
  2072. End Sub
  2073. Private Sub Lrzdbz()                                                      '录入字段帮助
  2074.     
  2075.     If Not Ydcommand.Visible Then
  2076.         Exit Sub
  2077.     End If
  2078.     
  2079.     With WglrGrid
  2080.         Valilock = True
  2081.         
  2082.         '处理通用部分
  2083.         Changelock = True        '调入另外窗体必须加锁
  2084.         Call Drbmhelp(GridInt(.Col, 6), GridStr(.Col, 3), Trim(Ydtext.Text))
  2085.         Changelock = False
  2086.         
  2087.         If Len(Xtfhcs) <> 0 Then
  2088.             If GridInt(.Col, 7) = 0 Then
  2089.                 Ydtext.Text = Xtfhcs
  2090.             Else
  2091.                 Ydtext.Text = Xtfhcsfz
  2092.             End If
  2093.         End If
  2094.         
  2095.         Valilock = False
  2096.         If Ydtext.Visible Then
  2097.             Ydtext.SetFocus
  2098.         End If
  2099.     End With
  2100.     
  2101. End Sub
  2102. Private Sub Cshhjwg()                                                     '初始化合计网格(*对合计网格来说,录入网格为容器)
  2103.     
  2104.     With HjGrid
  2105.         
  2106.         '是否显示合计网格
  2107.         If Not Sfxshjwg Then
  2108.             .Visible = False
  2109.             Exit Sub
  2110.         Else
  2111.             .Visible = True
  2112.         End If
  2113.         
  2114.         '设置网格相关属性
  2115.         .Enabled = False
  2116.         .Appearance = flexFlat
  2117.         .BorderStyle = flexBorderNone
  2118.         .ScrollBars = flexScrollBarNone
  2119.         .Width = WglrGrid.Width
  2120.         .FixedRows = 0
  2121.         .Rows = 1
  2122.         .Cols = WglrGrid.Cols
  2123.         .LeftCol = WglrGrid.LeftCol
  2124.         .TextMatrix(0, Qslz) = "合  计"
  2125.         For Jsqte = 0 To WglrGrid.Cols - 1
  2126.             .ColHidden(Jsqte) = WglrGrid.ColHidden(Jsqte)
  2127.             .ColWidth(Jsqte) = WglrGrid.ColWidth(Jsqte)
  2128.             .ColAlignment(Jsqte) = WglrGrid.ColAlignment(Jsqte)
  2129.             .ColFormat(Jsqte) = WglrGrid.ColFormat(Jsqte)
  2130.         Next Jsqte
  2131.         .ColAlignment(Qslz) = flexAlignCenterTop
  2132.         For Jsqte = .FixedRows To .Rows - 1
  2133.             .RowHeight(Jsqte) = .Height / .Rows
  2134.         Next Jsqte
  2135.         
  2136.         '程序自动调整网格高度(自动设置为网格剩余高度+辅助项网格行数(默认为1)*数据行高度)、并设置其位置信息
  2137.         .Height = Fzxwghs * Sjhgd + ((WglrGrid.Height - WglrGrid.FixedRows * WglrGrid.RowHeight(0)) Mod Sjhgd)
  2138.         .RowHeight(0) = .Height
  2139.         .Move 0, WglrGrid.Height - .Height, WglrGrid.Width, .Height
  2140.     End With
  2141.     
  2142. End Sub
  2143. Private Sub Form_Resize()                                                '窗体大小发生变化时,重新显示文本框
  2144.     Call Cxxswbk
  2145. End Sub
  2146. Private Function Fun_Drfrmyxxpd() As Boolean                             '调入其它窗体或功能产生的有效性判断(包括数据回写)
  2147.     Fun_Drfrmyxxpd = True
  2148.     With WglrGrid
  2149.         
  2150.         '如果当前网格处于编辑状态,则先进行数据回写再进行有效性判断
  2151.         If Ydtext.Visible Or YdCombo.Visible Then
  2152.             Call Lrsjhx
  2153.             If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then
  2154.                 Fun_Drfrmyxxpd = False
  2155.                 Exit Function
  2156.             End If
  2157.         End If
  2158.         
  2159.         '进行行有效性判断
  2160.         If Not Sjhzyxxpd(.Row) Then
  2161.             Fun_Drfrmyxxpd = False
  2162.             Exit Function
  2163.         End If
  2164.         
  2165.     End With
  2166.     
  2167. End Function
  2168. Private Sub WglrGrid_AfterUserResize(ByVal Row As Long, ByVal Col As Long)       '调整列宽
  2169.     
  2170.     If HjGrid.Visible Then
  2171.         With HjGrid
  2172.             .ColWidth(Col) = WglrGrid.ColWidth(Col)
  2173.         End With
  2174.     End If
  2175.     
  2176. End Sub
  2177. Private Sub WglrGrid_EnterCell()                                                 '显示当前数据行相关信息
  2178.     
  2179.     With WglrGrid
  2180.         If .Row >= .FixedRows Then
  2181.             '[>>
  2182.             '此处可以填写显示与此网格行相关信息
  2183.             '<<]
  2184.         End If
  2185.     End With
  2186.     
  2187. End Sub
  2188. Private Sub WglrGrid_GotFocus()                                     '网格得到焦点
  2189.     
  2190.     '网格得到焦点,如果当前选择行为非数据行
  2191.     '则调整当前焦点至有效数据行
  2192.     
  2193.     With WglrGrid
  2194.         If .Row < .FixedRows And .Rows > .FixedRows Then
  2195.             Changelock = True
  2196.             .Select .FixedRows, .Col
  2197.             Changelock = False
  2198.         End If
  2199.         If .Col < Qslz Then
  2200.             Changelock = True
  2201.             .Select .Row, Qslz
  2202.             Changelock = False
  2203.         End If
  2204.     End With
  2205.     
  2206. End Sub
  2207. Private Sub WglrGrid_LostFocus()                                    '录入网格失去焦点
  2208.     
  2209.     '用以屏蔽调用其它窗体时发生网格失去焦点事件
  2210.     If Changelock Then
  2211.         Exit Sub
  2212.     End If
  2213.     
  2214.     '引发网格RowcolChange事件
  2215.     With WglrGrid
  2216.         If Not (Ydtext.Visible Or YdCombo.Visible) Then
  2217.             .Select 0, 0
  2218.         End If
  2219.     End With
  2220.     
  2221. End Sub
  2222. Private Sub WglrGrid_AfterScroll(ByVal OldTopRow As Long, ByVal OldLeftCol As Long, ByVal NewTopRow As Long, ByVal NewLeftCol As Long)                                       '限制用户在录入过程中滚动鼠标
  2223.     
  2224.     If Gdtlock Then
  2225.         Exit Sub
  2226.     End If
  2227.     
  2228.     With WglrGrid
  2229.         If Ydtext.Visible Or YdCombo.Visible Then
  2230.             Gdtlock = True
  2231.             .TopRow = Dqtoprow
  2232.             .LeftCol = Dqleftcol
  2233.             Gdtlock = False
  2234.             Exit Sub
  2235.         End If
  2236.         HjGrid.LeftCol = .LeftCol
  2237.     End With
  2238.     
  2239. End Sub
  2240. Private Sub WglrGrid_LeaveCell()                                    '离开单元格
  2241.     
  2242.     If Changelock Then
  2243.         Exit Sub
  2244.     End If
  2245.     
  2246.     '记录刚刚离开网格单元的行列值
  2247.     Dqlkwgh = WglrGrid.Row
  2248.     Dqlkwgl = WglrGrid.Col
  2249.     
  2250.     '判断是否需要录入数据回写
  2251.     If Not (Ydtext.Visible Or YdCombo.Visible) Then
  2252.         Exit Sub
  2253.     End If
  2254.     Call Lrsjhx
  2255.     
  2256. End Sub
  2257. Private Sub WglrGrid_RowColChange()                                '网格录入行列发生变化时,进行有效性判断
  2258.     Valilock = True       '屏蔽文本框失去焦点进行有效性判断
  2259.     With WglrGrid
  2260.         If Changelock Then
  2261.             Exit Sub
  2262.         End If
  2263.         If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then
  2264.             Exit Sub
  2265.         End If
  2266.         If .Row <> Dqlkwgh Then
  2267.             If Not Sjhzyxxpd(Dqlkwgh) Then
  2268.                 Exit Sub
  2269.             End If
  2270.         End If
  2271.     End With
  2272.     
  2273.     Call fhyxh
  2274.     Call Xldql
  2275.     
  2276. End Sub
  2277. Private Sub WglrGrid_DblClick()          '鼠标双击网格显示文本框
  2278.     
  2279.     With WglrGrid
  2280.         Call xswbk
  2281.     End With
  2282.     
  2283. End Sub
  2284. Private Sub Ycwbk()                      '隐藏文本框,帮助按钮,列表组合框
  2285.     
  2286.     Valilock = True
  2287.     Ydtext.Visible = False
  2288.     YdCombo.Visible = False
  2289.     Ydcommand.Visible = False
  2290.     
  2291. End Sub
  2292. Private Sub YdCombo_KeyDown(KeyCode As Integer, Shift As Integer)        '列表框移动
  2293.     With WglrGrid
  2294.         Select Case KeyCode
  2295.         Case vbKeyEscape                'ESC 键放弃录入
  2296.             Valilock = True
  2297.             .SetFocus
  2298.             Call Ycwbk
  2299.             Valilock = False
  2300.         Case vbKeyReturn                '回 车 键 =13
  2301.             KeyCode = 0
  2302.             .SetFocus
  2303.             Call Lrsjhx
  2304.             Rowjsq = .Row
  2305.             Coljsq = .Col + 1
  2306.             If Coljsq > .Cols - 1 Then
  2307.                 If Rowjsq < .Rows - 1 Then
  2308.                     Rowjsq = Rowjsq + 1
  2309.                 End If
  2310.                 Coljsq = Qslz
  2311.             End If
  2312.             Do While Rowjsq <= .Rows - 1
  2313.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  2314.                     Coljsq = Coljsq + 1
  2315.                     If Coljsq > .Cols - 1 Then
  2316.                         Rowjsq = Rowjsq + 1
  2317.                         Coljsq = Qslz
  2318.                     End If
  2319.                 Else
  2320.                     Exit Do
  2321.                 End If
  2322.             Loop
  2323.             .Select Rowjsq, Coljsq
  2324.         Case vbKeyLeft                  '左 箭 头 =37
  2325.             If .Col - 1 = Qslz Then
  2326.                 If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  2327.                     GoTo jzzx
  2328.                 End If
  2329.             End If
  2330.             If .Col > Qslz Then
  2331.                 KeyCode = 0
  2332.                 .SetFocus
  2333.                 Call Lrsjhx
  2334.                 Coljsq = .Col - 1
  2335.                 Do While Coljsq > Qslz
  2336.                     If Coljsq - 1 = Qslz Then
  2337.                         If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  2338.                             GoTo jzzx
  2339.                         End If
  2340.                     End If
  2341.                     If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  2342.                         Coljsq = Coljsq - 1
  2343.                     Else
  2344.                         Exit Do
  2345.                     End If
  2346.                 Loop
  2347.                 .Select .Row, Coljsq
  2348.             End If
  2349.         Case vbKeyRight                 '右 箭 头 =39
  2350.             KeyCode = 0
  2351.             .SetFocus
  2352.             Call Lrsjhx
  2353.             Rowjsq = .Row
  2354.             Coljsq = .Col + 1
  2355.             If Coljsq > .Cols - 1 Then
  2356.                 If Rowjsq < .Rows - 1 Then
  2357.                     Rowjsq = Rowjsq + 1
  2358.                 End If
  2359.                 Coljsq = Qslz
  2360.             End If
  2361.             Do While Rowjsq <= .Rows - 1
  2362.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  2363.                     Coljsq = Coljsq + 1
  2364.                     If Coljsq > .Cols - 1 Then
  2365.                         Rowjsq = Rowjsq + 1
  2366.                         Coljsq = Qslz
  2367.                     End If
  2368.                 Else
  2369.                     Exit Do
  2370.                 End If
  2371.             Loop
  2372.             .Select Rowjsq, Coljsq
  2373.         Case Else
  2374.         End Select
  2375.         
  2376. jzzx:
  2377.         
  2378.     End With
  2379.     
  2380. End Sub
  2381. Private Sub YdCombo_LostFocus()
  2382.     
  2383.     With WglrGrid                                    '因为选中网格会先发生Rowcolchange事件置Valiock
  2384.         If Not Valilock Then                           '为TRUE
  2385.             Call Lrsjhx
  2386.             If Not Sjhzyxxpd(Dqlrwgh) Then
  2387.                 Exit Sub
  2388.             End If
  2389.         End If
  2390.     End With
  2391.     
  2392. End Sub
  2393. Private Sub Ydcommand_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  2394.     Call Lrzdbz
  2395. End Sub
  2396. Private Sub ydtext_KeyDown(KeyCode As Integer, Shift As Integer)
  2397.     Dim Rowjsq As Long, Coljsq As Long
  2398.     With WglrGrid
  2399.         Select Case KeyCode
  2400.         Case vbKeyF2
  2401.             Call Lrzdbz
  2402.         Case vbKeyEscape                'ESC 键放弃录入
  2403.             Valilock = True
  2404.             Call Ycwbk
  2405.             .SetFocus
  2406.         Case vbKeyReturn                '回 车 键 =13
  2407.             KeyCode = 0
  2408.             .SetFocus
  2409.             Call Lrsjhx
  2410.             Rowjsq = .Row
  2411.             Coljsq = .Col + 1
  2412.             If Coljsq > .Cols - 1 Then
  2413.                 If Rowjsq < .Rows - 1 Then
  2414.                     Rowjsq = Rowjsq + 1
  2415.                 End If
  2416.                 Coljsq = Qslz
  2417.             End If
  2418.             Do While Rowjsq <= .Rows - 1
  2419.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  2420.                     Coljsq = Coljsq + 1
  2421.                     If Coljsq > .Cols - 1 Then
  2422.                         Rowjsq = Rowjsq + 1
  2423.                         Coljsq = Qslz
  2424.                     End If
  2425.                 Else
  2426.                     Exit Do
  2427.                 End If
  2428.             Loop
  2429.             If Rowjsq <= .Rows - 1 Then
  2430.                 .Select Rowjsq, Coljsq
  2431.             End If
  2432.         Case vbKeyUp                    '上 箭 头 =38
  2433.             KeyCode = 0
  2434.             .SetFocus
  2435.             Call Lrsjhx
  2436.             If .Row > .FixedRows Then
  2437.                 .Row = .Row - 1
  2438.             End If
  2439.         Case vbKeyDown                  '下 箭 头 =40
  2440.             KeyCode = 0
  2441.             .SetFocus
  2442.             Call Lrsjhx
  2443.             If .Row < .Rows - 1 Then
  2444.                 .Row = .Row + 1
  2445.             End If
  2446.         Case vbKeyLeft                  '左 箭 头 =37
  2447.             If .Col - 1 = Qslz Then
  2448.                 If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  2449.                     GoTo jzzx
  2450.                 End If
  2451.             End If
  2452.             If Ydtext.SelStart = 0 And .Col > Qslz Then
  2453.                 KeyCode = 0
  2454.                 .SetFocus
  2455.                 Call Lrsjhx
  2456.                 Coljsq = .Col - 1
  2457.                 Do While Coljsq > Qslz
  2458.                     If Coljsq - 1 = Qslz Then
  2459.                         If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  2460.                             GoTo jzzx
  2461.                         End If
  2462.                     End If
  2463.                     If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  2464.                         Coljsq = Coljsq - 1
  2465.                     Else
  2466.                         Exit Do
  2467.                     End If
  2468.                 Loop
  2469.                 .Select .Row, Coljsq
  2470.             End If
  2471. jzzx:
  2472.         Case vbKeyRight                 '右 箭 头 =39
  2473.             wblong = Len(Ydtext.Text)
  2474.             If (Ydtext.SelStart = wblong Or Ydtext.SelLength = wblong) Then
  2475.                 KeyCode = 0
  2476.                 .SetFocus
  2477.                 Call Lrsjhx
  2478.                 Rowjsq = .Row
  2479.                 Coljsq = .Col + 1
  2480.                 If Coljsq > .Cols - 1 Then
  2481.                     If Rowjsq < .Rows - 1 Then
  2482.                         Rowjsq = Rowjsq + 1
  2483.                     End If
  2484.                     Coljsq = Qslz
  2485.                 End If
  2486.                 Do While Rowjsq <= .Rows - 1
  2487.                     If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  2488.                         Coljsq = Coljsq + 1
  2489.                         If Coljsq > .Cols - 1 Then
  2490.                             Rowjsq = Rowjsq + 1
  2491.                             Coljsq = Qslz
  2492.                         End If
  2493.                     Else
  2494.                         Exit Do
  2495.                     End If
  2496.                 Loop
  2497.                 .Select Rowjsq, Coljsq
  2498.             End If
  2499.         Case Else
  2500.         End Select
  2501.     End With
  2502.     
  2503. End Sub
  2504. Private Sub ydtext_KeyPress(KeyAscii As Integer)         '录入字符事中控制
  2505.     
  2506.     Call InputFieldLimit(Ydtext, GridInt(WglrGrid.Col, 1), KeyAscii)
  2507.     If KeyAscii <> 0 Then
  2508.         Call Xyxhbz(Dqlrwgh)
  2509.     End If
  2510.     
  2511. End Sub
  2512. Private Sub ydtext_Change()                              '录入事中变化处理
  2513.     
  2514.     '防止程序改变但不进行处理
  2515.     
  2516.     If Wbkbhlock Then
  2517.         Exit Sub
  2518.     End If
  2519.     
  2520.     With WglrGrid
  2521.         '限制字段录入长度
  2522.         Wbkbhlock = True
  2523.         
  2524.         Call TextChangeLimit(Ydtext, GridInt(.Col, 1))  '去掉无效字符
  2525.         
  2526.         Select Case GridInt(.Col, 1)
  2527.         Case 8, 11   '金额型
  2528.             Call Sjgskz(Ydtext, Xtjezws - Xtjexsws - 1, Xtjexsws)
  2529.         Case 9, 12   '数量型
  2530.             Call Sjgskz(Ydtext, Xtslzws - Xtslxsws - 1, Xtslxsws)
  2531.         Case 10      '单价型
  2532.             Call Sjgskz(Ydtext, Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  2533.         Case Else    '其他类型
  2534.             If GridInt(.Col, 3) <> 0 Or GridInt(.Col, 4) <> 0 Then
  2535.                 Call Sjgskz(Ydtext, GridInt(.Col, 3), GridInt(.Col, 4))
  2536.             End If
  2537.         End Select
  2538.         Wbkbhlock = False
  2539.     End With
  2540.     
  2541. End Sub
  2542. Private Sub ydtext_LostFocus()            '如果由于选中网格之外的控件而发生有效性判断(选中网格会先发生Rowcolchange事件置Valiock为TRUE)
  2543.     
  2544.     With WglrGrid
  2545.         If Not Valilock Then
  2546.             Call Lrsjhx
  2547.             If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then
  2548.                 Exit Sub
  2549.             End If
  2550.             If Not Sjhzyxxpd(Dqlrwgh) Then
  2551.                 Exit Sub
  2552.             End If
  2553.         End If
  2554.     End With
  2555.     
  2556. End Sub
  2557. Private Sub xswbk()                       '在当前选中单元显示文本框,列表框,帮助按钮(通用)
  2558.     
  2559.     Dim Wbkpy As Integer, Wbkpy1 As Integer '文本框偏移量
  2560.     
  2561.     '当某种条件成立时禁止文本框激活使单据处于录入状态
  2562.     If Not Fun_AllowInput Then
  2563.         Exit Sub
  2564.     End If
  2565.     
  2566.     '显示文本框前返回有效行列(解决滚动条问题)
  2567.     Call Xldqh
  2568.     Call Xldql
  2569.     
  2570.     '隐藏文本框,帮助按钮,列表组合框
  2571.     Call Ycwbk
  2572.     
  2573.     With WglrGrid
  2574.         Dqlrwgh = .Row
  2575.         Dqlrwgl = .Col
  2576.         If Not GridBoolean(.Col, 1) Or .Row < .FixedRows Then
  2577.             Exit Sub
  2578.         End If
  2579.         
  2580.         Wbkpy = 30
  2581.         Wbkpy1 = 15
  2582.         
  2583.         On Error Resume Next
  2584.         
  2585.         If GridBoolean(.Col, 3) Then
  2586.             YdCombo.Left = .CellLeft + .Left + Wbkpy
  2587.             YdCombo.Top = .CellTop + .Top + Wbkpy
  2588.             YdCombo.Width = .CellWidth - Wbkpy1
  2589.             Call Wbkcl
  2590.             YdCombo.Visible = True
  2591.             YdCombo.SetFocus
  2592.             Ydcommand.Visible = False
  2593.             Ydtext.Visible = False
  2594.         Else
  2595.             If GridBoolean(.Col, 2) Then
  2596.                 Ydcommand.Left = .Left + .CellLeft + .CellWidth - Ydcommand.Width + Wbkpy
  2597.                 Ydcommand.Top = .Top + .CellTop + .CellHeight - Ydcommand.Height + Wbkpy
  2598.                 Ydcommand.Visible = True
  2599.             Else
  2600.                 Ydcommand.Visible = False
  2601.             End If
  2602.             
  2603.             Ydtext.Left = .CellLeft + .Left + Wbkpy
  2604.             Ydtext.Top = .CellTop + .Top + Wbkpy
  2605.             If Ydcommand.Visible Then
  2606.                 If Sfblbzkd Then
  2607.                     Ydtext.Width = .CellWidth - Ydcommand.Width
  2608.                 Else
  2609.                     Ydtext.Width = .CellWidth - Wbkpy1
  2610.                 End If
  2611.             Else
  2612.                 Ydtext.Width = .CellWidth - Wbkpy1
  2613.             End If
  2614.             Ydtext.Height = .CellHeight - Wbkpy1
  2615.             
  2616.             If GridInt(.Col, 2) <> 0 Then
  2617.                 Ydtext.MaxLength = GridInt(.Col, 2)
  2618.             Else
  2619.                 Ydtext.MaxLength = 3000
  2620.             End If
  2621.             
  2622.             Call Wbkcl
  2623.             
  2624.             Ydtext.Visible = True
  2625.             Ydtext.SetFocus
  2626.         End If
  2627.         Dqtoprow = .TopRow
  2628.         Dqleftcol = .LeftCol
  2629.         
  2630.         '重置锁值
  2631.         Valilock = False
  2632.         Wbkbhlock = False
  2633.     End With
  2634.     
  2635. End Sub
  2636. Private Function Fun_AllowInput() As Boolean                           '当某种条件成立时禁止文本框激活使单据处于录入状态
  2637.     
  2638.     '如果单据操作状态为浏览状态则不能显示录入载体(通用)
  2639.     If Trim(Lab_OperStatus.Caption) = "1" Then
  2640.         Exit Function
  2641.     End If
  2642.     
  2643.     '[>>
  2644.     
  2645.     '此处可以填写禁止文本框激活使单据处于录入状态的理由
  2646.     
  2647.     '<<]
  2648.     
  2649.     Fun_AllowInput = True
  2650.     
  2651. End Function
  2652. Private Sub Cxxswbk()                                                  'Formresize中重新显示文本框,列表框,帮助按钮(通用)
  2653.     
  2654.     Dim Wbkpy As Integer, Wbkpy1 As Integer
  2655.     Wbkpy = 30
  2656.     Wbkpy1 = 15
  2657.     With WglrGrid
  2658.         If YdCombo.Visible Then
  2659.             YdCombo.Left = .CellLeft + .Left + Wbkpy
  2660.             YdCombo.Top = .CellTop + .Top + Wbkpy
  2661.             YdCombo.Width = .CellWidth - Wbkpy1
  2662.         End If
  2663.         If Ydcommand.Visible Then
  2664.             Ydcommand.Left = .Left + .CellLeft + .CellWidth - Ydcommand.Width + Wbkpy
  2665.             Ydcommand.Top = .Top + .CellTop + .CellHeight - Ydcommand.Height + Wbkpy
  2666.         End If
  2667.         If Ydtext.Visible Then
  2668.             If Ydcommand.Visible Then
  2669.                 If Sfblbzkd Then
  2670.                     Ydtext.Width = .CellWidth - Ydcommand.Width
  2671.                 Else
  2672.                     Ydtext.Width = .CellWidth - Wbkpy1
  2673.                 End If
  2674.             Else
  2675.                 Ydtext.Width = .CellWidth - Wbkpy1
  2676.             End If
  2677.             Ydtext.Left = .CellLeft + .Left + Wbkpy
  2678.             Ydtext.Top = .CellTop + .Top + Wbkpy
  2679.             Ydtext.Height = .CellHeight - Wbkpy1
  2680.         End If
  2681.     End With
  2682.     
  2683. End Sub
  2684. Private Sub Lrsjhx()                                                   '文本框录入数据回写
  2685.     
  2686.     With WglrGrid
  2687.         If YdCombo.Visible Then
  2688.             .Text = Trim(YdCombo.Text)
  2689.         End If
  2690.         If Ydtext.Visible Then
  2691.             .Text = Trim(Ydtext.Text)
  2692.         End If
  2693.         
  2694.         '(如果字段录入内容发生变化,则打开有效性判断锁)
  2695.         If Zdlrqnr <> Trim(.Text) Then
  2696.             Yxxpdlock = False
  2697.             Hyxxpdlock = False
  2698.         End If
  2699.         
  2700.         '如果字段录入内容不为空则写数据行有效性标志
  2701.         If Len(Trim(.Text)) <> 0 Then
  2702.             Call Xyxhbz(.Row)
  2703.         End If
  2704.         
  2705.         '隐藏文本框,帮助按钮,列表组合框
  2706.         Call Ycwbk
  2707.     End With
  2708.     
  2709. End Sub
  2710. Private Sub WglrGrid_KeyDown(KeyCode As Integer, Shift As Integer)    '网格录入增行,删行快捷键
  2711.     
  2712.     '如果单据操作状态为浏览状态则不能显示录入载体
  2713.     If Trim(Lab_OperStatus.Caption) = "1" Then
  2714.         Exit Sub
  2715.     End If
  2716.     
  2717.     Select Case KeyCode
  2718.     Case vbKeyF2                   '按F2键参照
  2719.         Call xswbk
  2720.         Call Lrzdbz
  2721.     Case vbKeyDelete               '删行
  2722.         Call Scdqfl
  2723.     Case vbKeyInsert               '增行
  2724.         Call zjlrfl
  2725.     End Select
  2726.     
  2727. End Sub
  2728. Private Sub WglrGrid_KeyPress(KeyAscii As Integer)                             '网格接受键盘录入
  2729.     
  2730.     '当某种条件成立时禁止文本框激活使单据处于录入状态
  2731.     If Not Fun_AllowInput Then
  2732.         Exit Sub
  2733.     End If
  2734.     
  2735.     With WglrGrid
  2736.         '屏 蔽 回 车 键
  2737.         If KeyAscii = vbKeyReturn Then
  2738.             KeyAscii = 0
  2739.             Rowjsq = .Row
  2740.             Coljsq = .Col + 1
  2741.             If Coljsq > .Cols - 1 Then
  2742.                 If Rowjsq < .Rows - 1 Then
  2743.                     Rowjsq = Rowjsq + 1
  2744.                 End If
  2745.                 Coljsq = Qslz
  2746.             End If
  2747.             Do While Rowjsq <= .Rows - 1
  2748.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  2749.                     Coljsq = Coljsq + 1
  2750.                     If Coljsq > .Cols - 1 Then
  2751.                         Rowjsq = Rowjsq + 1
  2752.                         Coljsq = Qslz
  2753.                     End If
  2754.                 Else
  2755.                     Exit Do
  2756.                 End If
  2757.             Loop
  2758.             If Rowjsq <= .Rows - 1 Then
  2759.                 .Select Rowjsq, Coljsq
  2760.             End If
  2761.             Exit Sub
  2762.         End If
  2763.         
  2764.         '接受用户录入
  2765.         Select Case KeyAscii
  2766.         Case 0 To 32             '用户输入KeyAscii为0-32的键 如空格
  2767.             '显示录入载体
  2768.             Call xswbk
  2769.         Case Else
  2770.             '防止非编辑字段SendKeys()出现死循环
  2771.             If Not GridBoolean(.Col, 1) Or .Row < .FixedRows Then
  2772.                 Exit Sub
  2773.             End If
  2774.             '如果此字段为列表框录入则调入相应列表框
  2775.             If GridBoolean(.Col, 3) Then
  2776.                 '列表框录入
  2777.                 Call xswbk
  2778.             Else
  2779.                 Ydtext.Text = ""
  2780.                 '录入限制
  2781.                 Call InputFieldLimit(Ydtext, GridInt(WglrGrid.Col, 1), KeyAscii)
  2782.                 If KeyAscii = 0 Then
  2783.                     Exit Sub
  2784.                 End If
  2785.                 '如果录入字符有效则写有效行数据标志
  2786.                 Call Xyxhbz(.Row)
  2787.                 Call xswbk
  2788.                 Ydtext.Text = ""
  2789.                 Valilock = True
  2790.                 SendKeys Chr(KeyAscii), True
  2791.                 DoEvents
  2792.                 Valilock = False
  2793.             End If
  2794.         End Select
  2795.     End With
  2796.     
  2797. End Sub
  2798. Private Sub zjlrfl()                                                    '增加录入分录
  2799.     
  2800.     With WglrGrid
  2801.         If Not (Ydtext.Visible Or YdCombo.Visible) Then
  2802.             If Not Fun_Drfrmyxxpd Then
  2803.                 Exit Sub
  2804.             End If
  2805.         Else
  2806.             Exit Sub
  2807.         End If
  2808.         If .Row < .FixedRows Then
  2809.             Exit Sub
  2810.         End If
  2811.         .AddItem "", .Row
  2812.         .RowHeight(.Row) = Sjhgd
  2813.         If .Row <> .Rows - 1 Then
  2814.             If .TextMatrix(.Row + 1, 0) = "*" Then
  2815.                 .TextMatrix(.Row, 0) = "*"
  2816.             Else
  2817.                 .RemoveItem .Rows - 1
  2818.             End If
  2819.         End If
  2820.         Call Xldqh
  2821.         Call Xldql
  2822.         Hyxxpdlock = False
  2823.     End With
  2824.     
  2825. End Sub
  2826. Private Sub Scdqfl()                                                    '删除当前分录
  2827.     Dim Answer As Integer, Scqwghz As Long, Scqwglz As Long, Hjlzte As Long, Sflrzt As Boolean
  2828.     With WglrGrid
  2829.         Scqwghz = .Row
  2830.         Scqwglz = .Col
  2831.         If .TextMatrix(.Row, 0) = "*" Then
  2832.             '判断是否为录入状态
  2833.             If Ydtext.Visible Or YdCombo.Visible Then
  2834.                 Sflrzt = True
  2835.                 Validate = True
  2836.                 Call Lrsjhx
  2837.                 Validate = False
  2838.             End If
  2839.             Call Xldqh
  2840.             Changelock = True
  2841.             .Select .Row, 0
  2842.             Changelock = False
  2843.             If Shsfts Then
  2844.                 .Cell(flexcpBackColor, .Row, Qslz, .Row, .Cols - 1) = QBColor(12)
  2845.                 Tsxx = "请确认是否删除当前记录?"
  2846.                 yhAnswer = Xtxxts(Tsxx, 2, 2)
  2847.                 If yhAnswer = 2 Then
  2848.                     .Cell(flexcpBackColor, .Row, Qslz, .Row, .Cols - 1) = &H80000005
  2849.                     Changelock = True
  2850.                     .Select Scqwghz, Scqwglz
  2851.                     Changelock = False
  2852.                     
  2853.                     '如为录入状态,则恢复录入
  2854.                     If Sflrzt Then
  2855.                         Call xswbk
  2856.                     End If
  2857.                     Exit Sub
  2858.                 End If
  2859.             End If
  2860.             .RemoveItem .Row
  2861.             If .Rows < Pmbcsjhs + .FixedRows + Fzxwghs + 1 Then
  2862.                 .AddItem ""
  2863.                 .RowHeight(.Rows - 1) = Sjhgd
  2864.             End If
  2865.             Changelock = True
  2866.             .Select .Row, Scqwglz
  2867.             Changelock = False
  2868.             
  2869.         End If
  2870.     End With
  2871.     
  2872. End Sub
  2873. Private Sub Sjhj(Hjwgl As Long)                                         '网格列数据合计
  2874.     
  2875.     Dim Hjjg As Double
  2876.     If Not GridBoolean(Hjwgl, 4) Then
  2877.         Exit Sub
  2878.     End If
  2879.     With WglrGrid
  2880.         Hjjg = 0
  2881.         For Jsqte = .FixedRows To .Rows - 1
  2882.             If .TextMatrix(Jsqte, 0) = "*" Then
  2883.                 Hjjg = Hjjg + Val(.TextMatrix(Jsqte, Hjwgl))
  2884.             End If
  2885.         Next Jsqte
  2886.         If GridBoolean(Hjwgl, 5) And Hjjg = 0 Then
  2887.             HjGrid.TextMatrix(0, Hjwgl) = ""
  2888.         Else
  2889.             HjGrid.TextMatrix(0, Hjwgl) = Hjjg
  2890.         End If
  2891.     End With
  2892.     
  2893. End Sub
  2894. Private Sub Qkwlzd(sjh As Long, Sjl As Long)                            '清空为零字段
  2895.     
  2896.     If Not GridBoolean(Sjl, 5) Then
  2897.         Exit Sub
  2898.     End If
  2899.     With WglrGrid
  2900.         If Val(Trim(.TextMatrix(sjh, Sjl))) = 0 Then
  2901.             .TextMatrix(sjh, Sjl) = ""
  2902.         End If
  2903.     End With
  2904.     
  2905. End Sub
  2906. Private Sub fhyxh()                                                     '返回录入数据有效行,同时让得到焦点网格可见
  2907.     
  2908.     With WglrGrid
  2909.         If .Row >= .FixedRows Then
  2910.             If .TextMatrix(.Row, 0) <> "*" Then
  2911.                 For Rowjsq = .FixedRows To .Rows - 1
  2912.                     If .TextMatrix(Rowjsq, 0) <> "*" Then
  2913.                         Exit For
  2914.                     End If
  2915.                 Next Rowjsq
  2916.                 If Rowjsq <= .Rows - 1 Then
  2917.                     Changelock = True
  2918.                     .Select Rowjsq, .Col
  2919.                     Changelock = False
  2920.                 Else
  2921.                     Changelock = True
  2922.                     .Select .Rows - 1, .Col
  2923.                     Changelock = False
  2924.                 End If
  2925.             End If
  2926.             Call Xldqh
  2927.         End If
  2928.     End With
  2929.     
  2930. End Sub
  2931. Private Sub Xldqh()                                                      '显露当前行
  2932.     
  2933.     Dim Toprowte As Long
  2934.     With WglrGrid
  2935.         Toprowte = 0
  2936.         Do While .CellTop + .RowHeight(.Row) + Fzxwghs * Sjhgd > .Height And .TopRow <> Toprowte
  2937.             Toprowte = .TopRow
  2938.             .TopRow = .TopRow + 1
  2939.         Loop
  2940.         Toprowte = 0
  2941.         Do While .CellTop < .FixedRows * .RowHeight(0) And .TopRow <> Toprowte
  2942.             Toprowte = .TopRow
  2943.             If .TopRow > 1 Then
  2944.                 .TopRow = .TopRow - 1
  2945.             End If
  2946.         Loop
  2947.     End With
  2948.     
  2949. End Sub
  2950. Private Sub Xldql()                                                     '显露当前列
  2951.     
  2952.     Dim Leftcolte As Long
  2953.     With WglrGrid
  2954.         If .Col >= Qslz And .Col >= .FixedCols Then
  2955.             If .LeftCol > .Col Then
  2956.                 .LeftCol = .Col
  2957.             End If
  2958.             Leftcolte = 0
  2959.             Do While .CellLeft + .CellWidth > .Width And .LeftCol <> Leftcolte
  2960.                 Leftcolte = .LeftCol
  2961.                 .LeftCol = .LeftCol + 1
  2962.             Loop
  2963.         End If
  2964.     End With
  2965.     
  2966. End Sub
  2967. Private Function pdhwk(sjh As Long)                                     '判断网格行是否为空行(所有录入字段均为空*非录入字段除外)
  2968.     
  2969.     With WglrGrid
  2970.         For Coljsq = Qslz To .Cols - 1
  2971.             If Len(Trim(.TextMatrix(sjh, Coljsq))) <> 0 And GridBoolean(Coljsq, 1) Then
  2972.                 pdhwk = False
  2973.                 Exit Function
  2974.             End If
  2975.         Next Coljsq
  2976.         pdhwk = True
  2977.     End With
  2978.     
  2979. End Function
  2980. Private Sub Xyxhbz(sjh As Long)                                         '写行有效性标志,并判断是否增行
  2981.     
  2982.     With WglrGrid
  2983.         If .TextMatrix(sjh, 0) = "*" Then
  2984.             Exit Sub
  2985.         End If
  2986.         .TextMatrix(sjh, 0) = "*"
  2987.         If sjh >= .Rows - Fzxwghs - 1 Then
  2988.             .AddItem ""
  2989.             .RowHeight(.Rows - 1) = Sjhgd
  2990.         End If
  2991.     End With
  2992.     
  2993. End Sub
  2994. '*****************************以下为文本框录入处理程序(固定不变部分)*******************************'
  2995. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  2996.     
  2997.     '以下为依据实际情况自定义部分[
  2998.     '在此填写文本框录入事后处理程序
  2999.     ']以上为依据实际情况自定义部分
  3000.     
  3001. End Sub
  3002. Private Sub LrText_Change(Index As Integer)
  3003.     
  3004.     '屏蔽程序改变控制
  3005.     If TextChangeLock Then
  3006.         Exit Sub
  3007.     End If
  3008.     
  3009.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  3010.     
  3011.     '限制字段录入长度
  3012.     
  3013.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  3014.     
  3015.     Call TextChangeLimit(LrText(Index), Textint(Index, 1))  '去掉无效字符
  3016.     
  3017.     Select Case Textint(Index, 1)
  3018.     Case 8, 11       '金额型
  3019.         Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  3020.     Case 9, 12       '数量型
  3021.         Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  3022.     Case 10          '单价型
  3023.         Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  3024.     Case Else        '其他小数类型控制
  3025.         If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  3026.             Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  3027.         End If
  3028.     End Select
  3029.     
  3030.     TextChangeLock = False '解锁
  3031.     
  3032. End Sub
  3033. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  3034.     Call TextShow(Index)
  3035. End Sub
  3036. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  3037.     
  3038.     Select Case KeyCode
  3039.     Case vbKeyF2
  3040.         Call Text_Help(Index)
  3041.     End Select
  3042.     
  3043. End Sub
  3044. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  3045.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  3046. End Sub
  3047. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  3048.     
  3049.     If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  3050.         Call TextYxxpd(Index)
  3051.     End If
  3052.     
  3053. End Sub
  3054. Private Sub Ydcommand1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '点击按钮
  3055.   Me.bln_Help = True
  3056.     Call Text_Help(Ydcommand1.Tag)
  3057.   Me.bln_Help = False
  3058. End Sub
  3059. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  3060.     
  3061.     If Not Ydcommand1.Visible Then
  3062.         Exit Sub
  3063.     End If
  3064.     TextValiLock = True
  3065.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  3066.     If Len(Xtfhcs) <> 0 Then
  3067.         If Textint(Index, 3) = 1 Then
  3068.             LrText(Index).Text = Xtfhcsfz
  3069.             LrText(Index).Tag = Xtfhcs
  3070.         Else
  3071.             LrText(Index).Text = Xtfhcs
  3072.             LrText(Index).Tag = Xtfhcsfz
  3073.         End If
  3074.     End If
  3075.     TextValiLock = False
  3076.     LrText(Index).SetFocus
  3077.     
  3078. End Sub
  3079. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  3080.     
  3081.     '如果文本框有帮助,则显示帮助按钮
  3082.     If Textboolean(Index, 1) Then
  3083.         Ydcommand1.Visible = True
  3084.         Ydcommand1.Move LrText(Index).Left + LrText(Index).Width, LrText(Index).Top
  3085.         Ydcommand1.Tag = Index
  3086.     Else
  3087.         Ydcommand1.Tag = ""
  3088.         Ydcommand1.Visible = False
  3089.     End If
  3090.     
  3091.     '[>>
  3092.     '可在此处定义其他处理动作
  3093.     '<<]
  3094.     
  3095. End Sub
  3096. Private Sub Wbkcsh()                          '录入文本框初始化
  3097.     
  3098.     Dim Int_TabIndex As Integer         'Tab焦点计数器
  3099.     
  3100.     '单据录入中文本框焦点由0开始
  3101.     LrText(0).TabIndex = 0
  3102.     
  3103.     '最大录入文本框索引值
  3104.     Max_Text_Index = Textvar(1)
  3105.     
  3106.     ReDim TextValiJudgeLock(Max_Text_Index)
  3107.     For Jsqte = 0 To Max_Text_Index
  3108.         
  3109.         '判断此文本框录入索引号是否存在,如存在则对其进行初始化
  3110.         If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then
  3111.             
  3112.             '自动装入录入文本框和其解释标签
  3113.             If Jsqte <> 0 Then
  3114.                 Load LrText(Jsqte)
  3115.                 Load TsLabel(Jsqte)
  3116.                 
  3117.                 '判断录入文本框是否显示
  3118.                 If Textboolean(Jsqte, 4) Then
  3119.                     LrText(Jsqte).Visible = True
  3120.                     TsLabel(Jsqte).Visible = True
  3121.                 Else
  3122.                    LrText(Jsqte).Visible = False
  3123.                    TsLabel(Jsqte).Visible = False
  3124.                End If
  3125.                 
  3126.                 '判断文本框是否可编辑
  3127.                 If Textboolean(Jsqte, 5) Then
  3128.                     LrText(Jsqte).Enabled = True
  3129.                 Else
  3130.                     LrText(Jsqte).Enabled = False
  3131.                 End If
  3132.             End If
  3133.             
  3134.             '初始化其内容
  3135.             TextChangeLock = True
  3136.             LrText(Jsqte).Text = ""
  3137.             LrText(Jsqte).Tag = ""
  3138.             If Textint(Jsqte, 5) <> 0 Then
  3139.                 LrText(Jsqte).MaxLength = Textint(Jsqte, 5)
  3140.             End If
  3141.             TextChangeLock = False
  3142.             
  3143.             '设置文本框位置及大小,并设置相应标签内容及其位置
  3144.             LrText(Jsqte).Move Textint(Jsqte, 13), Textint(Jsqte, 12), Textint(Jsqte, 11), Textint(Jsqte, 10)
  3145.             TsLabel(Jsqte).Caption = Textstr(Jsqte, 7) & ":"
  3146.             TsLabel(Jsqte).Move Textint(Jsqte, 13) - TsLabel(Jsqte).Width - 20, Textint(Jsqte, 12) + (Textint(Jsqte, 10) - TsLabel(Jsqte).Height) / 2 - 30
  3147.             
  3148.         End If
  3149.         
  3150.         '将文本框有效性判断进行加锁,在文本框内容发生变化时将锁打开
  3151.         TextValiJudgeLock(Jsqte) = True
  3152.         
  3153.     Next Jsqte
  3154.     
  3155.     '设置文本框焦点转移顺序(前提文本焦点从0至Max_Text_Index)
  3156.     For Int_TabIndex = 0 To Max_Text_Index
  3157.         For Jsqte = 0 To Max_Text_Index
  3158.             If Textint(Jsqte, 14) = Int_TabIndex Then
  3159.                 LrText(Jsqte).TabIndex = Int_TabIndex
  3160.             End If
  3161.         Next Jsqte
  3162.     Next Int_TabIndex
  3163.     
  3164. End Sub
  3165. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  3166.     
  3167.     Dim Sqlstr As String
  3168.     Dim Findrec As New ADODB.Recordset
  3169.     
  3170.     '按帮助不进行有效性判断
  3171.     
  3172.     If TextValiLock Then
  3173.         TextValiLock = False
  3174.         TextYxxpd = True
  3175.         Exit Function
  3176.     End If
  3177.     
  3178.     '文本框内容未曾改变不进行有效性判断
  3179.     
  3180.     If TextValiJudgeLock(Index) Then
  3181.         Ydcommand1.Visible = False
  3182.         TextYxxpd = True
  3183.         Exit Function
  3184.     End If
  3185.     
  3186.     '文本框内容为空认为有效,并清空其Tag值
  3187.     
  3188.     If Trim(LrText(Index)) = "" Then
  3189.         LrText(Index).Tag = ""
  3190.         Call Wbklrwbcl(Index)
  3191.         Ydcommand1.Visible = False
  3192.         TextValiJudgeLock(Index) = True
  3193.         TextYxxpd = True
  3194.         Exit Function
  3195.     End If
  3196.     
  3197.     '[>>
  3198.     
  3199.     '可在此加入不做有效性判断的理由(参照上面程序)
  3200.     
  3201.     '<<]
  3202.     
  3203.     Select Case Textint(Index, 4)
  3204.     Case 1      '编码型
  3205.         Sqlstr = Trim(Textstr(Index, 5))
  3206.         Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  3207.         Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  3208.         If Findrec.EOF Then
  3209.             Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  3210.             LrText(Index).SetFocus
  3211.             Exit Function
  3212.         Else
  3213.             Select Case Textint(Index, 3)
  3214.             Case 0
  3215.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  3216.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  3217.                 End If
  3218.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  3219.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  3220.                 End If
  3221.             Case 1
  3222.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  3223.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  3224.                 End If
  3225.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  3226.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  3227.                 End If
  3228.             End Select
  3229.         End If
  3230.     Case 2      '日期型
  3231.         If IsDate(LrText(Index).Text) Then
  3232.             LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  3233.             If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  3234.                 LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  3235.             End If
  3236.         Else
  3237.             Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  3238.             Call Xtxxts(Tsxx, 0, 1)
  3239.             LrText(Index).SetFocus
  3240.             Exit Function
  3241.         End If
  3242.     Case 3      '其他类型
  3243.     End Select
  3244.     
  3245.     '隐藏帮助按钮
  3246.     Ydcommand1.Visible = False
  3247.     
  3248.     '如果有效则加锁,用户不改变内容则不再进行有效性判断
  3249.     TextValiJudgeLock(Index) = True
  3250.     
  3251.     '调用文本框事后处理程序
  3252.     Call Wbklrwbcl(Index)
  3253.     
  3254.     '有效性判断通过则返回True
  3255.     TextYxxpd = True
  3256.     
  3257. End Function