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

企业管理

开发平台:

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