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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Begin VB.Form Tr_ShipDeliver 
  4.    BackColor       =   &H00E9F4FA&
  5.    BorderStyle     =   3  'Fixed Dialog
  6.    Caption         =   "水运提货单"
  7.    ClientHeight    =   6315
  8.    ClientLeft      =   45
  9.    ClientTop       =   330
  10.    ClientWidth     =   10590
  11.    Icon            =   "水运管理_送货单.frx":0000
  12.    KeyPreview      =   -1  'True
  13.    LinkTopic       =   "Form2"
  14.    MaxButton       =   0   'False
  15.    MinButton       =   0   'False
  16.    ScaleHeight     =   6315
  17.    ScaleWidth      =   10590
  18.    ShowInTaskbar   =   0   'False
  19.    StartUpPosition =   1  '所有者中心
  20.    Begin VB.TextBox LrText 
  21.       ForeColor       =   &H00000000&
  22.       Height          =   300
  23.       Index           =   0
  24.       Left            =   1020
  25.       TabIndex        =   0
  26.       Text            =   "0"
  27.       Top             =   1500
  28.       Width           =   1650
  29.    End
  30.    Begin VB.CommandButton Ydcommand 
  31.       Height          =   300
  32.       Left            =   10680
  33.       Picture         =   "水运管理_送货单.frx":1042
  34.       Style           =   1  'Graphical
  35.       TabIndex        =   4
  36.       Top             =   990
  37.       Visible         =   0   'False
  38.       Width           =   300
  39.    End
  40.    Begin VB.TextBox Ydtext 
  41.       BackColor       =   &H80000018&
  42.       BorderStyle     =   0  'None
  43.       Height          =   330
  44.       Left            =   7710
  45.       MultiLine       =   -1  'True
  46.       TabIndex        =   3
  47.       Top             =   960
  48.       Visible         =   0   'False
  49.       Width           =   1185
  50.    End
  51.    Begin VB.Timer Timer1 
  52.       Interval        =   1
  53.       Left            =   9690
  54.       Top             =   150
  55.    End
  56.    Begin VB.CommandButton Ydcommand1 
  57.       Height          =   300
  58.       Left            =   10680
  59.       Picture         =   "水运管理_送货单.frx":13CC
  60.       Style           =   1  'Graphical
  61.       TabIndex        =   2
  62.       Top             =   600
  63.       Visible         =   0   'False
  64.       Width           =   300
  65.    End
  66.    Begin VB.ComboBox YdCombo 
  67.       Height          =   300
  68.       Left            =   9000
  69.       Style           =   2  'Dropdown List
  70.       TabIndex        =   1
  71.       Top             =   960
  72.       Visible         =   0   'False
  73.       Width           =   1155
  74.    End
  75.    Begin MSComctlLib.Toolbar Tlb_Action 
  76.       Align           =   1  'Align Top
  77.       Height          =   570
  78.       Left            =   0
  79.       TabIndex        =   5
  80.       Top             =   0
  81.       Width           =   10590
  82.       _ExtentX        =   18680
  83.       _ExtentY        =   1005
  84.       ButtonWidth     =   820
  85.       ButtonHeight    =   953
  86.       AllowCustomize  =   0   'False
  87.       Wrappable       =   0   'False
  88.       Appearance      =   1
  89.       Style           =   1
  90.       ImageList       =   "ImageList1"
  91.       _Version        =   393216
  92.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  93.          NumButtons      =   20
  94.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  95.             Caption         =   "打印"
  96.             Key             =   "dy"
  97.             Object.ToolTipText     =   "打印当前单据或Ctrl+P"
  98.             ImageKey        =   "dy"
  99.          EndProperty
  100.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  101.             Caption         =   "预览"
  102.             Key             =   "yl"
  103.             ImageKey        =   "yl"
  104.          EndProperty
  105.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  106.             Key             =   "fgh0"
  107.             Style           =   3
  108.          EndProperty
  109.          BeginProperty Button4 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  110.             Caption         =   "新增"
  111.             Key             =   "xz"
  112.             Object.ToolTipText     =   "新增加一张单据或F5"
  113.             ImageKey        =   "xz"
  114.          EndProperty
  115.          BeginProperty Button5 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  116.             Caption         =   "修改"
  117.             Key             =   "xg"
  118.             Object.ToolTipText     =   "修改当前单据或F3"
  119.             ImageKey        =   "xg"
  120.          EndProperty
  121.          BeginProperty Button6 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  122.             Caption         =   "删除"
  123.             Key             =   "sc"
  124.             Object.ToolTipText     =   "删除当前单据"
  125.             ImageKey        =   "sc"
  126.          EndProperty
  127.          BeginProperty Button7 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  128.             Key             =   "fgh1"
  129.             Style           =   3
  130.          EndProperty
  131.          BeginProperty Button8 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  132.             Caption         =   "保存"
  133.             Key             =   "bc"
  134.             Object.ToolTipText     =   "保存单据或F6"
  135.             ImageKey        =   "bc"
  136.          EndProperty
  137.          BeginProperty Button9 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  138.             Caption         =   "放弃"
  139.             Key             =   "fq"
  140.             Object.ToolTipText     =   "放弃此次操作"
  141.             ImageKey        =   "fq"
  142.          EndProperty
  143.          BeginProperty Button10 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  144.             Key             =   "fgh3"
  145.             Style           =   3
  146.          EndProperty
  147.          BeginProperty Button11 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  148.             Caption         =   "审核"
  149.             Key             =   "shsh"
  150.             ImageKey        =   "check"
  151.          EndProperty
  152.          BeginProperty Button12 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  153.             Caption         =   "弃审"
  154.             Key             =   "shqs"
  155.             ImageKey        =   "qs"
  156.          EndProperty
  157.          BeginProperty Button13 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  158.             Key             =   "fgh4"
  159.             Style           =   3
  160.          EndProperty
  161.          BeginProperty Button14 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  162.             Caption         =   "首张"
  163.             Key             =   "first"
  164.             ImageKey        =   "first"
  165.          EndProperty
  166.          BeginProperty Button15 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  167.             Caption         =   "上张"
  168.             Key             =   "prev"
  169.             ImageKey        =   "prev"
  170.          EndProperty
  171.          BeginProperty Button16 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  172.             Caption         =   "下张"
  173.             Key             =   "next"
  174.             ImageKey        =   "next"
  175.          EndProperty
  176.          BeginProperty Button17 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  177.             Caption         =   "末张"
  178.             Key             =   "last"
  179.             ImageKey        =   "last"
  180.          EndProperty
  181.          BeginProperty Button18 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  182.             Key             =   "fgh5"
  183.             Style           =   3
  184.          EndProperty
  185.          BeginProperty Button19 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  186.             Caption         =   "帮助"
  187.             Key             =   "bz"
  188.             ImageKey        =   "bz"
  189.          EndProperty
  190.          BeginProperty Button20 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  191.             Caption         =   "退出"
  192.             Key             =   "fh"
  193.             ImageKey        =   "tc"
  194.          EndProperty
  195.       EndProperty
  196.       BorderStyle     =   1
  197.    End
  198.    Begin MSComctlLib.ImageList ImageList1 
  199.       Left            =   10410
  200.       Top             =   1350
  201.       _ExtentX        =   1005
  202.       _ExtentY        =   1005
  203.       BackColor       =   -2147483643
  204.       ImageWidth      =   16
  205.       ImageHeight     =   16
  206.       MaskColor       =   12632256
  207.       _Version        =   393216
  208.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  209.          NumListImages   =   37
  210.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  211.             Picture         =   "水运管理_送货单.frx":1756
  212.             Key             =   "sz"
  213.          EndProperty
  214.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  215.             Picture         =   "水运管理_送货单.frx":1AF0
  216.             Key             =   "dy"
  217.          EndProperty
  218.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  219.             Picture         =   "水运管理_送货单.frx":1E8A
  220.             Key             =   "yl"
  221.          EndProperty
  222.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  223.             Picture         =   "水运管理_送货单.frx":2224
  224.             Key             =   "xg"
  225.          EndProperty
  226.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  227.             Picture         =   "水运管理_送货单.frx":25BE
  228.             Key             =   "zh"
  229.          EndProperty
  230.          BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  231.             Picture         =   "水运管理_送货单.frx":2958
  232.             Key             =   "sh"
  233.          EndProperty
  234.          BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  235.             Picture         =   "水运管理_送货单.frx":2CF2
  236.             Key             =   "bc"
  237.          EndProperty
  238.          BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  239.             Picture         =   "水运管理_送货单.frx":308C
  240.             Key             =   "fq"
  241.          EndProperty
  242.          BeginProperty ListImage9 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  243.             Picture         =   "水运管理_送货单.frx":3426
  244.             Key             =   "bz"
  245.          EndProperty
  246.          BeginProperty ListImage10 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  247.             Picture         =   "水运管理_送货单.frx":37C0
  248.             Key             =   "tc"
  249.          EndProperty
  250.          BeginProperty ListImage11 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  251.             Picture         =   "水运管理_送货单.frx":3B5A
  252.             Key             =   "bcgs"
  253.          EndProperty
  254.          BeginProperty ListImage12 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  255.             Picture         =   "水运管理_送货单.frx":3EF4
  256.             Key             =   "mrlk"
  257.          EndProperty
  258.          BeginProperty ListImage13 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  259.             Picture         =   "水运管理_送货单.frx":428E
  260.             Key             =   "xsxm"
  261.          EndProperty
  262.          BeginProperty ListImage14 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  263.             Picture         =   "水运管理_送货单.frx":4628
  264.             Key             =   "first"
  265.          EndProperty
  266.          BeginProperty ListImage15 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  267.             Picture         =   "水运管理_送货单.frx":49C2
  268.             Key             =   "prev"
  269.          EndProperty
  270.          BeginProperty ListImage16 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  271.             Picture         =   "水运管理_送货单.frx":4D5C
  272.             Key             =   "next"
  273.          EndProperty
  274.          BeginProperty ListImage17 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  275.             Picture         =   "水运管理_送货单.frx":50F6
  276.             Key             =   "last"
  277.          EndProperty
  278.          BeginProperty ListImage18 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  279.             Picture         =   "水运管理_送货单.frx":5490
  280.             Key             =   "xx"
  281.          EndProperty
  282.          BeginProperty ListImage19 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  283.             Picture         =   "水运管理_送货单.frx":582A
  284.             Key             =   "define"
  285.          EndProperty
  286.          BeginProperty ListImage20 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  287.             Picture         =   "水运管理_送货单.frx":5BC4
  288.             Key             =   "exec"
  289.          EndProperty
  290.          BeginProperty ListImage21 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  291.             Picture         =   "水运管理_送货单.frx":5F5E
  292.             Key             =   "xz"
  293.          EndProperty
  294.          BeginProperty ListImage22 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  295.             Picture         =   "水运管理_送货单.frx":62F8
  296.             Key             =   "sc"
  297.          EndProperty
  298.          BeginProperty ListImage23 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  299.             Picture         =   "水运管理_送货单.frx":6692
  300.             Key             =   "sx"
  301.          EndProperty
  302.          BeginProperty ListImage24 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  303.             Picture         =   "水运管理_送货单.frx":6A2C
  304.             Key             =   "cx"
  305.          EndProperty
  306.          BeginProperty ListImage25 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  307.             Picture         =   "水运管理_送货单.frx":6DC6
  308.             Key             =   "zd"
  309.          EndProperty
  310.          BeginProperty ListImage26 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  311.             Picture         =   "水运管理_送货单.frx":7160
  312.             Key             =   "dz"
  313.          EndProperty
  314.          BeginProperty ListImage27 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  315.             Picture         =   "水运管理_送货单.frx":74FA
  316.             Key             =   "ph"
  317.          EndProperty
  318.          BeginProperty ListImage28 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  319.             Picture         =   "水运管理_送货单.frx":7894
  320.             Key             =   "fz"
  321.          EndProperty
  322.          BeginProperty ListImage29 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  323.             Picture         =   "水运管理_送货单.frx":7C2E
  324.             Key             =   "dw"
  325.          EndProperty
  326.          BeginProperty ListImage30 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  327.             Picture         =   "水运管理_送货单.frx":7FC8
  328.             Key             =   "hf"
  329.          EndProperty
  330.          BeginProperty ListImage31 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  331.             Picture         =   "水运管理_送货单.frx":8362
  332.             Key             =   "pz"
  333.          EndProperty
  334.          BeginProperty ListImage32 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  335.             Picture         =   "水运管理_送货单.frx":86FC
  336.             Key             =   "check"
  337.          EndProperty
  338.          BeginProperty ListImage33 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  339.             Picture         =   "水运管理_送货单.frx":8A96
  340.             Key             =   "qs"
  341.          EndProperty
  342.          BeginProperty ListImage34 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  343.             Picture         =   "水运管理_送货单.frx":8E30
  344.             Key             =   "fullcheck"
  345.          EndProperty
  346.          BeginProperty ListImage35 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  347.             Picture         =   "水运管理_送货单.frx":91CA
  348.             Key             =   "qq"
  349.          EndProperty
  350.          BeginProperty ListImage36 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  351.             Picture         =   "水运管理_送货单.frx":9564
  352.             Key             =   "bcw"
  353.          EndProperty
  354.          BeginProperty ListImage37 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  355.             Picture         =   "水运管理_送货单.frx":98FE
  356.             Key             =   "ye"
  357.          EndProperty
  358.       EndProperty
  359.    End
  360.    Begin VB.Label Lab_Title 
  361.       AutoSize        =   -1  'True
  362.       BackColor       =   &H80000018&
  363.       BackStyle       =   0  'Transparent
  364.       Caption         =   "单据标题自动调整"
  365.       BeginProperty Font 
  366.          Name            =   "宋体"
  367.          Size            =   15
  368.          Charset         =   134
  369.          Weight          =   700
  370.          Underline       =   0   'False
  371.          Italic          =   0   'False
  372.          Strikethrough   =   0   'False
  373.       EndProperty
  374.       ForeColor       =   &H00000000&
  375.       Height          =   300
  376.       Left            =   4440
  377.       TabIndex        =   12
  378.       Top             =   840
  379.       Width           =   2520
  380.    End
  381.    Begin VB.Label Lab_BillId 
  382.       AutoSize        =   -1  'True
  383.       BackColor       =   &H0080C0FF&
  384.       Height          =   270
  385.       Left            =   7680
  386.       TabIndex        =   11
  387.       Top             =   600
  388.       Visible         =   0   'False
  389.       Width           =   2490
  390.    End
  391.    Begin VB.Label Lab_Djclzt 
  392.       BackColor       =   &H0000FFFF&
  393.       Caption         =   "1"
  394.       ForeColor       =   &H00808080&
  395.       Height          =   255
  396.       Left            =   10320
  397.       TabIndex        =   10
  398.       Top             =   600
  399.       Visible         =   0   'False
  400.       Width           =   285
  401.    End
  402.    Begin VB.Label Lab_OperStatus 
  403.       BackColor       =   &H000080FF&
  404.       Caption         =   "1"
  405.       Height          =   345
  406.       Left            =   10290
  407.       TabIndex        =   9
  408.       Top             =   960
  409.       Visible         =   0   'False
  410.       Width           =   345
  411.    End
  412.    Begin VB.Label Lab_Bill 
  413.       Appearance      =   0  'Flat
  414.       BackColor       =   &H80000005&
  415.       BackStyle       =   0  'Transparent
  416.       ForeColor       =   &H00000000&
  417.       Height          =   225
  418.       Left            =   9030
  419.       TabIndex        =   8
  420.       Top             =   6330
  421.       Width           =   735
  422.    End
  423.    Begin VB.Label Lab_Checker 
  424.       Appearance      =   0  'Flat
  425.       BackColor       =   &H80000005&
  426.       BackStyle       =   0  'Transparent
  427.       ForeColor       =   &H00000000&
  428.       Height          =   225
  429.       Left            =   7170
  430.       TabIndex        =   7
  431.       Top             =   6360
  432.       Width           =   735
  433.    End
  434.    Begin VB.Label TsLabel 
  435.       Alignment       =   1  'Right Justify
  436.       AutoSize        =   -1  'True
  437.       BackStyle       =   0  'Transparent
  438.       Caption         =   "单据号:"
  439.       Height          =   180
  440.       Index           =   0
  441.       Left            =   240
  442.       TabIndex        =   6
  443.       Top             =   1560
  444.       Width           =   765
  445.    End
  446. End
  447. Attribute VB_Name = "Tr_ShipDeliver"
  448. Attribute VB_GlobalNameSpace = False
  449. Attribute VB_Creatable = False
  450. Attribute VB_PredeclaredId = True
  451. Attribute VB_Exposed = False
  452. '***********************************************************************************************************
  453. '*    模 块 名 称 :水运送货单
  454. '*    功 能 描 述 :
  455. '*    程序员姓名  :徐强
  456. '*    最后修改人  :徐强
  457. '*    最后修改时间:2001/12/6
  458. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  459. '***********************************************************************************************************
  460.  
  461. '[以下为根据实际情况设置变量
  462. Dim Bln_BillChange As Boolean                   '标识单据是否发生改动
  463. Dim Rec_Query As New ADODB.Recordset            '单据组查询结果动态集(保存当前单据组ID)
  464. Public Str_QueryCondi As String                 '单据组查询条件(接收单据列表传递查询条件)
  465. Dim Str_RightEdit As String                     '单据编辑(新增、修改、删除)权限索引
  466. Dim Str_RightCheck As String                    '单据审核(审核、弃审)权限索引
  467. ']
  468. '以下为固定使用变量(单据)
  469. Dim BillCode As String                          '单据设计编码(索引号)
  470. Dim Var_Bill() As Variant                       '用来返回单据设计信息
  471. Dim ReportTitle As String                       '报表主标题
  472. Dim Tsxx As String                              '系统提示信息
  473. Dim Dyymctbl As New DY_Dyymsz                   '打印页面窗体变量
  474. '以下为固定使用变量(文本框)
  475. Dim Textvar() As Variant                        '存储变体型文本框信息
  476. Dim Textboolean() As Boolean                    '存储布尔型文本框信息
  477. Dim Textint() As Integer                        '存储整型文本框信息
  478. Dim Textstr() As String                         '存储字符型文本框信息
  479. Dim Max_Text_Index As Integer                   '最大录入文本框索引值
  480. Dim TextGroupCode As String                     '文本框录入分组编码
  481. Dim TextValiLock As Boolean                     '文本框失去焦点是否进行有效性控制判断
  482. Dim TextValiJudgeLock() As Boolean              '文本框录入有效性判断控制锁
  483. Dim TextChangeLock As Boolean                   '文本框内容变换控制锁
  484.     
  485. Private Sub Form_KeyPress(KeyAscii As Integer)      '控 制 焦 点 转 移
  486.     
  487.     Dim jdzygs As Integer
  488.     jdzygs = 30                                      '在单据录入中,此焦点转移控制值一定小于等于文本框个数,否则网格回车键将不支持.
  489.     Select Case KeyAscii
  490.         Case vbKeyReturn
  491.             If Kjjdzy(jdzygs) Then
  492.                 KeyAscii = 0
  493.             End If
  494.         Case 39           '屏蔽字符"'"
  495.             KeyAscii = 0
  496.     End Select
  497. End Sub
  498. Private Sub Form_Load()                                                        '窗 体 装 入
  499.     '初始化各种锁值(Fixed)
  500.     Changelock = False             '网格行列改变控制锁
  501.     Gdtlock = False                '滚动条滚动控制
  502.     Yxxpdlock = True               '字段有效性判断锁
  503.     Hyxxpdlock = True              '行有效性判断锁
  504.     Wbkbhlock = False              '文本框内容改变锁
  505.     
  506.     '单据权限索引设置
  507.     Str_RightEdit = "tr_shipdeliver_edit"
  508.     Str_RightCheck = "tr_shipdeliver_check"
  509.     
  510.     '调入单据信息(需要修改BillCode)
  511.     BillCode = "1608"
  512.     Call Sub_ReadBillInfo(BillCode, Me, Var_Bill())
  513.     Lab_Title = Var_Bill(2)
  514.     Lab_Title.Move (Me.Width - Lab_Title.Width) / 2, 800
  515.     
  516.     '报表编码
  517.     XtReportCode = Var_Bill(5)
  518.     Load Dyymctbl
  519.   
  520.     '以下为文本框处理程序(Fixed)
  521.     TextGroupCode = Var_Bill(3)
  522.  
  523.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  524.     Call Wbkcsh
  525.     '单据变动置为False(Fixed)
  526.     Bln_BillChange = False
  527.     
  528.     '调入数据初始化模块(Fixed)
  529.     Lab_Djclzt.Caption = Xtcdcs
  530.     Call Sjcsh(Trim(Lab_Djclzt.Caption))
  531.    
  532. End Sub
  533. Private Sub Form_Unload(Cancel As Integer)           '窗体卸载
  534.     
  535.     '是否保存已修改单据
  536.     Dim YAnswer As Integer
  537.     If Lab_OperStatus.Caption = "2" Or Lab_OperStatus.Caption = "3" Then
  538.         Tsxx = "单据尚未保存,是否退出?"
  539.         YAnswer = Xtxxts(Tsxx, 2, 2)
  540.         If YAnswer <> 1 Then
  541.             Cancel = 1
  542.             Exit Sub
  543.         End If
  544.     End If
  545.     
  546.     '卸载打印页面窗体
  547.     Unload Dyymctbl
  548.  
  549.     '判断单据是否发生变化,并返回相应标识
  550.     If Bln_BillChange Then
  551.         Xtfhcs = "1"
  552.     Else
  553.         Xtfhcs = "0"
  554.     End If
  555.    
  556. End Sub
  557. Private Sub Sjcsh(Str_Pzclzt As String)              '数据初始化模块(根据实际情况)
  558.     
  559.     Dim Sqlstr As String       '查询单据列表条件
  560.     '[>>根据实际情况初始化
  561.     Select Case Str_Pzclzt
  562.         Case "1"   '填制单据
  563.             '调入用户查询结果动态集(默认显示用户当前操作业务日期的单据)
  564.             Sqlstr = "SELECT ShipDeliverid From Tr_ShipDeliver ORDER BY ShipDeliverId"
  565.             Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  566.       
  567.             '新增单据
  568.             Call Sub_AddBill
  569.         Case "2"   '查询单据(单据列表)
  570.         
  571.             '填充查询单据标识
  572.             Lab_BillId.Caption = XT_BillID
  573.             Str_QueryCondi = Xtcdcsfz
  574.                 
  575.             Call Sub_ShowBill
  576.             Call Sub_OperStatus("10")
  577.       
  578.             '调入用户查询结果动态集
  579.             Sqlstr = "SELECT DISTINCT ShipDeliverId From Tr_V_ShipDeliver a " & Str_QueryCondi & " ORDER BY ShipDeliverId"
  580.             Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  581.             Rec_Query.find "ShipDeliverId=" & Val(Lab_BillId.Caption)
  582.         Case "3"   '明细帐联查单据
  583.             '设置工具条显示
  584.             With Tlb_Action
  585.                 .Buttons("xz").Enabled = False             '新增
  586.                 .Buttons("xg").Enabled = False             '修改
  587.                 .Buttons("sc").Enabled = False             '删除
  588.                 .Buttons("fgh0").Enabled = False           '分隔行
  589.                 .Buttons("fgh1").Enabled = False           '分隔行
  590.                 .Buttons("bc").Enabled = False             '保存
  591.                 .Buttons("fq").Enabled = False             '放弃
  592.                 .Buttons("shsh").Enabled = False           '审核
  593.                 .Buttons("shqs").Enabled = False           '弃审
  594.                 .Buttons("fgh2").Enabled = False           '分隔行
  595.                 .Buttons("first").Enabled = False          '首张
  596.                 .Buttons("prev").Enabled = False           '上张
  597.                 .Buttons("next").Enabled = False           '下张
  598.                 .Buttons("last").Enabled = False           '末张
  599.                 .Buttons("fgh5").Enabled = False           '分割行
  600.             End With
  601.       
  602.             Call Sub_ShowBill
  603.       
  604.             '设置操作状态为浏览
  605.             Lab_OperStatus.Caption = "1"
  606.       
  607.             '录入文本框
  608.             For jsqte = Max_Text_Index To 0 Step -1
  609.                 LrText(jsqte).Enabled = False
  610.             Next jsqte
  611.     End Select
  612.   
  613.     '<<]
  614.   
  615. End Sub
  616. Private Sub Sub_ShowBill()                                          '根据当前单据ID显示整张单据内容
  617.    
  618.     '过程默认参数为当前窗体中单据ID:Lab_BillID
  619.     Dim Sqlstr As String                           '临时使用字符串
  620.     Dim RecTemp As New ADODB.Recordset             '临时使用动态集
  621.     Dim jsqte As Long                             '临时计数器
  622.     '禁止网格刷新动作,为加快网格显示速度(Fixed)
  623.     '本张单据查询字符串
  624.     Sqlstr = "select * from tr_v_ShipDeliver Where ShipDeliverId='" & Val(Lab_BillId.Caption) & "' Order By ShipDeliverId"
  625.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  626.       
  627.     With RecTemp
  628.             '[>>显示单据头
  629.         If Not .EOF Then
  630.         TextChangeLock = True     '文本框加锁
  631.         LrText(0).Text = Format(.Fields("ShipDeliverDate"), "yyyy-mm-dd")   '日期
  632.         LrText(1).Text = Trim(.Fields("ShipDelivernum"))          '提货单号
  633.         LrText(2).Text = Trim(.Fields("ldgnum") & "")             '货源单位名称
  634.         LrText(3).Tag = Trim(.Fields("sellcustcode"))             '客户编码
  635.         LrText(3).Text = Trim(.Fields("sellcustname"))            '客户名称
  636.         LrText(4).Text = Trim(.Fields("address") & "")            '地址
  637.         LrText(5).Text = Trim(.Fields("phone"))                   '联系方式
  638.         LrText(6).Text = Trim(.Fields("person") & "")             '联系人
  639.         LrText(7).Text = Trim(.Fields("mnumber"))                 '货物编码
  640.         LrText(8).Text = Trim(.Fields("mname") & "")              '货物名称
  641.         LrText(9).Text = Trim(.Fields("model") & "")              '规格
  642.         LrText(10).Text = Trim(.Fields("goodsgroup"))             '批次
  643.         LrText(11).Text = Trim(.Fields("quantity") & "")          '吨位
  644.         LrText(12).Text = Trim(.Fields("price") & "")             '单价
  645.         LrText(13).Text = Trim(.Fields("boxnum") & "")            '箱量
  646.         LrText(14).Text = Trim(.Fields("watcherman") & "")        '监装人
  647.         LrText(15).Text = Trim(.Fields("sendman") & "")           '发货人
  648.         LrText(16).Tag = Trim(.Fields("receivecode") & "")        '承运单位编码
  649.         LrText(16).Text = Trim(.Fields("trancompanyname") & "")   '承运单位名称
  650.         LrText(17).Text = IIf(.Fields("upboxdate") & "" = "", "", Format(.Fields("upboxdate"), "yyyy-mm-dd")) '装箱日期
  651.         LrText(18).Text = IIf(.Fields("startdate") & "" = "", "", Format(.Fields("startdate"), "yyyy-mm-dd")) '开船日期
  652.         LrText(19).Text = IIf(.Fields("returndate") & "" = "", "", Format(.Fields("returndate"), "yyyy-mm-dd")) '回单日期
  653.         LrText(20).Text = Trim(.Fields("shipway") & "")           '船名航次
  654.         LrText(21).Text = Trim(.Fields("carrynum") & "")          '运单号
  655.         LrText(22).Text = Trim(.Fields("Remark") & "")            '备注
  656.         LrText(23).Text = Trim(.Fields("Maker") & "")             '制单人
  657.         LrText(24).Text = Trim(.Fields("Checker") & "")           '审核人
  658.         TextChangeLock = False    '文本框解锁
  659.         End If
  660.     End With
  661.        
  662.     '设置审核弃审按钮状态
  663.     Call Sub_CheckStatus
  664.        
  665. End Sub
  666. Private Sub Tlb_Action_ButtonClick(ByVal Button As MSComctlLib.Button)             '用户点击工具条
  667.      
  668.     '屏蔽文本框,下拉组合框有效性判断
  669.     Valilock = True
  670.      
  671.     '屏蔽网格失去焦点产生的有效性判断
  672.     Changelock = True
  673.        
  674.     Select Case Button.Key
  675.         Case "yl"                                            '预 览
  676.             BillTextPrint Lab_Title, LrText, TextGroupCode, XtReportCode, False
  677.         Case "dy"                                            '打 印
  678.             Dim yhAnswer As Integer      '打印提示
  679.             
  680.             '用户确认是否打印单据
  681.             Tsxx = "请确认是否打印当前单据?"
  682.             yhAnswer = Xtxxts(Tsxx, 2, 2)
  683.             If yhAnswer = 2 Then
  684.                 Exit Sub
  685.             End If
  686.             BillTextPrint Lab_Title, LrText, TextGroupCode, XtReportCode, True
  687.         Case "xz"                                            '新 增
  688.             Call Sub_AddBill
  689.         Case "xg"                                            '修 改
  690.             Call Sub_EditBill
  691.         Case "sc"                                            '删 除
  692.             Call Sub_DeleteBill
  693.         Case "bc"                                            '保 存
  694.             Call Sub_SaveBill
  695.         Case "fq"                                            '放 弃
  696.             Call Sub_AbandonBill
  697.         Case "shsh"                                          '审 核
  698.             Call Sub_CheckBill
  699.         Case "shqs"                                          '弃 审
  700.             Call Sub_AbandonCheck
  701.         Case "first"                                         '首 张
  702.             Call Sub_First
  703.         Case "prev"                                          '上 张
  704.             Call Sub_Prev
  705.         Case "next"                                          '下 张
  706.             Call Sub_Next
  707.         Case "last"                                          '末 张
  708.             Call Sub_Last
  709.         Case "bz"                                            '帮 助
  710.             Call F1bz
  711.         Case "fh"                                            '退 出
  712.             Unload Me
  713.     End Select
  714.        
  715.     '解 锁
  716.     Valilock = False
  717.     Changelock = False
  718.     TextChangeLock = False
  719.         
  720. End Sub
  721. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)     '支持热键操作
  722.     
  723.     Select Case KeyCode
  724.         Case vbKeyF5          '增加单据
  725.             If Tlb_Action.Buttons("xz").Enabled And Tlb_Action.Buttons("xz").Visible Then
  726.                 Call Sub_AddBill
  727.             End If
  728.         Case vbKeyF3          '修改单据
  729.             If Tlb_Action.Buttons("xg").Enabled And Tlb_Action.Buttons("xg").Visible Then
  730.                 Call Sub_EditBill
  731.             End If
  732.         Case vbKeyF6          '保存单据
  733.             If Tlb_Action.Buttons("bc").Enabled And Tlb_Action.Buttons("bc").Visible Then
  734.                 Call Sub_SaveBill
  735.             End If
  736.     End Select
  737. End Sub
  738. Private Sub Sub_OperStatus(Str_Status As String)                 '工具条依据不同状态所进行的变化
  739.   
  740.     With Tlb_Action
  741.         Select Case Str_Status
  742.             Case "10"   '浏览((列表)调入单据处理时的进入状态、(列表)新增状态时放弃录入)
  743.                 '工具条
  744.                 .Buttons("dy").Enabled = True       '打印
  745.                 .Buttons("yl").Enabled = True       '预览
  746.                 .Buttons("xz").Enabled = True       '新增
  747.                 .Buttons("xg").Enabled = True       '修改
  748.                 .Buttons("sc").Enabled = True       '删除
  749.                 .Buttons("bc").Enabled = False      '保存
  750.                 .Buttons("fq").Enabled = False      '放弃
  751.                 .Buttons("first").Enabled = True    '首张
  752.                 .Buttons("prev").Enabled = True     '上张
  753.                 .Buttons("next").Enabled = True     '下张
  754.                 .Buttons("last").Enabled = True     '末张
  755.                 .Buttons("bz").Enabled = True       '帮助
  756.                 .Buttons("fh").Enabled = True       '退出
  757.                 
  758.                 '设置审核弃审按钮状态
  759.                 Call Sub_CheckStatus
  760.                 
  761.                 '设置文本框录入状态
  762.                 Call Sub_LrtextStatus(False)
  763.             Case "20"   '新增单据((录入)新增一张单据 、(列表)新增一张单据)
  764.                  '工具条
  765.                  .Buttons("dy").Enabled = False      '打印
  766.                  .Buttons("yl").Enabled = False      '预览
  767.                  .Buttons("xz").Enabled = False      '新增
  768.                  .Buttons("xg").Enabled = False      '修改
  769.                  .Buttons("sc").Enabled = False      '删除
  770.                  .Buttons("bc").Enabled = True       '保存
  771.                  .Buttons("fq").Enabled = True       '放弃
  772.                  .Buttons("shsh").Enabled = False    '审核
  773.                  .Buttons("shqs").Enabled = False    '弃审
  774.                  .Buttons("first").Enabled = False   '首张
  775.                  .Buttons("prev").Enabled = False    '上张
  776.                  .Buttons("next").Enabled = False    '下张
  777.                  .Buttons("last").Enabled = False    '末张
  778.                  .Buttons("bz").Enabled = True       '帮助
  779.                  .Buttons("fh").Enabled = True       '退出
  780.                  
  781.                  '设置文本框录入状态
  782.                  Call Sub_LrtextStatus(True)
  783.             Case "30"   '修改((录入)调入修改功能、(列表)调入修改功能)
  784.                 '工具条
  785.                 .Buttons("dy").Enabled = False      '打印
  786.                 .Buttons("yl").Enabled = False      '预览
  787.                 .Buttons("xz").Enabled = False      '新增
  788.                 .Buttons("xg").Enabled = False      '修改
  789.                 .Buttons("sc").Enabled = False      '删除
  790.                 .Buttons("bc").Enabled = True       '保存
  791.                 .Buttons("fq").Enabled = True       '放弃
  792.                 .Buttons("shsh").Enabled = False    '审核
  793.                 .Buttons("shqs").Enabled = False    '弃审
  794.                 .Buttons("first").Enabled = False   '首张
  795.                 .Buttons("prev").Enabled = False    '上张
  796.                 .Buttons("next").Enabled = False    '下张
  797.                 .Buttons("last").Enabled = False    '末张
  798.                 .Buttons("bz").Enabled = True       '帮助
  799.                 .Buttons("fh").Enabled = True       '退出
  800.                 
  801.                 '设置文本框录入状态
  802.                 Call Sub_LrtextStatus(True)
  803.                 LrText(0).Enabled = False
  804.                 LrText(2).SetFocus
  805.         End Select
  806.     End With
  807.     
  808. End Sub
  809. Private Sub Sub_LrtextStatus(TextEnabled As Boolean)                            '设置录入文本框状态
  810.     '录入文本框状态设置
  811.     If TextEnabled Then
  812.         For jsqte = Max_Text_Index To 0 Step -1
  813.             '判断文本框是否可编辑
  814.             If Textboolean(jsqte, 5) Then
  815.                 LrText(jsqte).Enabled = True
  816.             Else
  817.                 LrText(jsqte).Enabled = False
  818.             End If
  819.         Next jsqte
  820.     Else
  821.         For jsqte = Max_Text_Index To 0 Step -1
  822.             LrText(jsqte).Enabled = False
  823.         Next jsqte
  824.     End If
  825. End Sub
  826. Private Sub Sub_CheckStatus()                                       '设置审核弃审按钮状态(亦可设置其他动作按钮状态)
  827.     
  828.     '根据当前单据状态来确定审核弃审按钮状态
  829.     If Trim(LrText(23).Text) <> "" And Trim(LrText(24).Text) = "" Then
  830.         Tlb_Action.Buttons("shsh").Enabled = True      '审核
  831.     Else
  832.         Tlb_Action.Buttons("shsh").Enabled = False   '审核
  833.     End If
  834.     If Trim(LrText(23).Text) <> "" And Trim(LrText(24).Text) <> "" Then
  835.         Tlb_Action.Buttons("shqs").Enabled = True      '弃审
  836.     Else
  837.         Tlb_Action.Buttons("shqs").Enabled = False   '弃审
  838.     End If
  839. End Sub
  840. Private Sub Sub_AddBill()                                                '新增一张单据
  841.     
  842.     Dim RecTemp As New ADODB.Recordset            '临时使用动态集
  843.     Dim jsqte As Long                            '临时计数器
  844.     Dim Sqlstr As String
  845.      
  846.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  847.      If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  848.         Exit Sub
  849.      End If
  850.           
  851.     '设置操作状态为新增(Fixed)
  852.     Lab_OperStatus.Caption = "2"
  853.        
  854.     '设置工具条状态(Fixed)
  855.     Call Sub_OperStatus("20")
  856.    
  857.     '清空VouchID(Fixed)
  858.     Lab_BillId.Caption = ""
  859.       
  860.     '录入文本框清除内容
  861.     For jsqte = Max_Text_Index To 0 Step -1
  862.         LrText(jsqte).Tag = ""
  863.         LrText(jsqte).Text = ""
  864.     Next jsqte
  865.     '[>>显示制单人,清空审核人,此处还可以设置录入默认值如自动生成单据号、默认单据录入日期注意加锁
  866.     TextChangeLock = True
  867.     LrText(0).Text = Format(Xtrq, "yyyy-mm-dd")
  868.     '读取最新的单据编码
  869.     LrText(1).Text = CreatBillCode(BillCode, False)
  870.     LrText(23).Text = Xtczy
  871.     LrText(24).Text = ""
  872.     TextChangeLock = False
  873.    
  874.     '<<]
  875.     '让第一个录入项得到焦点(Fixed)
  876.     On Error Resume Next
  877.     LrText(0).SetFocus
  878.    
  879. End Sub
  880. Private Sub Sub_EditBill()                                                '修改一张单据
  881.    
  882.     Dim RecTemp As New ADODB.Recordset     '临时使用动态集
  883.      
  884.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  885.      If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  886.         Exit Sub
  887.      End If
  888.           
  889.     '非有效单据不予进行修改动作
  890.     If Val(Lab_BillId.Caption) = 0 Then
  891.         Exit Sub
  892.     End If
  893.    
  894.     '判断当前单据是否允许修改
  895.     If Not Fun_AllowEdit Then
  896.         Exit Sub
  897.     End If
  898.    
  899.     '设置操作状态为修改
  900.     Lab_OperStatus.Caption = "3"
  901.    
  902.     '设置工具条状态
  903.     Call Sub_OperStatus("30")
  904.         
  905.     '显示制单人
  906.     LrText(23).Text = Xtczy
  907.    
  908. End Sub
  909. Private Sub Sub_DeleteBill()                                               '删除当前单据
  910.     Dim YAnswer As Integer               '确认是否删除当前单据
  911.     Dim jsqte As Long                   '临时使用计数器
  912.      
  913.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  914.      If Not Security_Log(Str_RightEdit, Xtczybm, 1, True) Then
  915.         Exit Sub
  916.      End If
  917.           
  918.     '非有效单据不予进行删除动作
  919.     If Val(Lab_BillId.Caption) = 0 Then
  920.         Exit Sub
  921.     End If
  922.    
  923.     Tsxx = "请确认是否删除当前单据?"
  924.     YAnswer = Xtxxts(Tsxx, 2, 2)
  925.    
  926.     If YAnswer = 1 Then
  927.    
  928.         '判断当前单据是否允许删除
  929.         If Not Fun_AllowEdit Then
  930.             Exit Sub
  931.         End If
  932.       
  933.         '进行事务处理
  934.         On Error GoTo Swcwcl
  935.         Cw_DataEnvi.DataConnect.BeginTrans
  936.    
  937.         '1.删除单据所有内容
  938.         Cw_DataEnvi.DataConnect.Execute ("Delete Tr_ShipDeliver Where ShipDeliverId=" & Val(Lab_BillId.Caption))
  939.         Cw_DataEnvi.DataConnect.CommitTrans
  940.       
  941.         '标识单据发生改动
  942.         Bln_BillChange = True
  943.   
  944.         '单据ID置0
  945.         Lab_BillId.Caption = 0
  946.     Else
  947.         Exit Sub
  948.     End If
  949.     
  950.    '删除单据后重置状态
  951.         
  952.     '1.显示下一张单据
  953.     Call Sub_Next
  954.         
  955.     '2.如果无下一张单据则搜索上一张单据
  956.     If Val(Lab_BillId.Caption) = 0 Then
  957.         Call Sub_Prev
  958.     End If
  959.         
  960.     '3.如无单据则置单据为空状态
  961.     If Val(Lab_BillId.Caption) = 0 Then
  962.         '清除录入文本框
  963.         For jsqte = Max_Text_Index To 0 Step -1
  964.             LrText(jsqte).Tag = ""
  965.             LrText(jsqte).Text = ""
  966.         Next jsqte
  967.         '设置操作状态为浏览
  968.         Lab_OperStatus = "1"
  969.         Call Sub_OperStatus("10")
  970.     End If
  971.     Rec_Query.Requery
  972.     Rec_Query.find "ShipDeliverId=" & Val(Lab_BillId.Caption)
  973.     Exit Sub
  974.    
  975. Swcwcl:          '单据删除时出现错误
  976.     Cw_DataEnvi.DataConnect.RollbackTrans
  977.     Tsxx = "单据删除过程中出现未知错误,程序自动恢复保存前状态!"
  978.     Call Xtxxts(Tsxx, 0, 1)
  979.     Exit Sub
  980. End Sub
  981. Private Sub Sub_AbandonBill()                                              '放弃对当前单据的操作
  982.  
  983.     Dim jsqte As Long                   '临时使用计数器
  984.   
  985.     '先关闭录入载体(Fixed)
  986.     Changelock = True
  987.     Valilock = True
  988.     Changelock = False
  989.     Valilock = False
  990.     '如果单据有效则重新显示当前单据,置单据为空状态
  991.     If Not Rec_Query.EOF Then
  992.         Lab_BillId.Caption = Rec_Query.Fields("ShipDeliverId")
  993.         Call Sub_ShowBill
  994.     Else
  995.         '单据ID置为0
  996.         Lab_BillId.Caption = 0
  997.      
  998.         '清除录入文本框
  999.         For jsqte = Max_Text_Index To 0 Step -1
  1000.             LrText(jsqte).Tag = ""
  1001.             LrText(jsqte).Text = ""
  1002.         Next jsqte
  1003.     End If
  1004.     
  1005.     '设置操作状态为浏览
  1006.     Lab_OperStatus = "1"
  1007.     Call Sub_OperStatus("10")
  1008. End Sub
  1009. Private Function Sub_SaveBill() As Boolean                                   '保 存 单 据
  1010.   
  1011.     Dim RecTemp As New ADODB.Recordset                    '临时使用动态集
  1012.     Dim Rec_VouchMain As New ADODB.Recordset              '单据主表动态集
  1013.     Dim Rec_VouchSub As New ADODB.Recordset               '单据子表动态集
  1014.     Dim Rowjsq As Long                                    '网格行计数器
  1015.     Dim Coljsq As Long                                    '网格列计数器
  1016.     Dim jsqte As Integer                                 '临时计数器
  1017.     Dim Lng_RowCount As Long                              '有效数据行计数器
  1018.     Dim Lrywlz As Long                                    '录入有误列值
  1019.     
  1020.     Sub_SaveBill = False
  1021.   
  1022.     '一.============先对单据内容进行有效性判断==============='
  1023.     '对需要进行事后判断的文本框录入内容进行有效性判断 (Fixed)
  1024.     For jsqte = 0 To Max_Text_Index
  1025.         If Textint(jsqte, 9) = 0 Or Textint(jsqte, 9) = 2 Then
  1026.             If Not TextYxxpd(jsqte) Then
  1027.                 Call TextShow(jsqte)
  1028.                 Exit Function
  1029.             End If
  1030.         End If
  1031.     Next jsqte
  1032.     '先进行字段不能为空或不能为零有效性判断(Fixed)
  1033.     For jsqte = 0 To Max_Text_Index
  1034.         If Textint(jsqte, 8) = 1 Then     '字段不能为空
  1035.             If Len(Trim(LrText(jsqte).Text)) = 0 Then
  1036.                 Tsxx = Textstr(jsqte, 7) & "不能为空!"
  1037.                 Call Xtxxts(Tsxx, 0, 1)
  1038.                 LrText(jsqte).SetFocus
  1039.                 Exit Function
  1040.             End If
  1041.         Else
  1042.             If Textint(jsqte, 8) = 2 Then   '字段不能为零
  1043.                 If Val(Trim(LrText(jsqte).Text)) = 0 Then
  1044.                     Tsxx = Textstr(jsqte, 7) & "不能为零!"
  1045.                     Call Xtxxts(Tsxx, 0, 1)
  1046.                     LrText(jsqte).SetFocus
  1047.                     Exit Function
  1048.                 End If
  1049.             End If
  1050.         End If
  1051.     Next jsqte
  1052.     
  1053.     If IsDate(LrText(17)) And LrText(17) > LrText(18) Then
  1054.         Tsxx = "装箱日期不能大于开船日期!"
  1055.         Call Xtxxts(Tsxx, 0, 1)
  1056.         LrText(17).SetFocus
  1057.         Exit Function
  1058.     End If
  1059.     
  1060.     If IsDate(LrText(19)) And LrText(18) > LrText(19) Then
  1061.         Tsxx = "开船日期不能大于回单日期!"
  1062.         Call Xtxxts(Tsxx, 0, 1)
  1063.         LrText(18).SetFocus
  1064.         Exit Function
  1065.     End If
  1066.     
  1067.     '二.=============如果以上有效性检查均顺利通过,则执行存盘动作============'
  1068.    
  1069.     '对存盘进行事务处理(Fixed)
  1070.     On Error GoTo Swcwcl
  1071.     Cw_DataEnvi.DataConnect.BeginTrans
  1072.     
  1073.     '判断单据状态以进行不同处理
  1074.     
  1075.     '1.先对单据主表进行处理
  1076.     If Trim(Lab_OperStatus) = "2" Then
  1077.     
  1078.         '新增单据
  1079.         
  1080.         '1.对于某些单据号自动生成的单据则可在此处自动生成
  1081.          LrText(1).Text = CreatBillCode(BillCode, True)
  1082.     
  1083.         '2.开始存盘
  1084.          
  1085.         '打开单据主表动态集
  1086.         If Rec_VouchMain.State = 1 Then Rec_VouchMain.Close
  1087.         Rec_VouchMain.Open "Select * From Tr_ShipDeliver Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1088.              
  1089.         With Rec_VouchMain
  1090.             .AddNew
  1091.             .Fields("ShipdeliverId") = CreatBillID(BillCode)
  1092.             .Fields("ShipdeliverDate") = CDate(LrText(0).Text)    '开票日期
  1093.             .Fields("ShipDelivernum") = Trim(LrText(1).Text)      '水运单号
  1094.             .Fields("ldgnum") = Trim(LrText(2))                   '销售发货单号
  1095.             .Fields("sellcustcode") = Trim(LrText(3).Tag)         '客户编码
  1096.             .Fields("sellcustname") = Trim(LrText(3))
  1097.             .Fields("address") = Trim(LrText(4))                  '地址
  1098.             .Fields("phone") = Trim(LrText(5))                    '联系方式
  1099.             .Fields("person") = Trim(LrText(6))                   '联系人
  1100.             .Fields("Mnumber") = Trim(LrText(7))                  '货物编码
  1101.             .Fields("goodsgroup") = Trim(LrText(10))              '批次
  1102.             .Fields("quantity") = Trim(LrText(11))                '吨位
  1103.             .Fields("price") = Trim(LrText(12))                   '单价
  1104.             .Fields("boxnum") = Val(LrText(13))                   '箱量
  1105.             .Fields("watcherman") = Trim(LrText(14))              '监装人
  1106.             .Fields("sendman") = Trim(LrText(15))                 '发货人
  1107.             .Fields("receivecode") = Trim(LrText(16).Tag)         '承运单位
  1108.             If IsDate(Trim(LrText(17))) Then                      '装箱日期
  1109.                 .Fields("upboxdate") = Trim(LrText(17))
  1110.             Else
  1111.                 .Fields("upboxdate") = Null
  1112.             End If
  1113.             .Fields("startdate") = Trim(LrText(18))               '开船日期
  1114.             If IsDate(LrText(19)) Then                            '回单日期
  1115.                 .Fields("returndate") = Trim(LrText(19))
  1116.             Else
  1117.                 .Fields("returndate") = Null
  1118.             End If
  1119.             .Fields("shipway") = Trim(LrText(20))                 '船名船号
  1120.             .Fields("carrynum") = Trim(LrText(21))                '运单号
  1121.             .Fields("remark") = Trim(LrText(22))                  '备注
  1122.             .Fields("maker") = Xtczy                              '制单人
  1123.             .Fields("Checker") = ""                               '审核人置空
  1124.             .Update
  1125.             '系统读出单据ID写入Lab_BillID
  1126.             Lab_BillId.Caption = .Fields("ShipDeliverId")
  1127.         End With
  1128.     Else
  1129.         '修改单据
  1130.         '打开单据主表动态集
  1131.         If Rec_VouchMain.State = 1 Then Rec_VouchMain.Close
  1132.         Rec_VouchMain.Open "Select * From Tr_ShipDeliver  Where ShipDeliverId=" & Val(Lab_BillId.Caption), Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1133.         With Rec_VouchMain
  1134.             .Fields("ShipdeliverDate") = CDate(LrText(0).Text)    '开票日期
  1135.             .Fields("ShipDelivernum") = Trim(LrText(1).Text)      '水运单号
  1136.             .Fields("ldgnum") = Trim(LrText(2))                   '销售发货单号
  1137.             .Fields("sellcustcode") = Trim(LrText(3).Tag)         '客户编码
  1138.             .Fields("sellcustname") = Trim(LrText(3))
  1139.             .Fields("address") = Trim(LrText(4))                  '地址
  1140.             .Fields("phone") = Trim(LrText(5))                    '联系方式
  1141.             .Fields("person") = Trim(LrText(6))                   '联系人
  1142.             .Fields("Mnumber") = Trim(LrText(7))                  '货物编码
  1143.             .Fields("goodsgroup") = Trim(LrText(10))              '批次
  1144.             .Fields("quantity") = Trim(LrText(11))                '吨位
  1145.             .Fields("price") = Trim(LrText(12))                   '单价
  1146.             .Fields("boxnum") = Val(LrText(13))                   '箱量
  1147.             .Fields("watcherman") = Trim(LrText(14))              '监装人
  1148.             .Fields("sendman") = Trim(LrText(15))                 '发货人
  1149.             .Fields("receivecode") = Trim(LrText(16).Tag)         '承运单位
  1150.             If IsDate(Trim(LrText(17))) Then                      '装箱日期
  1151.                 .Fields("upboxdate") = Trim(LrText(17))
  1152.             Else
  1153.                 .Fields("upboxdate") = Null
  1154.             End If
  1155.             .Fields("startdate") = Trim(LrText(18))               '开船日期
  1156.             If IsDate(LrText(19)) Then                            '回单日期
  1157.                 .Fields("returndate") = Trim(LrText(19))
  1158.             Else
  1159.                 .Fields("returndate") = Null
  1160.             End If
  1161.             .Fields("shipway") = Trim(LrText(20))                 '船名船号
  1162.             .Fields("carrynum") = Trim(LrText(21))                '运单号
  1163.             .Fields("remark") = Trim(LrText(22))                  '备注
  1164.             .Fields("maker") = Xtczy                              '制单人
  1165.             .Fields("Checker") = ""                               '审核人置空
  1166.             .Update
  1167.         End With
  1168.     End If
  1169.          
  1170.     Cw_DataEnvi.DataConnect.CommitTrans
  1171.     
  1172.     Sub_SaveBill = True
  1173.     Tsxx = "单据存盘完毕! 单据号:" & Trim(LrText(1).Text)
  1174.     Call Xtxxts(Tsxx, 0, 4)
  1175.     
  1176.     '标识单据发生改动
  1177.     Bln_BillChange = True
  1178.     
  1179.     '设置单据改变后的状态
  1180.     Lab_OperStatus = "1"
  1181.     Call Sub_OperStatus("10")
  1182.     Rec_Query.Requery
  1183.     Rec_Query.find "ShipDeliverId=" & Val(Lab_BillId.Caption)
  1184.     
  1185.     Exit Function
  1186. Swcwcl:       '数据存盘时出现错误
  1187.     Cw_DataEnvi.DataConnect.RollbackTrans
  1188.     If Err.Number = -2147217887 Then
  1189.         Tsxx = "录入数据超出允许范围!"
  1190.         Call Xtxxts(Tsxx, 0, 1)
  1191.         Exit Function
  1192.      Else
  1193.         Tsxx = "存盘过程中出现未知错误,程序自动恢复保存前状态!"
  1194.         Call Xtxxts(Tsxx, 0, 1)
  1195.         Exit Function
  1196.     End If
  1197. End Function
  1198. '选择首张,上张,下张,末张(此4个过程只需用您的单据ID字段名替换"ArriveMainId"即可)
  1199. Private Sub Sub_First()             '首 张
  1200.     
  1201.     With Rec_Query
  1202.         If .RecordCount = 0 Then
  1203.             Exit Sub
  1204.         End If
  1205.         .MoveFirst
  1206.         Lab_BillId.Caption = .Fields("ShipDeliverId")
  1207.         Call Sub_ShowBill
  1208.     End With
  1209. End Sub
  1210. Private Sub Sub_Prev()             '上 张
  1211.     
  1212.     With Rec_Query
  1213.         If .RecordCount = 0 Then
  1214.             Exit Sub
  1215.         End If
  1216.         .MovePrevious
  1217.         If Not .BOF Then
  1218.             Lab_BillId.Caption = .Fields("ShipDeliverId")
  1219.         Else
  1220.             .MoveNext
  1221.         End If
  1222.         Call Sub_ShowBill
  1223.     End With
  1224. End Sub
  1225. Private Sub Sub_Next()             '下 张
  1226.     With Rec_Query
  1227.         If .RecordCount = 0 Then
  1228.             Exit Sub
  1229.         End If
  1230.         .MoveNext
  1231.         If Not .EOF Then
  1232.             Lab_BillId.Caption = .Fields("ShipDeliverId")
  1233.         Else
  1234.             .MovePrevious
  1235.         End If
  1236.         Call Sub_ShowBill
  1237.     End With
  1238. End Sub
  1239. Private Sub Sub_Last()              '末 张
  1240.     
  1241.     With Rec_Query
  1242.         If .RecordCount = 0 Then
  1243.             Exit Sub
  1244.         End If
  1245.         .MoveLast
  1246.         Lab_BillId.Caption = .Fields("ShipDeliverId")
  1247.         Call Sub_ShowBill
  1248.     End With
  1249. End Sub
  1250.     
  1251. '[>>===================以下为根据实际业务需要自定义过程区域=============================<<]
  1252. '审核,弃审
  1253. Private Sub Sub_CheckBill()             '审 核
  1254.      
  1255.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  1256.      If Not Security_Log(Str_RightCheck, Xtczybm, 1, True) Then
  1257.         Exit Sub
  1258.      End If
  1259.            
  1260.     '[>>
  1261.     '此处可以写入禁止单据审核的理由
  1262.     '<<]
  1263.     
  1264.     '将单据写入审核标识
  1265.     Cw_DataEnvi.DataConnect.Execute ("Update Tr_ShipDeliver Set Checker='" & Xtczy & "' Where ShipDeliverId=" & Val(Lab_BillId.Caption))
  1266.     
  1267.     '写入系统操作员
  1268.     LrText(24).Text = Xtczy
  1269.     
  1270.     '设置审核弃审按钮状态
  1271.     Call Sub_CheckStatus
  1272.     Tsxx = "审核完毕!"
  1273.     Call Xtxxts(Tsxx, 0, 4)
  1274.     '标识单据发生变化
  1275.     Bln_BillChange = True
  1276. End Sub
  1277. Private Sub Sub_AbandonCheck()          '弃 审
  1278.      
  1279.     '判断用户是否有此功能执行权限,如有则写上机日志(进入)
  1280.      If Not Security_Log(Str_RightCheck, Xtczybm, 1, True) Then
  1281.         Exit Sub
  1282.      End If
  1283.            
  1284.     '[>>
  1285.     '此处可以写入禁止单据弃审的理由
  1286.     '<<]
  1287.    
  1288.     '将单据清除审核标识
  1289.     Cw_DataEnvi.DataConnect.Execute ("Update Tr_ShipDeliver Set Checker='' Where ShipDeliverId=" & Val(Lab_BillId.Caption))
  1290.     
  1291.     '清空单据审核人
  1292.     LrText(24).Text = ""
  1293.     
  1294.     '设置审核弃审按钮状态
  1295.     Call Sub_CheckStatus
  1296.     Tsxx = "弃审完毕!"
  1297.     Call Xtxxts(Tsxx, 0, 4)
  1298.     '标识单据发生变化
  1299.     Bln_BillChange = True
  1300.   
  1301. End Sub
  1302. Private Function Fun_AllowEdit() As Boolean                      '判断当前单据是否允许编辑或删除
  1303.   
  1304.     Dim RecTemp As New ADODB.Recordset     '临时使用动态集
  1305.     Fun_AllowEdit = False
  1306.     Sqlstr = "Select Checker From Tr_ShipDeliver Where ShipDeliverId=" & Val(Lab_BillId.Caption)
  1307.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1308.     With RecTemp
  1309.         If Not .EOF Then
  1310.             If Trim(.Fields("Checker") & "") <> "" Then
  1311.                 Tsxx = "该单据已审核确认,不能修改或删除!"
  1312.                 Call Xtxxts(Tsxx, 0, 4)
  1313.                 Exit Function
  1314.             End If
  1315.         End If
  1316.     End With
  1317.     Fun_AllowEdit = True
  1318. End Function
  1319. '[>>===================以上为根据实际业务需要自定义过程区域=============================<<]
  1320. Private Function Fun_AllowInput() As Boolean                           '当某种条件成立时禁止文本框激活使单据处于录入状态
  1321.    
  1322.     '如果单据操作状态为浏览状态则不能显示录入载体(通用)
  1323.     If Trim(Lab_OperStatus.Caption) = "1" Then
  1324.         Exit Function
  1325.     End If
  1326.    
  1327.     '[>>
  1328.     
  1329.     '此处可以填写禁止文本框激活使单据处于录入状态的理由
  1330.    
  1331.     '<<]
  1332.    
  1333.     Fun_AllowInput = True
  1334. End Function
  1335. '*****************************以下为文本框录入处理程序(固定不变部分)*******************************'
  1336. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  1337.     '以下为依据实际情况自定义部分[
  1338.     
  1339.     '在此填写文本框录入事后处理程序
  1340.     
  1341.     ']以上为依据实际情况自定义部分
  1342. End Sub
  1343. Private Sub LrText_Change(Index As Integer)
  1344.     Dim rs As New ADODB.Recordset
  1345.     Dim str_sql As String
  1346.     
  1347.     '屏蔽程序改变控制
  1348.     If TextChangeLock Then
  1349.         Exit Sub
  1350.     End If
  1351.    
  1352.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  1353.         
  1354.     '限制字段录入长度
  1355.           
  1356.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  1357.         Select Case Textint(Index, 1)
  1358.             Case 8, 11       '金额型
  1359.                 Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  1360.             Case 9, 12       '数量型
  1361.                 Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  1362.             Case 10          '单价型
  1363.                 Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  1364.             Case Else        '其他小数类型控制
  1365.                 If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  1366.                     Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  1367.                 End If
  1368.         End Select
  1369.     If Index = 2 Then
  1370.         str_sql = "select ConsignCode,gy_customer.cuscode,cusname,contacttype,contactperson,address from Xs_ConsignBillMain,gy_customer where Xs_ConsignBillMain.cuscode=gy_customer.cuscode and ConsignCode='" & Trim(LrText(2)) & "'"
  1371.         Set rs = Cw_DataEnvi.DataConnect.Execute(str_sql)
  1372.         If Not rs.EOF Then
  1373.             LrText(3).Tag = Trim(rs("cuscode"))
  1374.             LrText(3) = Trim(rs("cusname"))
  1375.             LrText(4) = Trim(rs("address"))
  1376.             LrText(5) = Trim(rs("contacttype"))
  1377.             LrText(6) = Trim(rs("contactperson"))
  1378.         Else
  1379.             LrText(3) = ""
  1380.             LrText(3).Tag = ""
  1381.             LrText(4) = ""
  1382.             LrText(5) = ""
  1383.             LrText(6) = ""
  1384.         End If
  1385.     End If
  1386.     If Index = 3 Then
  1387.         str_sql = "select cuscode,cusname,contacttype,contactperson,address from gy_customer where cuscode='" & Trim(LrText(3).Tag) & "'"
  1388.         Set rs = Cw_DataEnvi.DataConnect.Execute(str_sql)
  1389.         If Not rs.EOF Then
  1390.             LrText(4) = Trim(rs("address"))
  1391.             LrText(5) = Trim(rs("contacttype"))
  1392.             LrText(6) = Trim(rs("contactperson"))
  1393.         Else
  1394.             LrText(4) = ""
  1395.             LrText(5) = ""
  1396.             LrText(6) = ""
  1397.         End If
  1398.     End If
  1399.     If Index = 7 Then
  1400.         str_sql = "select mnumber,mname,model from gy_material where mnumber='" & Trim(LrText(7)) & "'"
  1401.         Set rs = Cw_DataEnvi.DataConnect.Execute(str_sql)
  1402.         If Not rs.EOF Then
  1403.             LrText(8) = rs("mname")
  1404.             LrText(9) = rs("model")
  1405.         Else
  1406.             LrText(8) = ""
  1407.             LrText(9) = ""
  1408.         End If
  1409.     End If
  1410.     TextChangeLock = False '解锁
  1411.      
  1412. End Sub
  1413. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  1414.     Call TextShow(Index)
  1415. End Sub
  1416. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  1417.     
  1418.     Select Case KeyCode
  1419.         Case vbKeyF2
  1420.             Call Text_Help(Index)
  1421.     End Select
  1422. End Sub
  1423. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  1424.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  1425. End Sub
  1426. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  1427.     
  1428.     If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  1429.         Call TextYxxpd(Index)
  1430.     End If
  1431. End Sub
  1432. Private Sub Ydcommand1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) '点击按钮
  1433.     Call Text_Help(Ydcommand1.Tag)
  1434. End Sub
  1435. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  1436.     
  1437.     If Not Ydcommand1.Visible Then
  1438.         Exit Sub
  1439.     End If
  1440.     TextValiLock = True
  1441.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  1442.     If Len(Xtfhcs) <> 0 Then
  1443.         If Textint(Index, 3) = 1 Then
  1444.             LrText(Index).Text = Xtfhcsfz
  1445.             LrText(Index).Tag = Xtfhcs
  1446.         Else
  1447.             LrText(Index).Text = Xtfhcs
  1448.             LrText(Index).Tag = Xtfhcsfz
  1449.         End If
  1450.     End If
  1451.     TextValiLock = False
  1452.     LrText(Index).SetFocus
  1453. End Sub
  1454. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  1455.     '如果文本框有帮助,则显示帮助按钮
  1456.     If Textboolean(Index, 1) Then
  1457.         Ydcommand1.Visible = True
  1458.         Ydcommand1.Move LrText(Index).Left + LrText(Index).Width, LrText(Index).Top
  1459.         Ydcommand1.Tag = Index
  1460.     Else
  1461.         Ydcommand1.Tag = ""
  1462.         Ydcommand1.Visible = False
  1463.     End If
  1464.     
  1465.     '[>>
  1466.     '可在此处定义其他处理动作
  1467.     '<<]
  1468. End Sub
  1469. Private Sub Wbkcsh()                          '录入文本框初始化
  1470.     Dim Int_TabIndex As Integer         'Tab焦点计数器
  1471.   
  1472.     '单据录入中文本框焦点由0开始
  1473.     LrText(0).TabIndex = 0
  1474.   
  1475.     '最大录入文本框索引值
  1476.     Max_Text_Index = Textvar(1)
  1477.   
  1478.     ReDim TextValiJudgeLock(Max_Text_Index)
  1479.     For jsqte = 0 To Max_Text_Index
  1480.         
  1481.         '判断此文本框录入索引号是否存在,如存在则对其进行初始化
  1482.         If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
  1483.         
  1484.             '自动装入录入文本框和其解释标签
  1485.             If jsqte <> 0 Then
  1486.                 Load LrText(jsqte)
  1487.                 Load TsLabel(jsqte)
  1488.            
  1489.                 '判断录入文本框是否显示
  1490.                 If Textboolean(jsqte, 4) Then
  1491.                     LrText(jsqte).Visible = True
  1492.                     TsLabel(jsqte).Visible = True
  1493.                 Else
  1494.                     LrText(jsqte).Visible = False
  1495.                     TsLabel(jsqte).Visible = False
  1496.                 End If
  1497.             
  1498.                 '判断文本框是否可编辑
  1499.                 If Textboolean(jsqte, 5) Then
  1500.                     LrText(jsqte).Enabled = True
  1501.                 Else
  1502.                     LrText(jsqte).Enabled = False
  1503.                 End If
  1504.             End If
  1505.            
  1506.            '初始化其内容
  1507.             TextChangeLock = True
  1508.             LrText(jsqte).Text = ""
  1509.             LrText(jsqte).Tag = ""
  1510.             LrText(jsqte).MaxLength = Textint(jsqte, 5)
  1511.             TextChangeLock = False
  1512.         
  1513.             '设置文本框位置及大小,并设置相应标签内容及其位置
  1514.             LrText(jsqte).Move Textint(jsqte, 13), Textint(jsqte, 12), Textint(jsqte, 11), Textint(jsqte, 10)
  1515.             TsLabel(jsqte).Caption = Textstr(jsqte, 7) & ":"
  1516.             TsLabel(jsqte).Move Textint(jsqte, 13) - TsLabel(jsqte).Width - 20, Textint(jsqte, 12) + (Textint(jsqte, 10) - TsLabel(jsqte).Height) / 2 - 30
  1517.             
  1518.         End If
  1519.      
  1520.         '将文本框有效性判断进行加锁,在文本框内容发生变化时将锁打开
  1521.         TextValiJudgeLock(jsqte) = True
  1522.       
  1523.     Next jsqte
  1524.     
  1525.     '设置文本框焦点转移顺序(前提文本焦点从0至Max_Text_Index)
  1526.     For Int_TabIndex = 0 To Max_Text_Index
  1527.         For jsqte = 0 To Max_Text_Index
  1528.             If Textint(jsqte, 14) = Int_TabIndex Then
  1529.                LrText(jsqte).TabIndex = Int_TabIndex
  1530.             End If
  1531.         Next jsqte
  1532.     Next Int_TabIndex
  1533.   
  1534. End Sub
  1535. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  1536.   
  1537.     Dim Sqlstr As String
  1538.     Dim Findrec As New ADODB.Recordset
  1539.   
  1540.     '按帮助不进行有效性判断
  1541.   
  1542.     If TextValiLock Then
  1543.         TextValiLock = False
  1544.         TextYxxpd = True
  1545.         Exit Function
  1546.     End If
  1547.   
  1548.     '文本框内容未曾改变不进行有效性判断
  1549.   
  1550.     If TextValiJudgeLock(Index) Then
  1551.         Ydcommand1.Visible = False
  1552.         TextYxxpd = True
  1553.         Exit Function
  1554.     End If
  1555.   
  1556.     '文本框内容为空认为有效,并清空其Tag值
  1557.   
  1558.     If Trim(LrText(Index)) = "" Then
  1559.         LrText(Index).Tag = ""
  1560.         Call Wbklrwbcl(Index)
  1561.         Ydcommand1.Visible = False
  1562.         TextValiJudgeLock(Index) = True
  1563.         TextYxxpd = True
  1564.         Exit Function
  1565.     End If
  1566.    
  1567.     Select Case Textint(Index, 4)
  1568.         Case 1      '编码型
  1569.             Sqlstr = Trim(Textstr(Index, 5))
  1570.             Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  1571.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1572.             If Findrec.EOF Then
  1573.                 Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  1574.                 LrText(Index).SetFocus
  1575.                 Exit Function
  1576.             Else
  1577.                 Select Case Textint(Index, 3)
  1578.                     Case 0
  1579.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1580.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1581.                         End If
  1582.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1583.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1584.                         End If
  1585.                     Case 1
  1586.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1587.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1588.                         End If
  1589.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1590.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1591.                         End If
  1592.                 End Select
  1593.                 If Index = 3 Then
  1594.                     Dim myrs As New ADODB.Recordset
  1595.                     myrs.Open "select mname,model,Saleunit from gy_material where stopflag=0  and (mnumber='" & Trim(LrText(Index).Text) & "' or mname='" & Trim(LrText(Index).Text) & "') order by mnumber", Cw_DataEnvi.DataConnect
  1596.                     If Not myrs.EOF Then
  1597.                         LrText(4).Text = myrs.Fields("model")
  1598.                     End If
  1599.                 End If
  1600.             End If
  1601.         Case 2      '日期型
  1602.             If IsDate(LrText(Index).Text) Then
  1603.                 LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  1604.                 If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  1605.                     LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  1606.                 End If
  1607.             Else
  1608.                 Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  1609.                 Call Xtxxts(Tsxx, 0, 1)
  1610.                 LrText(Index).SetFocus
  1611.                 Exit Function
  1612.             End If
  1613.         Case 3      '其他类型
  1614.     End Select
  1615.     
  1616.     '隐藏帮助按钮
  1617.     Ydcommand1.Visible = False
  1618.    
  1619.     '如果有效则加锁,用户不改变内容则不再进行有效性判断
  1620.     TextValiJudgeLock(Index) = True
  1621.     '调用文本框事后处理程序
  1622.     Call Wbklrwbcl(Index)
  1623.    
  1624.     '有效性判断通过则返回True
  1625.     TextYxxpd = True
  1626.     
  1627. End Function