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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Begin VB.Form Tr_RoadLading 
  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_RoadLading"
  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. '*    1.每次调入外部功能窗体,均要加锁ChangeLock=True,窗体关闭后解锁ChangeLock=false
  461. '*                                    TextValiLock=True             TextValiLock=false
  462. '*
  463. '*    2.Lab_OperStatus 用此标签来标识单据录入状态(默认值为1) "1"-浏览 "2"-新增 "3"-修改
  464. '*
  465. '*    3.Lab_Djclzt 用此标签来标识单据处理状态(默认值为1) "1"-填制单据  "2"-查询单据列表  "3"-明细帐联查单据
  466. '*
  467. '*    4.原则:只要单据能够存盘(无论修改或新增)则其必须接受完整性及有效性规则检查
  468. '***********************************************************************************************************
  469.  
  470. '[以下为根据实际情况设置变量
  471. Dim Bln_BillChange As Boolean                   '标识单据是否发生改动
  472. Dim Rec_Query As New ADODB.Recordset            '单据组查询结果动态集(保存当前单据组ID)
  473. Public Str_QueryCondi As String                 '单据组查询条件(接收单据列表传递查询条件)
  474. ']
  475. '以下为固定使用变量(单据)
  476. Dim BillCode As String                          '单据设计编码(索引号)
  477. Dim Var_Bill() As Variant                       '用来返回单据设计信息
  478. Dim ReportTitle As String                       '报表主标题
  479. Dim Tsxx As String                              '系统提示信息
  480. Dim Dyymctbl As New DY_Dyymsz                   '打印页面窗体变量
  481. '以下为固定使用变量(文本框)
  482. Dim Textvar() As Variant                        '存储变体型文本框信息
  483. Dim Textboolean() As Boolean                    '存储布尔型文本框信息
  484. Dim Textint() As Integer                        '存储整型文本框信息
  485. Dim Textstr() As String                         '存储字符型文本框信息
  486. Dim Max_Text_Index As Integer                   '最大录入文本框索引值
  487. Dim TextGroupCode As String                     '文本框录入分组编码
  488. Dim TextValiLock As Boolean                     '文本框失去焦点是否进行有效性控制判断
  489. Dim TextValiJudgeLock() As Boolean              '文本框录入有效性判断控制锁
  490. Dim TextChangeLock As Boolean                   '文本框内容变换控制锁
  491.     
  492. Private Sub Form_KeyPress(KeyAscii As Integer)      '控 制 焦 点 转 移
  493.     
  494.     Dim jdzygs As Integer
  495.     jdzygs = 12                                       '在单据录入中,此焦点转移控制值一定小于等于文本框个数,否则网格回车键将不支持.
  496.     Select Case KeyAscii
  497.         Case vbKeyReturn
  498.             If Kjjdzy(jdzygs) Then
  499.                 KeyAscii = 0
  500.             End If
  501.         Case 39           '屏蔽字符"'"
  502.             KeyAscii = 0
  503.     End Select
  504. End Sub
  505. Private Sub Form_Load()                                                        '窗 体 装 入
  506.     '初始化各种锁值(Fixed)
  507.     Changelock = False             '网格行列改变控制锁
  508.     Gdtlock = False                '滚动条滚动控制
  509.     Yxxpdlock = True               '字段有效性判断锁
  510.     Hyxxpdlock = True              '行有效性判断锁
  511.     Wbkbhlock = False              '文本框内容改变锁
  512.     '调入单据信息(需要修改BillCode)
  513.     BillCode = "1605"
  514.     Call Sub_ReadBillInfo(BillCode, Me, Var_Bill())
  515.     Lab_Title = Var_Bill(2)
  516.     Lab_Title.Move (Me.Width - Lab_Title.Width) / 2, 800
  517.     
  518.     '报表编码
  519.     XtReportCode = Var_Bill(5)
  520.     Load Dyymctbl
  521.   
  522.     '以下为文本框处理程序(Fixed)
  523.     TextGroupCode = Var_Bill(3)
  524.  
  525.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  526.     Call Wbkcsh
  527.     '单据变动置为False(Fixed)
  528.     Bln_BillChange = False
  529.     
  530.     '调入数据初始化模块(Fixed)
  531.     Lab_Djclzt.Caption = Xtcdcs
  532.     Call Sjcsh(Trim(Lab_Djclzt.Caption))
  533.    
  534. End Sub
  535. Private Sub Form_Unload(Cancel As Integer)           '窗体卸载
  536.     '卸载打印页面窗体
  537.     Unload Dyymctbl
  538.  
  539.     '判断单据是否发生变化,并返回相应标识
  540.     If Bln_BillChange Then
  541.         Xtfhcs = "1"
  542.     Else
  543.         Xtfhcs = "0"
  544.     End If
  545.    
  546. End Sub
  547. Private Sub Sjcsh(Str_Pzclzt As String)              '数据初始化模块(根据实际情况)
  548.     
  549.     Dim Sqlstr As String       '查询单据列表条件
  550.     '[>>根据实际情况初始化
  551.     Select Case Str_Pzclzt
  552.         Case "1"   '填制单据
  553.             '调入用户查询结果动态集(默认显示用户当前操作业务日期的单据)
  554.             Sqlstr = "SELECT Roadladingid From Tr_roadlading ORDER BY roadladingId"
  555.             Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  556.       
  557.             '新增单据
  558.             Call Sub_AddBill
  559.         Case "2"   '查询单据(单据列表)
  560.         
  561.             '填充查询单据标识
  562.             Lab_BillId.Caption = XT_BillID
  563.             Str_QueryCondi = Xtcdcsfz
  564.                 
  565.             Call Sub_ShowBill
  566.             Call Sub_OperStatus("10")
  567.       
  568.             '调入用户查询结果动态集
  569.             Sqlstr = "SELECT DISTINCT roadladingId From Tr_V_roadlading a " & Str_QueryCondi & " ORDER BY roadladingId"
  570.             Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  571.             Rec_Query.find "roadladingId=" & Val(Lab_BillId.Caption)
  572.         Case "3"   '明细帐联查单据
  573.             '设置工具条显示
  574.             With Tlb_Action
  575.                 .Buttons("xz").Enabled = False             '新增
  576.                 .Buttons("xg").Enabled = False             '修改
  577.                 .Buttons("sc").Enabled = False             '删除
  578.                 .Buttons("fgh0").Enabled = False           '分隔行
  579.                 .Buttons("fgh1").Enabled = False           '分隔行
  580.                 .Buttons("bc").Enabled = False             '保存
  581.                 .Buttons("fq").Enabled = False             '放弃
  582.                 .Buttons("shsh").Enabled = False           '审核
  583.                 .Buttons("shqs").Enabled = False           '弃审
  584.                 .Buttons("fgh2").Enabled = False           '分隔行
  585.                 .Buttons("first").Enabled = False          '首张
  586.                 .Buttons("prev").Enabled = False           '上张
  587.                 .Buttons("next").Enabled = False           '下张
  588.                 .Buttons("last").Enabled = False           '末张
  589.                 .Buttons("fgh5").Enabled = False           '分割行
  590.             End With
  591.       
  592.             Call Sub_ShowBill
  593.       
  594.             '设置操作状态为浏览
  595.             Lab_OperStatus.Caption = "1"
  596.       
  597.             '录入文本框
  598.             For jsqte = Max_Text_Index To 0 Step -1
  599.                 LrText(jsqte).Enabled = False
  600.             Next jsqte
  601.     End Select
  602.   
  603.     '<<]
  604.   
  605. End Sub
  606. Private Sub Sub_ShowBill()                                          '根据当前单据ID显示整张单据内容
  607.    
  608.     '过程默认参数为当前窗体中单据ID:Lab_BillID
  609.     Dim Sqlstr As String                           '临时使用字符串
  610.     Dim RecTemp As New ADODB.Recordset             '临时使用动态集
  611.     Dim jsqte As Long                              '临时计数器
  612.     '禁止网格刷新动作,为加快网格显示速度(Fixed)
  613.     '本张单据查询字符串
  614.     Sqlstr = "select * from tr_v_RoadLading Where RoadladingId='" & Val(Lab_BillId.Caption) & "' Order By roadladingId"
  615.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  616.       
  617.     With RecTemp
  618.             '[>>显示单据头
  619.         TextChangeLock = True     '文本框加锁
  620.         LrText(0).Text = Trim(.Fields("senddate"))                                                      '发车日期
  621.         LrText(1).Text = Trim(.Fields("roadladingnum"))                                                 '提货单号
  622.         LrText(2).Tag = Trim(.Fields("sourcecode"))                                                     '货源单位编码
  623.         LrText(2).Text = Trim(.Fields("sourcename") & "")                                               '货源单位名称
  624.         LrText(3).Tag = Trim(.Fields("mnumber"))
  625.         LrText(3).Text = Trim(.Fields("mname"))
  626.         LrText(4).Text = Trim(.Fields("model") & "")
  627.         LrText(5).Text = Val(.Fields("quantity"))
  628.         LrText(6).Text = Trim(.Fields("returndate") & "")
  629.         LrText(7).Text = Trim(.Fields("TranCompanyName"))
  630.         LrText(7).Tag = Trim(.Fields("ReceiveCode"))
  631.         LrText(8).Text = Trim(.Fields("Trucksign") & "")
  632.         LrText(9).Text = Trim(.Fields("driver") & "")
  633.         LrText(10).Text = Trim(.Fields("Remark") & "")                                                   '备注
  634.         LrText(11).Text = Trim(.Fields("Maker") & "")                                                    '制单人
  635.         LrText(12).Text = Trim(.Fields("Checker") & "")                                                  '审核人
  636.         TextChangeLock = False    '文本框解锁
  637.     End With
  638.        
  639.     '设置审核弃审按钮状态
  640.     Call Sub_CheckStatus
  641.        
  642. End Sub
  643. Private Sub Tlb_Action_ButtonClick(ByVal Button As MSComctlLib.Button)             '用户点击工具条
  644.      
  645.     '屏蔽文本框,下拉组合框有效性判断
  646.     Valilock = True
  647.      
  648.     '屏蔽网格失去焦点产生的有效性判断
  649.     Changelock = True
  650.        
  651.     Select Case Button.Key
  652.         Case "yl"                                            '预 览
  653.             BillTextPrint Lab_Title, LrText, TextGroupCode, XtReportCode, False
  654.         Case "dy"                                            '打 印
  655.             Dim yhAnswer As Integer      '打印提示
  656.             
  657.             '用户确认是否打印单据
  658.             Tsxx = "请确认是否打印当前单据?"
  659.             yhAnswer = Xtxxts(Tsxx, 2, 2)
  660.             If yhAnswer = 2 Then
  661.                 Exit Sub
  662.             End If
  663.             BillTextPrint Lab_Title, LrText, TextGroupCode, XtReportCode, True
  664.         Case "xz"                                            '新 增
  665.             Call Sub_AddBill
  666.         Case "xg"                                            '修 改
  667.             Call Sub_EditBill
  668.         Case "sc"                                            '删 除
  669.             Call Sub_DeleteBill
  670.         Case "bc"                                            '保 存
  671.             Call Sub_SaveBill
  672.         Case "fq"                                            '放 弃
  673.             Call Sub_AbandonBill
  674.         Case "shsh"                                          '审 核
  675.             Call Sub_CheckBill
  676.         Case "shqs"                                          '弃 审
  677.             Call Sub_AbandonCheck
  678.         Case "first"                                         '首 张
  679.             Call Sub_First
  680.         Case "prev"                                          '上 张
  681.             Call Sub_Prev
  682.         Case "next"                                          '下 张
  683.             Call Sub_Next
  684.         Case "last"                                          '末 张
  685.             Call Sub_Last
  686.         Case "bz"                                            '帮 助
  687.             Call F1bz
  688.         Case "fh"                                            '退 出
  689.             Unload Me
  690.     End Select
  691.        
  692.     '解 锁
  693.     Valilock = False
  694.     Changelock = False
  695.     TextChangeLock = False
  696.         
  697. End Sub
  698. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)     '支持热键操作
  699.     
  700.     Select Case KeyCode
  701.         Case vbKeyF5          '增加单据
  702.             If Tlb_Action.Buttons("xz").Enabled And Tlb_Action.Buttons("xz").Visible Then
  703.                 Call Sub_AddBill
  704.             End If
  705.         Case vbKeyF3          '修改单据
  706.             If Tlb_Action.Buttons("xg").Enabled And Tlb_Action.Buttons("xg").Visible Then
  707.                 Call Sub_EditBill
  708.             End If
  709.         Case vbKeyF6          '保存单据
  710.             If Tlb_Action.Buttons("bc").Enabled And Tlb_Action.Buttons("bc").Visible Then
  711.                 Call Sub_SaveBill
  712.             End If
  713.     End Select
  714. End Sub
  715. Private Sub Sub_OperStatus(Str_Status As String)                 '工具条依据不同状态所进行的变化
  716.   
  717.     With Tlb_Action
  718.         Select Case Str_Status
  719.             Case "10"   '浏览((列表)调入单据处理时的进入状态、(列表)新增状态时放弃录入)
  720.                 '工具条
  721.                 .Buttons("dy").Enabled = True       '打印
  722.                 .Buttons("yl").Enabled = True       '预览
  723.                 .Buttons("xz").Enabled = True       '新增
  724.                 .Buttons("xg").Enabled = True       '修改
  725.                 .Buttons("sc").Enabled = True       '删除
  726.                 .Buttons("bc").Enabled = False      '保存
  727.                 .Buttons("fq").Enabled = False      '放弃
  728.                 .Buttons("first").Enabled = True    '首张
  729.                 .Buttons("prev").Enabled = True     '上张
  730.                 .Buttons("next").Enabled = True     '下张
  731.                 .Buttons("last").Enabled = True     '末张
  732.                 .Buttons("bz").Enabled = True       '帮助
  733.                 .Buttons("fh").Enabled = True       '退出
  734.                 
  735.                 '设置审核弃审按钮状态
  736.                 Call Sub_CheckStatus
  737.                 
  738.                 '设置文本框录入状态
  739.                 Call Sub_LrtextStatus(False)
  740.             Case "20"   '新增单据((录入)新增一张单据 、(列表)新增一张单据)
  741.                  '工具条
  742.                  .Buttons("dy").Enabled = False      '打印
  743.                  .Buttons("yl").Enabled = False      '预览
  744.                  .Buttons("xz").Enabled = False      '新增
  745.                  .Buttons("xg").Enabled = False      '修改
  746.                  .Buttons("sc").Enabled = False      '删除
  747.                  .Buttons("bc").Enabled = True       '保存
  748.                  .Buttons("fq").Enabled = True       '放弃
  749.                  .Buttons("shsh").Enabled = False    '审核
  750.                  .Buttons("shqs").Enabled = False    '弃审
  751.                  .Buttons("first").Enabled = False   '首张
  752.                  .Buttons("prev").Enabled = False    '上张
  753.                  .Buttons("next").Enabled = False    '下张
  754.                  .Buttons("last").Enabled = False    '末张
  755.                  .Buttons("bz").Enabled = True       '帮助
  756.                  .Buttons("fh").Enabled = True       '退出
  757.                  
  758.                  '设置文本框录入状态
  759.                  Call Sub_LrtextStatus(True)
  760.             Case "30"   '修改((录入)调入修改功能、(列表)调入修改功能)
  761.                 '工具条
  762.                 .Buttons("dy").Enabled = False      '打印
  763.                 .Buttons("yl").Enabled = False      '预览
  764.                 .Buttons("xz").Enabled = False      '新增
  765.                 .Buttons("xg").Enabled = False      '修改
  766.                 .Buttons("sc").Enabled = False      '删除
  767.                 .Buttons("bc").Enabled = True       '保存
  768.                 .Buttons("fq").Enabled = True       '放弃
  769.                 .Buttons("shsh").Enabled = False    '审核
  770.                 .Buttons("shqs").Enabled = False    '弃审
  771.                 .Buttons("first").Enabled = False   '首张
  772.                 .Buttons("prev").Enabled = False    '上张
  773.                 .Buttons("next").Enabled = False    '下张
  774.                 .Buttons("last").Enabled = False    '末张
  775.                 .Buttons("bz").Enabled = True       '帮助
  776.                 .Buttons("fh").Enabled = True       '退出
  777.                 
  778.                 '设置文本框录入状态
  779.                 Call Sub_LrtextStatus(True)
  780.         End Select
  781.     End With
  782.     
  783. End Sub
  784. Private Sub Sub_LrtextStatus(TextEnabled As Boolean)                            '设置录入文本框状态
  785.     '录入文本框状态设置
  786.     If TextEnabled Then
  787.         For jsqte = Max_Text_Index To 0 Step -1
  788.             '判断文本框是否可编辑
  789.             If Textboolean(jsqte, 5) Then
  790.                 LrText(jsqte).Enabled = True
  791.             Else
  792.                 LrText(jsqte).Enabled = False
  793.             End If
  794.         Next jsqte
  795.     Else
  796.         For jsqte = Max_Text_Index To 0 Step -1
  797.             LrText(jsqte).Enabled = False
  798.         Next jsqte
  799.     End If
  800. End Sub
  801. Private Sub Sub_CheckStatus()                                       '设置审核弃审按钮状态(亦可设置其他动作按钮状态)
  802.     
  803.     '根据当前单据状态来确定审核弃审按钮状态
  804.     If Trim(LrText(11).Text) <> "" And Trim(LrText(12).Text) = "" Then
  805.         Tlb_Action.Buttons("shsh").Enabled = True      '审核
  806.     Else
  807.         Tlb_Action.Buttons("shsh").Enabled = False   '审核
  808.     End If
  809.     If Trim(LrText(11).Text) <> "" And Trim(LrText(12).Text) <> "" Then
  810.         Tlb_Action.Buttons("shqs").Enabled = True      '弃审
  811.     Else
  812.         Tlb_Action.Buttons("shqs").Enabled = False   '弃审
  813.     End If
  814. End Sub
  815. Private Sub Sub_AddBill()                                                '新增一张单据
  816.     
  817.     Dim RecTemp As New ADODB.Recordset            '临时使用动态集
  818.     Dim jsqte As Long                             '临时计数器
  819.     Dim Sqlstr As String
  820.    
  821.     '设置操作状态为新增(Fixed)
  822.     Lab_OperStatus.Caption = "2"
  823.        
  824.     '设置工具条状态(Fixed)
  825.     Call Sub_OperStatus("20")
  826.    
  827.     '清空VouchID(Fixed)
  828.     Lab_BillId.Caption = ""
  829.       
  830.     '录入文本框清除内容
  831.     For jsqte = Max_Text_Index To 0 Step -1
  832.         LrText(jsqte).Tag = ""
  833.         LrText(jsqte).Text = ""
  834.     Next jsqte
  835.     '[>>显示制单人,清空审核人,此处还可以设置录入默认值如自动生成单据号、默认单据录入日期注意加锁
  836.     TextChangeLock = True
  837.     LrText(0).Text = Xtrq
  838.     '读取最新的单据编码
  839.     LrText(1).Text = CreatBillCode(BillCode, False)
  840.     LrText(11).Text = Xtczy
  841.     LrText(12).Text = ""
  842.     TextChangeLock = False
  843.    
  844.     '<<]
  845.     '让第一个录入项得到焦点(Fixed)
  846.     On Error Resume Next
  847.     LrText(2).SetFocus
  848.    
  849. End Sub
  850. Private Sub Sub_EditBill()                                                '修改一张单据
  851.    
  852.     Dim RecTemp As New ADODB.Recordset     '临时使用动态集
  853.    
  854.     '非有效单据不予进行修改动作
  855.     If Val(Lab_BillId.Caption) = 0 Then
  856.         Exit Sub
  857.     End If
  858.    
  859.     '判断当前单据是否允许修改
  860.     If Not Fun_AllowEdit Then
  861.         Exit Sub
  862.     End If
  863.    
  864.     '设置操作状态为修改
  865.     Lab_OperStatus.Caption = "3"
  866.    
  867.     '设置工具条状态
  868.     Call Sub_OperStatus("30")
  869.         
  870.     '显示制单人
  871.     LrText(11).Text = Xtczy
  872.    
  873. End Sub
  874. Private Sub Sub_DeleteBill()                                               '删除当前单据
  875.     Dim YAnswer As Integer               '确认是否删除当前单据
  876.     Dim jsqte As Long                    '临时使用计数器
  877.    
  878.     '非有效单据不予进行删除动作
  879.     If Val(Lab_BillId.Caption) = 0 Then
  880.         Exit Sub
  881.     End If
  882.    
  883.     Tsxx = "请确认是否删除当前单据?"
  884.     YAnswer = Xtxxts(Tsxx, 2, 2)
  885.    
  886.     If YAnswer = 1 Then
  887.    
  888.         '判断当前单据是否允许删除
  889.         If Not Fun_AllowEdit Then
  890.             Exit Sub
  891.         End If
  892.       
  893.         '进行事务处理
  894.         On Error GoTo Swcwcl
  895.         Cw_DataEnvi.DataConnect.BeginTrans
  896.    
  897.         '1.删除单据所有内容
  898.         Cw_DataEnvi.DataConnect.Execute ("Delete Tr_roadlading Where roadladingId=" & Val(Lab_BillId.Caption))
  899.         Cw_DataEnvi.DataConnect.CommitTrans
  900.       
  901.         '标识单据发生改动
  902.         Bln_BillChange = True
  903.   
  904.         '单据ID置0
  905.         Lab_BillId.Caption = 0
  906.     Else
  907.         Exit Sub
  908.     End If
  909.     
  910.    '删除单据后重置状态
  911.         
  912.     '1.显示下一张单据
  913.     Call Sub_Next
  914.         
  915.     '2.如果无下一张单据则搜索上一张单据
  916.     If Val(Lab_BillId.Caption) = 0 Then
  917.         Call Sub_Prev
  918.     End If
  919.         
  920.     '3.如无单据则置单据为空状态
  921.     If Val(Lab_BillId.Caption) = 0 Then
  922.         '清除录入文本框
  923.         For jsqte = Max_Text_Index To 0 Step -1
  924.             LrText(jsqte).Tag = ""
  925.             LrText(jsqte).Text = ""
  926.         Next jsqte
  927.         '设置操作状态为浏览
  928.         Lab_OperStatus = "1"
  929.         Call Sub_OperStatus("10")
  930.     End If
  931.     Rec_Query.Requery
  932.     Rec_Query.find "roadladingId=" & Val(Lab_BillId.Caption)
  933.     Exit Sub
  934.    
  935. Swcwcl:          '单据删除时出现错误
  936.     Cw_DataEnvi.DataConnect.RollbackTrans
  937.     Tsxx = "单据删除过程中出现未知错误,程序自动恢复保存前状态!"
  938.     Call Xtxxts(Tsxx, 0, 1)
  939.     Exit Sub
  940. End Sub
  941. Private Sub Sub_AbandonBill()                                              '放弃对当前单据的操作
  942.  
  943.     Dim jsqte As Long                    '临时使用计数器
  944.   
  945.     '先关闭录入载体(Fixed)
  946.     Changelock = True
  947.     Valilock = True
  948.     Changelock = False
  949.     Valilock = False
  950.     '如果单据有效则重新显示当前单据,置单据为空状态
  951.     If Not Rec_Query.EOF Then
  952.         Lab_BillId.Caption = Rec_Query.Fields("roadladingId")
  953.         Call Sub_ShowBill
  954.     Else
  955.         '单据ID置为0
  956.         Lab_BillId.Caption = 0
  957.      
  958.         '清除录入文本框
  959.         For jsqte = Max_Text_Index To 0 Step -1
  960.             LrText(jsqte).Tag = ""
  961.             LrText(jsqte).Text = ""
  962.         Next jsqte
  963.     End If
  964.     
  965.     '设置操作状态为浏览
  966.     Lab_OperStatus = "1"
  967.     Call Sub_OperStatus("10")
  968. End Sub
  969. Private Function Sub_SaveBill() As Boolean                                   '保 存 单 据
  970.   
  971.     Dim RecTemp As New ADODB.Recordset                    '临时使用动态集
  972.     Dim Rec_VouchMain As New ADODB.Recordset              '单据主表动态集
  973.     Dim Rec_VouchSub As New ADODB.Recordset               '单据子表动态集
  974.     Dim Rowjsq As Long                                    '网格行计数器
  975.     Dim Coljsq As Long                                    '网格列计数器
  976.     Dim jsqte As Integer                                  '临时计数器
  977.     Dim Lng_RowCount As Long                              '有效数据行计数器
  978.     Dim Lrywlz As Long                                    '录入有误列值
  979.     
  980.     Sub_SaveBill = False
  981.   
  982.     '一.============先对单据内容进行有效性判断==============='
  983.     '对需要进行事后判断的文本框录入内容进行有效性判断 (Fixed)
  984.     For jsqte = 0 To Max_Text_Index
  985.         If Textint(jsqte, 9) = 0 Or Textint(jsqte, 9) = 2 Then
  986.             If Not TextYxxpd(jsqte) Then
  987.                 Call TextShow(jsqte)
  988.                 Exit Function
  989.             End If
  990.         End If
  991.     Next jsqte
  992.     '先进行字段不能为空或不能为零有效性判断(Fixed)
  993.     For jsqte = 0 To Max_Text_Index
  994.         If Textint(jsqte, 8) = 1 Then     '字段不能为空
  995.             If Len(Trim(LrText(jsqte).Text)) = 0 Then
  996.                 Tsxx = Textstr(jsqte, 7) & "不能为空!"
  997.                 Call Xtxxts(Tsxx, 0, 1)
  998.                 LrText(jsqte).SetFocus
  999.                 Exit Function
  1000.             End If
  1001.         Else
  1002.             If Textint(jsqte, 8) = 2 Then   '字段不能为零
  1003.                 If Val(Trim(LrText(jsqte).Text)) = 0 Then
  1004.                     Tsxx = Textstr(jsqte, 7) & "不能为零!"
  1005.                     Call Xtxxts(Tsxx, 0, 1)
  1006.                     LrText(jsqte).SetFocus
  1007.                     Exit Function
  1008.                 End If
  1009.             End If
  1010.         End If
  1011.     Next jsqte
  1012.     
  1013.     If Trim(LrText(6).Text) <> "" And Trim(LrText(0).Text) <> "" Then
  1014.         If CDate(LrText(6).Text) < CDate(LrText(0).Text) Then
  1015.             Tsxx = Textstr(6, 7) & "不能小于" & Textstr(0, 7)
  1016.             Call Xtxxts(Tsxx, 0, 1)
  1017.             LrText(6).SetFocus
  1018.             Exit Function
  1019.         End If
  1020.     End If
  1021.     
  1022.     '二.=============如果以上有效性检查均顺利通过,则执行存盘动作============'
  1023.    
  1024.     '对存盘进行事务处理(Fixed)
  1025.     On Error GoTo Swcwcl
  1026.     Cw_DataEnvi.DataConnect.BeginTrans
  1027.     
  1028.     '判断单据状态以进行不同处理
  1029.     
  1030.     '1.先对单据主表进行处理
  1031.     If Trim(Lab_OperStatus) = "2" Then
  1032.     
  1033.         '新增单据
  1034.         
  1035.         '1.对于某些单据号自动生成的单据则可在此处自动生成
  1036.          LrText(1).Text = CreatBillCode(BillCode, True)
  1037.     
  1038.         '2.开始存盘
  1039.          
  1040.         '打开单据主表动态集
  1041.         If Rec_VouchMain.State = 1 Then Rec_VouchMain.Close
  1042.         Rec_VouchMain.Open "Select * From Tr_roadlading Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1043.              
  1044.         With Rec_VouchMain
  1045.             .AddNew
  1046.             .Fields("roadladingId") = CreatBillID(BillCode)
  1047.             .Fields("sendDate") = CDate(LrText(0).Text)
  1048.             .Fields("roadladingnum") = Trim(LrText(1).Text)
  1049.             .Fields("sourceCode") = Trim(LrText(2).Tag)
  1050.             .Fields("Mnumber") = Trim(LrText(3).Tag)
  1051.             .Fields("quantity") = Val(LrText(5).Text)
  1052.             If Trim(LrText(6).Text) = "" Then
  1053.                 .Fields("returndate") = Null
  1054.             Else
  1055.                 .Fields("returndate") = CDate(LrText(6).Text)
  1056.             End If
  1057.             .Fields("receivecode") = Trim(LrText(7).Tag)
  1058.             .Fields("trucksign") = Trim(LrText(8).Text)
  1059.             .Fields("driver") = Trim(LrText(9).Text)
  1060.             .Fields("remark") = Trim(LrText(10).Text)                                                      '备注
  1061.             .Fields("maker") = Xtczy                                                                      '制单人
  1062.             .Fields("Checker") = ""                                                                      '审核人置空
  1063.             .Update
  1064.             '系统读出单据ID写入Lab_BillID
  1065.             Lab_BillId.Caption = .Fields("roadladingId")
  1066.         End With
  1067.     Else
  1068.         '修改单据
  1069.         '打开单据主表动态集
  1070.         If Rec_VouchMain.State = 1 Then Rec_VouchMain.Close
  1071.         Rec_VouchMain.Open "Select * From Tr_roadlading  Where roadladingId=" & Val(Lab_BillId.Caption), Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  1072.         With Rec_VouchMain
  1073.             .Fields("sendDate") = CDate(LrText(0).Text)
  1074.             .Fields("roadladingnum") = Trim(LrText(1).Text)
  1075.             .Fields("sourceCode") = Trim(LrText(2).Tag)
  1076.             .Fields("Mnumber") = Trim(LrText(3).Tag)
  1077.             .Fields("quantity") = Val(LrText(5).Text)
  1078.             If Trim(LrText(6).Text) = "" Then
  1079.                 .Fields("returndate") = Null
  1080.             Else
  1081.                 .Fields("returndate") = CDate(LrText(6).Text)
  1082.             End If
  1083.             .Fields("receivecode") = Trim(LrText(7).Tag)
  1084.             .Fields("trucksign") = Trim(LrText(8).Text)
  1085.             .Fields("driver") = Trim(LrText(9).Text)
  1086.             .Fields("remark") = Trim(LrText(10).Text)                                                      '备注
  1087.             .Fields("maker") = Xtczy                                                                      '制单人
  1088.             .Fields("Checker") = ""                                                                      '审核人置空
  1089.             .Update
  1090.         End With
  1091.     End If
  1092.          
  1093.     Cw_DataEnvi.DataConnect.CommitTrans
  1094.     
  1095.     Sub_SaveBill = True
  1096.     Tsxx = "单据存盘完毕! 单据号:" & Trim(LrText(1).Text)
  1097.     Call Xtxxts(Tsxx, 0, 4)
  1098.     
  1099.     '标识单据发生改动
  1100.     Bln_BillChange = True
  1101.     
  1102.     '设置单据改变后的状态
  1103.     Lab_OperStatus = "1"
  1104.     Call Sub_OperStatus("10")
  1105.     Rec_Query.Requery
  1106.     Rec_Query.find "roadladingId=" & Val(Lab_BillId.Caption)
  1107.     
  1108.     Exit Function
  1109. Swcwcl:       '数据存盘时出现错误
  1110.     Cw_DataEnvi.DataConnect.RollbackTrans
  1111.     With WglrGrid
  1112.         Tsxx = "存盘过程中出现未知错误,程序自动恢复保存前状态!"
  1113.         Call Xtxxts(Tsxx, 0, 1)
  1114.         Exit Function
  1115.     End With
  1116. End Function
  1117. '选择首张,上张,下张,末张(此4个过程只需用您的单据ID字段名替换"ArriveMainId"即可)
  1118. Private Sub Sub_First()             '首 张
  1119.     
  1120.     With Rec_Query
  1121.         If .RecordCount = 0 Then
  1122.             Exit Sub
  1123.         End If
  1124.         .MoveFirst
  1125.         Lab_BillId.Caption = .Fields("roadladingId")
  1126.         Call Sub_ShowBill
  1127.     End With
  1128. End Sub
  1129. Private Sub Sub_Prev()             '上 张
  1130.     
  1131.     With Rec_Query
  1132.         If .RecordCount = 0 Then
  1133.             Exit Sub
  1134.         End If
  1135.         .MovePrevious
  1136.         If Not .BOF Then
  1137.             Lab_BillId.Caption = .Fields("roadladingId")
  1138.         Else
  1139.             .MoveNext
  1140.         End If
  1141.         Call Sub_ShowBill
  1142.     End With
  1143. End Sub
  1144. Private Sub Sub_Next()             '下 张
  1145.     With Rec_Query
  1146.         If .RecordCount = 0 Then
  1147.             Exit Sub
  1148.         End If
  1149.         .MoveNext
  1150.         If Not .EOF Then
  1151.             Lab_BillId.Caption = .Fields("roadladingId")
  1152.         Else
  1153.             .MovePrevious
  1154.         End If
  1155.         Call Sub_ShowBill
  1156.     End With
  1157. End Sub
  1158. Private Sub Sub_Last()              '末 张
  1159.     
  1160.     With Rec_Query
  1161.         If .RecordCount = 0 Then
  1162.             Exit Sub
  1163.         End If
  1164.         .MoveLast
  1165.         Lab_BillId.Caption = .Fields("roadladingId")
  1166.         Call Sub_ShowBill
  1167.     End With
  1168. End Sub
  1169.     
  1170. '[>>===================以下为根据实际业务需要自定义过程区域=============================<<]
  1171. '审核,弃审
  1172. Private Sub Sub_CheckBill()             '审 核
  1173.     
  1174.     '[>>
  1175.     '此处可以写入禁止单据审核的理由
  1176.     '<<]
  1177.     
  1178.     '将单据写入审核标识
  1179.     Cw_DataEnvi.DataConnect.Execute ("Update Tr_roadlading Set Checker='" & Xtczy & "' Where roadladingId=" & Val(Lab_BillId.Caption))
  1180.     
  1181.     '写入系统操作员
  1182.     LrText(12).Text = Xtczy
  1183.     
  1184.     '设置审核弃审按钮状态
  1185.     Call Sub_CheckStatus
  1186.     Tsxx = "审核完毕!"
  1187.     Call Xtxxts(Tsxx, 0, 4)
  1188.     '标识单据发生变化
  1189.     Bln_BillChange = True
  1190. End Sub
  1191. Private Sub Sub_AbandonCheck()          '弃 审
  1192.     
  1193.     '[>>
  1194.     '此处可以写入禁止单据弃审的理由
  1195.     '<<]
  1196.    
  1197.     '将单据清除审核标识
  1198.     Cw_DataEnvi.DataConnect.Execute ("Update Tr_roadlading Set Checker='' Where roadladingId=" & Val(Lab_BillId.Caption))
  1199.     
  1200.     '清空单据审核人
  1201.     LrText(12).Text = ""
  1202.     
  1203.     '设置审核弃审按钮状态
  1204.     Call Sub_CheckStatus
  1205.     Tsxx = "弃审完毕!"
  1206.     Call Xtxxts(Tsxx, 0, 4)
  1207.     '标识单据发生变化
  1208.     Bln_BillChange = True
  1209.   
  1210. End Sub
  1211. Private Function Fun_AllowEdit() As Boolean                      '判断当前单据是否允许编辑或删除
  1212.   
  1213.     Dim RecTemp As New ADODB.Recordset     '临时使用动态集
  1214.     Fun_AllowEdit = False
  1215.     Sqlstr = "Select Checker From Tr_roadlading Where roadladingId=" & Val(Lab_BillId.Caption)
  1216.     Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1217.     With RecTemp
  1218.         If Not .EOF Then
  1219.             If Trim(.Fields("Checker") & "") <> "" Then
  1220.                 Tsxx = "该单据已审核确认,不能修改或删除!"
  1221.                 Call Xtxxts(Tsxx, 0, 4)
  1222.                 Exit Function
  1223.             End If
  1224.         End If
  1225.     End With
  1226.     Fun_AllowEdit = True
  1227. End Function
  1228. '[>>===================以上为根据实际业务需要自定义过程区域=============================<<]
  1229. Private Function Fun_AllowInput() As Boolean                           '当某种条件成立时禁止文本框激活使单据处于录入状态
  1230.    
  1231.     '如果单据操作状态为浏览状态则不能显示录入载体(通用)
  1232.     If Trim(Lab_OperStatus.Caption) = "1" Then
  1233.         Exit Function
  1234.     End If
  1235.    
  1236.     '[>>
  1237.     
  1238.     '此处可以填写禁止文本框激活使单据处于录入状态的理由
  1239.    
  1240.     '<<]
  1241.    
  1242.     Fun_AllowInput = True
  1243. End Function
  1244. '*****************************以下为文本框录入处理程序(固定不变部分)*******************************'
  1245. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  1246.     '以下为依据实际情况自定义部分[
  1247.     
  1248.     '在此填写文本框录入事后处理程序
  1249.     
  1250.     ']以上为依据实际情况自定义部分
  1251. End Sub
  1252. Private Sub LrText_Change(Index As Integer)
  1253.     '屏蔽程序改变控制
  1254.     If TextChangeLock Then
  1255.         Exit Sub
  1256.     End If
  1257.    
  1258.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  1259.         
  1260.     '限制字段录入长度
  1261.           
  1262.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  1263.         Select Case Textint(Index, 1)
  1264.             Case 8, 11       '金额型
  1265.                 Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  1266.             Case 9, 12       '数量型
  1267.                 Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  1268.             Case 10          '单价型
  1269.                 Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  1270.             Case Else        '其他小数类型控制
  1271.                 If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  1272.                     Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  1273.                 End If
  1274.         End Select
  1275.         
  1276.         TextChangeLock = False '解锁
  1277.      
  1278. End Sub
  1279. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  1280.     Call TextShow(Index)
  1281. End Sub
  1282. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  1283.     
  1284.     Select Case KeyCode
  1285.         Case vbKeyF2
  1286.             Call Text_Help(Index)
  1287.     End Select
  1288. End Sub
  1289. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  1290.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  1291. End Sub
  1292. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  1293.     
  1294.     If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  1295.         Call TextYxxpd(Index)
  1296.     End If
  1297. End Sub
  1298. Private Sub Ydcommand1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) '点击按钮
  1299.     Call Text_Help(Ydcommand1.Tag)
  1300. End Sub
  1301. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  1302.     
  1303.     If Not Ydcommand1.Visible Then
  1304.         Exit Sub
  1305.     End If
  1306.     TextValiLock = True
  1307.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  1308.     If Len(Xtfhcs) <> 0 Then
  1309.         If Textint(Index, 3) = 1 Then
  1310.             LrText(Index).Text = Xtfhcsfz
  1311.             LrText(Index).Tag = Xtfhcs
  1312.         Else
  1313.             LrText(Index).Text = Xtfhcs
  1314.             LrText(Index).Tag = Xtfhcsfz
  1315.         End If
  1316.     End If
  1317.     TextValiLock = False
  1318.     LrText(Index).SetFocus
  1319. End Sub
  1320. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  1321.     '如果文本框有帮助,则显示帮助按钮
  1322.     If Textboolean(Index, 1) Then
  1323.         Ydcommand1.Visible = True
  1324.         Ydcommand1.Move LrText(Index).Left + LrText(Index).Width, LrText(Index).Top
  1325.         Ydcommand1.Tag = Index
  1326.     Else
  1327.         Ydcommand1.Tag = ""
  1328.         Ydcommand1.Visible = False
  1329.     End If
  1330.     
  1331.     '[>>
  1332.     '可在此处定义其他处理动作
  1333.     '<<]
  1334. End Sub
  1335. Private Sub Wbkcsh()                          '录入文本框初始化
  1336.     Dim Int_TabIndex As Integer         'Tab焦点计数器
  1337.   
  1338.     '单据录入中文本框焦点由0开始
  1339.     LrText(0).TabIndex = 0
  1340.   
  1341.     '最大录入文本框索引值
  1342.     Max_Text_Index = Textvar(1)
  1343.   
  1344.     ReDim TextValiJudgeLock(Max_Text_Index)
  1345.     For jsqte = 0 To Max_Text_Index
  1346.         
  1347.         '判断此文本框录入索引号是否存在,如存在则对其进行初始化
  1348.         If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
  1349.         
  1350.             '自动装入录入文本框和其解释标签
  1351.             If jsqte <> 0 Then
  1352.                 Load LrText(jsqte)
  1353.                 Load TsLabel(jsqte)
  1354.            
  1355.                 '判断录入文本框是否显示
  1356.                 If Textboolean(jsqte, 4) Then
  1357.                     LrText(jsqte).Visible = True
  1358.                     TsLabel(jsqte).Visible = True
  1359.                 End If
  1360.             
  1361.                 '判断文本框是否可编辑
  1362.                 If Textboolean(jsqte, 5) Then
  1363.                     LrText(jsqte).Enabled = True
  1364.                 Else
  1365.                     LrText(jsqte).Enabled = False
  1366.                 End If
  1367.             End If
  1368.            
  1369.            '初始化其内容
  1370.             TextChangeLock = True
  1371.             LrText(jsqte).Text = ""
  1372.             LrText(jsqte).Tag = ""
  1373.             LrText(jsqte).MaxLength = Textint(jsqte, 5)
  1374.             TextChangeLock = False
  1375.         
  1376.             '设置文本框位置及大小,并设置相应标签内容及其位置
  1377.             LrText(jsqte).Move Textint(jsqte, 13), Textint(jsqte, 12), Textint(jsqte, 11), Textint(jsqte, 10)
  1378.             TsLabel(jsqte).Caption = Textstr(jsqte, 7) & ":"
  1379.             TsLabel(jsqte).Move Textint(jsqte, 13) - TsLabel(jsqte).Width - 20, Textint(jsqte, 12) + (Textint(jsqte, 10) - TsLabel(jsqte).Height) / 2 - 30
  1380.             
  1381.         End If
  1382.      
  1383.         '将文本框有效性判断进行加锁,在文本框内容发生变化时将锁打开
  1384.         TextValiJudgeLock(jsqte) = True
  1385.       
  1386.     Next jsqte
  1387.     
  1388.     '设置文本框焦点转移顺序(前提文本焦点从0至Max_Text_Index)
  1389.     For Int_TabIndex = 0 To Max_Text_Index
  1390.         For jsqte = 0 To Max_Text_Index
  1391.             If Textint(jsqte, 14) = Int_TabIndex Then
  1392.                LrText(jsqte).TabIndex = Int_TabIndex
  1393.             End If
  1394.         Next jsqte
  1395.     Next Int_TabIndex
  1396.   
  1397. End Sub
  1398. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  1399.   
  1400.     Dim Sqlstr As String
  1401.     Dim Findrec As New ADODB.Recordset
  1402.   
  1403.     '按帮助不进行有效性判断
  1404.   
  1405.     If TextValiLock Then
  1406.         TextValiLock = False
  1407.         TextYxxpd = True
  1408.         Exit Function
  1409.     End If
  1410.   
  1411.     '文本框内容未曾改变不进行有效性判断
  1412.   
  1413.     If TextValiJudgeLock(Index) Then
  1414.         Ydcommand1.Visible = False
  1415.         TextYxxpd = True
  1416.         Exit Function
  1417.     End If
  1418.   
  1419.     '文本框内容为空认为有效,并清空其Tag值
  1420.   
  1421.     If Trim(LrText(Index)) = "" Then
  1422.         LrText(Index).Tag = ""
  1423.         Call Wbklrwbcl(Index)
  1424.         Ydcommand1.Visible = False
  1425.         TextValiJudgeLock(Index) = True
  1426.         TextYxxpd = True
  1427.         Exit Function
  1428.     End If
  1429.    
  1430.     Select Case Textint(Index, 4)
  1431.         Case 1      '编码型
  1432.             Sqlstr = Trim(Textstr(Index, 5))
  1433.             Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  1434.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1435.             If Findrec.EOF Then
  1436.                 Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  1437.                 LrText(Index).SetFocus
  1438.                 Exit Function
  1439.             Else
  1440.                 Select Case Textint(Index, 3)
  1441.                     Case 0
  1442.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1443.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1444.                         End If
  1445.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1446.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1447.                         End If
  1448.                     Case 1
  1449.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1450.                             LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1451.                         End If
  1452.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1453.                             LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1454.                         End If
  1455.                 End Select
  1456.                 If Index = 3 Then
  1457.                     Dim myrs As New ADODB.Recordset
  1458.                     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
  1459.                     If Not myrs.EOF Then
  1460.                         LrText(4).Text = myrs.Fields("model")
  1461.                     End If
  1462.                 End If
  1463.             End If
  1464.         Case 2      '日期型
  1465.             If IsDate(LrText(Index).Text) Then
  1466.                 LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  1467.                 If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  1468.                     LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  1469.                 End If
  1470.             Else
  1471.                 Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  1472.                 Call Xtxxts(Tsxx, 0, 1)
  1473.                 LrText(Index).SetFocus
  1474.                 Exit Function
  1475.             End If
  1476.         Case 3      '其他类型
  1477.     End Select
  1478.     
  1479.     '隐藏帮助按钮
  1480.     Ydcommand1.Visible = False
  1481.    
  1482.     '如果有效则加锁,用户不改变内容则不再进行有效性判断
  1483.     TextValiJudgeLock(Index) = True
  1484.     '调用文本框事后处理程序
  1485.     Call Wbklrwbcl(Index)
  1486.    
  1487.     '有效性判断通过则返回True
  1488.     TextYxxpd = True
  1489.     
  1490. End Function