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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{BEEECC20-4D5F-4F8B-BFDC-5D9B6FBDE09D}#1.0#0"; "vsflex8.ocx"
  3. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  4. Begin VB.Form Xs_I_ChoiceConsign 
  5.    BackColor       =   &H00C0C0C0&
  6.    BorderStyle     =   1  'Fixed Single
  7.    Caption         =   "发货单选择"
  8.    ClientHeight    =   5820
  9.    ClientLeft      =   675
  10.    ClientTop       =   720
  11.    ClientWidth     =   9330
  12.    Icon            =   "发货单选择.frx":0000
  13.    KeyPreview      =   -1  'True
  14.    LinkTopic       =   "Form4"
  15.    MaxButton       =   0   'False
  16.    MinButton       =   0   'False
  17.    ScaleHeight     =   5820
  18.    ScaleWidth      =   9330
  19.    StartUpPosition =   1  '所有者中心
  20.    Begin VB.CheckBox ChkTotal 
  21.       BackColor       =   &H00C0C0C0&
  22.       Caption         =   "合并"
  23.       Height          =   270
  24.       Left            =   465
  25.       TabIndex        =   21
  26.       Top             =   5445
  27.       Width           =   780
  28.    End
  29.    Begin VB.TextBox Flag 
  30.       Height          =   270
  31.       Left            =   -30
  32.       TabIndex        =   19
  33.       Text            =   "0"
  34.       Top             =   60
  35.       Visible         =   0   'False
  36.       Width           =   255
  37.    End
  38.    Begin VB.CommandButton Command4 
  39.       Caption         =   "全清"
  40.       Height          =   300
  41.       Left            =   3210
  42.       TabIndex        =   9
  43.       Top             =   420
  44.       Width           =   780
  45.    End
  46.    Begin VB.CommandButton Command3 
  47.       Caption         =   "全选"
  48.       Height          =   300
  49.       Left            =   2340
  50.       TabIndex        =   8
  51.       Top             =   420
  52.       Width           =   780
  53.    End
  54.    Begin MSComctlLib.Toolbar GsToolbar 
  55.       Height          =   525
  56.       Left            =   9210
  57.       TabIndex        =   18
  58.       Top             =   90
  59.       Visible         =   0   'False
  60.       Width           =   2595
  61.       _ExtentX        =   4577
  62.       _ExtentY        =   926
  63.       ButtonWidth     =   1455
  64.       ButtonHeight    =   926
  65.       Appearance      =   1
  66.       Style           =   1
  67.       ImageList       =   "ImageList1"
  68.       _Version        =   393216
  69.       BeginProperty Buttons {66833FE8-8583-11D1-B16A-00C0F0283628} 
  70.          NumButtons      =   3
  71.          BeginProperty Button1 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  72.             Caption         =   "保存格式"
  73.             Key             =   "bcgs"
  74.             ImageKey        =   "bcgs"
  75.          EndProperty
  76.          BeginProperty Button2 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  77.             Caption         =   "默认列宽"
  78.             Key             =   "hfmrgs"
  79.             ImageKey        =   "mrlk"
  80.          EndProperty
  81.          BeginProperty Button3 {66833FEA-8583-11D1-B16A-00C0F0283628} 
  82.             Caption         =   "显示项目"
  83.             Key             =   "szxsxm"
  84.             ImageKey        =   "xsxm"
  85.          EndProperty
  86.       EndProperty
  87.    End
  88.    Begin VB.Frame Frame1 
  89.       BackColor       =   &H00C0C0C0&
  90.       BorderStyle     =   0  'None
  91.       Caption         =   "Frame1"
  92.       Height          =   345
  93.       Left            =   90
  94.       TabIndex        =   3
  95.       Top             =   450
  96.       Width           =   2325
  97.       Begin VB.OptionButton Option2 
  98.          BackColor       =   &H00C0C0C0&
  99.          Caption         =   "赊销"
  100.          Height          =   255
  101.          Left            =   840
  102.          TabIndex        =   5
  103.          Top             =   30
  104.          Width           =   1005
  105.       End
  106.       Begin VB.OptionButton Option1 
  107.          BackColor       =   &H00C0C0C0&
  108.          Caption         =   "现结"
  109.          Height          =   195
  110.          Left            =   90
  111.          TabIndex        =   4
  112.          Top             =   60
  113.          Value           =   -1  'True
  114.          Width           =   1035
  115.       End
  116.    End
  117.    Begin VB.CommandButton Command2 
  118.       Caption         =   "取消(&C)"
  119.       Height          =   300
  120.       Left            =   7425
  121.       TabIndex        =   7
  122.       Top             =   420
  123.       Width           =   975
  124.    End
  125.    Begin VB.CommandButton Command1 
  126.       Caption         =   "确定(&O)"
  127.       Height          =   300
  128.       Left            =   6315
  129.       TabIndex        =   6
  130.       Top             =   420
  131.       Width           =   1005
  132.    End
  133.    Begin VB.CommandButton Ydcommand1 
  134.       Height          =   300
  135.       Index           =   1
  136.       Left            =   7020
  137.       Picture         =   "发货单选择.frx":1042
  138.       Style           =   1  'Graphical
  139.       TabIndex        =   17
  140.       Top             =   60
  141.       Visible         =   0   'False
  142.       Width           =   300
  143.    End
  144.    Begin VB.TextBox LrText 
  145.       Height          =   285
  146.       Index           =   0
  147.       Left            =   1080
  148.       TabIndex        =   0
  149.       Top             =   75
  150.       Width           =   2805
  151.    End
  152.    Begin VB.TextBox LrText 
  153.       Height          =   285
  154.       Index           =   1
  155.       Left            =   5640
  156.       TabIndex        =   1
  157.       Top             =   75
  158.       Width           =   1395
  159.    End
  160.    Begin VB.CommandButton Ydcommand1 
  161.       Height          =   300
  162.       Index           =   0
  163.       Left            =   3870
  164.       Picture         =   "发货单选择.frx":13CC
  165.       Style           =   1  'Graphical
  166.       TabIndex        =   14
  167.       Top             =   60
  168.       Visible         =   0   'False
  169.       Width           =   300
  170.    End
  171.    Begin VB.TextBox Ydtext 
  172.       BackColor       =   &H00C0FFFF&
  173.       BorderStyle     =   0  'None
  174.       Height          =   330
  175.       Left            =   9180
  176.       MultiLine       =   -1  'True
  177.       TabIndex        =   10
  178.       Top             =   2730
  179.       Visible         =   0   'False
  180.       Width           =   1185
  181.    End
  182.    Begin VB.ComboBox YdCombo 
  183.       Height          =   300
  184.       Left            =   9210
  185.       Style           =   2  'Dropdown List
  186.       TabIndex        =   12
  187.       Top             =   3210
  188.       Visible         =   0   'False
  189.       Width           =   1155
  190.    End
  191.    Begin MSComctlLib.ImageList ImageList1 
  192.       Left            =   9180
  193.       Top             =   2100
  194.       _ExtentX        =   1005
  195.       _ExtentY        =   1005
  196.       BackColor       =   -2147483643
  197.       ImageWidth      =   16
  198.       ImageHeight     =   16
  199.       MaskColor       =   12632256
  200.       _Version        =   393216
  201.       BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
  202.          NumListImages   =   31
  203.          BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  204.             Picture         =   "发货单选择.frx":1756
  205.             Key             =   "yl"
  206.          EndProperty
  207.          BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  208.             Picture         =   "发货单选择.frx":1C9A
  209.             Key             =   "dy"
  210.          EndProperty
  211.          BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  212.             Picture         =   "发货单选择.frx":1DAE
  213.             Key             =   "fq"
  214.          EndProperty
  215.          BeginProperty ListImage4 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  216.             Picture         =   "发货单选择.frx":1EC2
  217.             Key             =   "ymsz"
  218.          EndProperty
  219.          BeginProperty ListImage5 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  220.             Picture         =   "发货单选择.frx":2616
  221.             Key             =   "xg"
  222.          EndProperty
  223.          BeginProperty ListImage6 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  224.             Picture         =   "发货单选择.frx":2A6A
  225.             Key             =   "zh"
  226.          EndProperty
  227.          BeginProperty ListImage7 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  228.             Picture         =   "发货单选择.frx":30DA
  229.             Key             =   "fh"
  230.          EndProperty
  231.          BeginProperty ListImage8 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  232.             Picture         =   "发货单选择.frx":33F6
  233.             Key             =   "xz"
  234.          EndProperty
  235.          BeginProperty ListImage9 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  236.             Picture         =   "发货单选择.frx":350A
  237.             Key             =   "sc"
  238.          EndProperty
  239.          BeginProperty ListImage10 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  240.             Picture         =   "发货单选择.frx":361E
  241.             Key             =   "bc"
  242.          EndProperty
  243.          BeginProperty ListImage11 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  244.             Picture         =   "发货单选择.frx":3732
  245.             Key             =   "cx"
  246.          EndProperty
  247.          BeginProperty ListImage12 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  248.             Picture         =   "发货单选择.frx":3846
  249.             Key             =   "bz"
  250.          EndProperty
  251.          BeginProperty ListImage13 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  252.             Picture         =   "发货单选择.frx":395A
  253.             Key             =   "first"
  254.          EndProperty
  255.          BeginProperty ListImage14 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  256.             Picture         =   "发货单选择.frx":3A6E
  257.             Key             =   "prev"
  258.          EndProperty
  259.          BeginProperty ListImage15 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  260.             Picture         =   "发货单选择.frx":3B82
  261.             Key             =   "next"
  262.          EndProperty
  263.          BeginProperty ListImage16 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  264.             Picture         =   "发货单选择.frx":3C96
  265.             Key             =   "last"
  266.          EndProperty
  267.          BeginProperty ListImage17 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  268.             Picture         =   "发货单选择.frx":3DAA
  269.             Key             =   "sh"
  270.          EndProperty
  271.          BeginProperty ListImage18 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  272.             Picture         =   "发货单选择.frx":42C6
  273.             Key             =   "ye"
  274.          EndProperty
  275.          BeginProperty ListImage19 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  276.             Picture         =   "发货单选择.frx":471A
  277.             Key             =   "xx"
  278.          EndProperty
  279.          BeginProperty ListImage20 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  280.             Picture         =   "发货单选择.frx":4B6E
  281.             Key             =   "shsh"
  282.          EndProperty
  283.          BeginProperty ListImage21 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  284.             Picture         =   "发货单选择.frx":4FC2
  285.             Key             =   "shbc"
  286.          EndProperty
  287.          BeginProperty ListImage22 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  288.             Picture         =   "发货单选择.frx":5416
  289.             Key             =   "shqs"
  290.          EndProperty
  291.          BeginProperty ListImage23 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  292.             Picture         =   "发货单选择.frx":576A
  293.             Key             =   ""
  294.          EndProperty
  295.          BeginProperty ListImage24 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  296.             Picture         =   "发货单选择.frx":5D5E
  297.             Key             =   "qbfq"
  298.          EndProperty
  299.          BeginProperty ListImage25 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  300.             Picture         =   "发货单选择.frx":60B2
  301.             Key             =   "cg"
  302.          EndProperty
  303.          BeginProperty ListImage26 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  304.             Picture         =   "发货单选择.frx":698C
  305.             Key             =   ""
  306.          EndProperty
  307.          BeginProperty ListImage27 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  308.             Picture         =   "发货单选择.frx":7266
  309.             Key             =   "ph"
  310.          EndProperty
  311.          BeginProperty ListImage28 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  312.             Picture         =   "发货单选择.frx":76B8
  313.             Key             =   "dw"
  314.          EndProperty
  315.          BeginProperty ListImage29 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  316.             Picture         =   "发货单选择.frx":7B0A
  317.             Key             =   "bcgs"
  318.          EndProperty
  319.          BeginProperty ListImage30 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  320.             Picture         =   "发货单选择.frx":7EA4
  321.             Key             =   "mrlk"
  322.          EndProperty
  323.          BeginProperty ListImage31 {2C247F27-8591-11D1-B16A-00C0F0283628} 
  324.             Picture         =   "发货单选择.frx":823E
  325.             Key             =   "xsxm"
  326.          EndProperty
  327.       EndProperty
  328.    End
  329.    Begin VB.CommandButton Ydcommand 
  330.       Height          =   300
  331.       Left            =   9300
  332.       Picture         =   "发货单选择.frx":85D8
  333.       Style           =   1  'Graphical
  334.       TabIndex        =   11
  335.       Top             =   660
  336.       Visible         =   0   'False
  337.       Width           =   300
  338.    End
  339.    Begin VSFlex8Ctl.VSFlexGrid WglrGrid 
  340.       Height          =   4485
  341.       Left            =   30
  342.       TabIndex        =   2
  343.       Top             =   780
  344.       Width           =   9225
  345.       _cx             =   5080
  346.       _cy             =   5080
  347.       Appearance      =   1
  348.       BorderStyle     =   1
  349.       Enabled         =   -1  'True
  350.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  351.          Name            =   "宋体"
  352.          Size            =   9
  353.          Charset         =   134
  354.          Weight          =   400
  355.          Underline       =   0   'False
  356.          Italic          =   0   'False
  357.          Strikethrough   =   0   'False
  358.       EndProperty
  359.       MousePointer    =   0
  360.       BackColor       =   16777215
  361.       ForeColor       =   -2147483640
  362.       BackColorFixed  =   12632256
  363.       ForeColorFixed  =   -2147483630
  364.       BackColorSel    =   -2147483635
  365.       ForeColorSel    =   -2147483634
  366.       BackColorBkg    =   -2147483636
  367.       BackColorAlternate=   16777215
  368.       GridColor       =   -2147483633
  369.       GridColorFixed  =   -2147483632
  370.       TreeColor       =   -2147483632
  371.       FloodColor      =   192
  372.       SheetBorder     =   -2147483642
  373.       FocusRect       =   1
  374.       HighLight       =   1
  375.       AllowSelection  =   -1  'True
  376.       AllowBigSelection=   -1  'True
  377.       AllowUserResizing=   0
  378.       SelectionMode   =   0
  379.       GridLines       =   1
  380.       GridLinesFixed  =   2
  381.       GridLineWidth   =   1
  382.       Rows            =   2
  383.       Cols            =   10
  384.       FixedRows       =   1
  385.       FixedCols       =   1
  386.       RowHeightMin    =   0
  387.       RowHeightMax    =   0
  388.       ColWidthMin     =   0
  389.       ColWidthMax     =   0
  390.       ExtendLastCol   =   0   'False
  391.       FormatString    =   ""
  392.       ScrollTrack     =   0   'False
  393.       ScrollBars      =   3
  394.       ScrollTips      =   0   'False
  395.       MergeCells      =   0
  396.       MergeCompare    =   0
  397.       AutoResize      =   -1  'True
  398.       AutoSizeMode    =   0
  399.       AutoSearch      =   0
  400.       AutoSearchDelay =   2
  401.       MultiTotals     =   -1  'True
  402.       SubtotalPosition=   1
  403.       OutlineBar      =   0
  404.       OutlineCol      =   0
  405.       Ellipsis        =   0
  406.       ExplorerBar     =   0
  407.       PicturesOver    =   0   'False
  408.       FillStyle       =   0
  409.       RightToLeft     =   0   'False
  410.       PictureType     =   0
  411.       TabBehavior     =   0
  412.       OwnerDraw       =   0
  413.       Editable        =   0
  414.       ShowComboButton =   1
  415.       WordWrap        =   0   'False
  416.       TextStyle       =   0
  417.       TextStyleFixed  =   0
  418.       OleDragMode     =   0
  419.       OleDropMode     =   0
  420.       DataMode        =   0
  421.       VirtualData     =   -1  'True
  422.       DataMember      =   ""
  423.       ComboSearch     =   3
  424.       AutoSizeMouse   =   -1  'True
  425.       FrozenRows      =   0
  426.       FrozenCols      =   0
  427.       AllowUserFreezing=   0
  428.       BackColorFrozen =   0
  429.       ForeColorFrozen =   0
  430.       WallPaperAlignment=   9
  431.       AccessibleName  =   ""
  432.       AccessibleDescription=   ""
  433.       AccessibleValue =   ""
  434.       AccessibleRole  =   24
  435.    End
  436.    Begin VB.Label Lab_Color 
  437.       Appearance      =   0  'Flat
  438.       BackColor       =   &H00E0E0E0&
  439.       BorderStyle     =   1  'Fixed Single
  440.       ForeColor       =   &H80000008&
  441.       Height          =   255
  442.       Index           =   3
  443.       Left            =   7980
  444.       TabIndex        =   20
  445.       Top             =   5430
  446.       Visible         =   0   'False
  447.       Width           =   255
  448.    End
  449.    Begin VB.Label Label1 
  450.       AutoSize        =   -1  'True
  451.       BackStyle       =   0  'Transparent
  452.       Caption         =   "客户名称:"
  453.       Height          =   195
  454.       Left            =   210
  455.       TabIndex        =   16
  456.       Top             =   120
  457.       Width           =   765
  458.    End
  459.    Begin VB.Label Label2 
  460.       AutoSize        =   -1  'True
  461.       BackStyle       =   0  'Transparent
  462.       Caption         =   "日期:"
  463.       Height          =   195
  464.       Left            =   4920
  465.       TabIndex        =   15
  466.       Top             =   120
  467.       Width           =   585
  468.    End
  469.    Begin VB.Label Lab_OperStatus 
  470.       BackColor       =   &H000080FF&
  471.       Caption         =   "1"
  472.       Height          =   345
  473.       Left            =   9240
  474.       TabIndex        =   13
  475.       Top             =   840
  476.       Visible         =   0   'False
  477.       Width           =   345
  478.    End
  479. End
  480. Attribute VB_Name = "Xs_I_ChoiceConsign"
  481. Attribute VB_GlobalNameSpace = False
  482. Attribute VB_Creatable = False
  483. Attribute VB_PredeclaredId = True
  484. Attribute VB_Exposed = False
  485. '*********************************************************************************************
  486. '*    备        注:程序中所有依实际情况自定义部分均用[>> <<]括起
  487. '*
  488. '*    1.每次调入外部功能窗体,均要加锁ChangeLock=True,窗体关闭后解锁ChangeLock=false
  489. '*
  490. '*    2.网格列存储内容注解
  491. '*
  492. '*    3.Lab_OperStatus 用此标签来标识单据录入状态(默认值为1) 1-浏览 2-修改
  493. '*
  494. '*********************************************************************************************
  495.  '以下为自定义变量
  496.     
  497.  '以下为固定使用变量(网格)
  498.     Dim Cxnrrec As New ADODB.Recordset              '显示查询内容动态集
  499.     Dim Dyymctbl As New DY_Dyymsz                   '打印页面窗体变量
  500.     Dim GridCode As String                          '显示网格网格代码
  501.     Dim GridInf() As Variant                        '整个网格设置信息
  502.     Dim ReportTitle As String                       '报表主标题
  503.     Dim Tsxx As String                              '系统提示信息
  504.     Dim Pmbcsjhs As Long                            '屏幕网格保持数据行数(大于等于1)
  505.     Dim Fzxwghs As Integer                          '辅助项网格行数(包括合计行)
  506.     Dim Sfxshjwg As Boolean                         '是否显示合计网格
  507.     Dim Qslz As Long                                '网格隐藏(非操作显示)列数
  508.     Dim Sjhgd As Double                             '网格数据行高度
  509.     Dim GridBoolean() As Boolean                    '网格列信息(布尔型)
  510.     Dim GridStr()  As String                        '网格列信息(字符型)
  511.     Dim GridInt() As Integer                        '网格列信息(整型)
  512.     Dim Sfblbzkd As Boolean                         '是否保留帮助宽度(字段提供帮助时,是否为按钮保留空间)
  513.     Dim Dqlrwgh As Long                             '当前录入数据网格行
  514.     Dim Dqlrwgl As Long                             '当前录入数据网格列
  515.     Dim Dqlkwgh As Long                             '刚刚离开网格行(不一定为录入行)
  516.     Dim Dqlkwgl As Long                             '刚刚离开网格列
  517.     Dim Dqtoprow As Long                            '当前录入状态时最上端可视行
  518.     Dim Dqleftcol As Long                           '当前录入状态时最左端可视列
  519.     Dim Zdlrqnr As String                           '字段录入修改前内容(用来判断内容是否修改)
  520.     Dim Wbkbhlock As Boolean                        '文本框改变值锁
  521.     Dim Changelock As Boolean                       '网格行列改变控制锁(用来区别用户改变.程序改变)
  522.     Dim Gdtlock As Boolean                          '滚动条滚动控制(用来区别用户改变.程序改变)
  523.     Dim Yxxpdlock As Boolean                        '字段有效性判断锁(内容不修改不需进行字段有效性判断)
  524.     Dim Hyxxpdlock As Boolean                       '行有效性判断锁(字段内容不修改不需进行行有效性判断)
  525.     Dim Valilock As Boolean                         '文本框失去焦点是否进行有效性控制(TRUE 为锁定*限用网格录入)
  526.     Dim Shsfts As Boolean                           '删除记录行是否提示
  527.     Dim Szzls As Integer                            '网格信息数组最大下标值(网格列数-1)
  528.     
  529.     '以下为固定使用变量(文本框)
  530. Dim Textvar() As Variant                 '存储变体型文本框信息
  531. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  532. Dim Textint() As Integer                 '存储整型文本框信息
  533. Dim Textstr() As String                  '存储字符型文本框信息
  534. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  535. Dim TextGroupCode As String              '文本框录入分组编码
  536. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  537. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  538. Dim CurTextIndex As Integer              '当前文本框索引值
  539. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  540. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  541. Dim BlChoice As Boolean     '发货单或退货单
  542. Dim TempForm As Object
  543. Private Sub Command1_Click()
  544.     Dim Jsq As Integer
  545.     Dim Rows_int As Integer
  546.     
  547.     With WglrGrid
  548.         For Jsq = 1 To .Rows - 1
  549.             If Trim(.TextMatrix(Jsq, Sydz("001", GridStr(), Szzls))) = "*" Then
  550.                 Rows_int = Rows_int + 1
  551.             End If
  552.             If BlChoice Then
  553.                 If Trim(.TextMatrix(Jsq, 1)) = "*" And .Cell(flexcpBackColor, Jsq, 0) = Lab_Color(3).BackColor And Val(.TextMatrix(Jsq, Sydz("010", GridStr(), Szzls))) <= 0 Then
  554.                     Tsxx = "货物 ' " & Trim(.TextMatrix(Jsq - 1, Sydz("005", GridStr(), Szzls))) & " ' 的开票数量必须大于零!"
  555.                     Call Xtxxts(Tsxx, 0, 4)
  556.                     Exit Sub
  557.                 End If
  558.             Else
  559.                 If Trim(.TextMatrix(Jsq, 1)) = "*" And .Cell(flexcpBackColor, Jsq, 0) = Lab_Color(3).BackColor And Val(.TextMatrix(Jsq, Sydz("010", GridStr(), Szzls))) >= 0 Then
  560.                     Tsxx = "货物 ' " & Trim(.TextMatrix(Jsq - 1, Sydz("005", GridStr(), Szzls))) & " ' 的开票数量必须小于零!"
  561.                     Call Xtxxts(Tsxx, 0, 4)
  562.                     Exit Sub
  563.                 End If
  564.             End If
  565.         Next
  566.         If Rows_int = 0 Then
  567.             Tsxx = "请选定一个货物!"
  568.             Call Xtxxts(Tsxx, 0, 4)
  569.             Exit Sub
  570.         End If
  571.     End With
  572.     
  573.     '发票
  574.     TempForm.Command1.Tag = "0"
  575.     If Option1.Value = True Then
  576.         TempForm.Option1 = True
  577.     Else
  578.         TempForm.Option2 = True
  579.     End If
  580.     With TempForm.vsFlexGrid1
  581.         .Rows = .FixedRows
  582.         For Jsq = .FixedRows To WglrGrid.Rows - 1
  583.             If Trim(WglrGrid.TextMatrix(Jsq, 1)) = "*" Then
  584.                 .Rows = .Rows + 1
  585.                 .TextMatrix(.Rows - 1, 0) = WglrGrid.TextMatrix(Jsq, 1)
  586.                 .TextMatrix(.Rows - 1, 1) = WglrGrid.TextMatrix(Jsq, Sydz("001", GridStr(), Szzls))     '是否被选中
  587.                 .TextMatrix(.Rows - 1, 2) = WglrGrid.TextMatrix(Jsq, Sydz("002", GridStr(), Szzls))     '发货单号
  588.                 .TextMatrix(.Rows - 1, 12) = WglrGrid.TextMatrix(Jsq, Sydz("012", GridStr(), Szzls))    '发货ID
  589.                 .TextMatrix(.Rows - 1, 3) = WglrGrid.TextMatrix(Jsq, Sydz("003", GridStr(), Szzls))     '仓库
  590.                 .TextMatrix(.Rows - 1, 4) = WglrGrid.TextMatrix(Jsq, Sydz("004", GridStr(), Szzls))     '货物编码
  591.                 .TextMatrix(.Rows - 1, 5) = WglrGrid.TextMatrix(Jsq, Sydz("005", GridStr(), Szzls))     '货物名称
  592.                 .TextMatrix(.Rows - 1, 6) = WglrGrid.TextMatrix(Jsq, Sydz("006", GridStr(), Szzls))     '规格
  593.                 .TextMatrix(.Rows - 1, 7) = WglrGrid.TextMatrix(Jsq, Sydz("007", GridStr(), Szzls))     '单位
  594.                 .TextMatrix(.Rows - 1, 8) = WglrGrid.TextMatrix(Jsq, Sydz("008", GridStr(), Szzls))     '实收数量
  595.                 .TextMatrix(.Rows - 1, 9) = WglrGrid.TextMatrix(Jsq, Sydz("009", GridStr(), Szzls))     '已开票数量
  596.                 .TextMatrix(.Rows - 1, 10) = WglrGrid.TextMatrix(Jsq, Sydz("010", GridStr(), Szzls))    '开票数量
  597.                 .TextMatrix(.Rows - 1, 11) = WglrGrid.TextMatrix(Jsq, Sydz("011", GridStr(), Szzls))    '单价
  598.                 TempForm.Command1.Tag = "1"
  599.             End If
  600.         Next Jsq
  601.     End With
  602.     GtempInvoiceHB = ChkTotal.Value
  603.     Unload Me
  604. End Sub
  605. Private Sub Command2_Click()
  606.     TempForm.Command1.Tag = "0"
  607.     Unload Me
  608. End Sub
  609. Private Sub Command3_Click()
  610.     Dim Jsq As Integer
  611.     
  612.     With WglrGrid
  613.         Changelock = True
  614.         For Jsq = .FixedRows To .Rows - 1
  615.             If .TextMatrix(Jsq, 0) = "*" Then
  616.                 .TextMatrix(Jsq, Sydz("001", GridStr(), Szzls)) = ""
  617.                 .Row = Jsq
  618.                 Call WglrGrid_DblClick
  619.             End If
  620.         Next
  621.         Changelock = False
  622.     End With
  623. End Sub
  624. Private Sub Command4_Click()
  625.     Dim Jsq As Integer
  626.     
  627.     With WglrGrid
  628.         For Jsq = .FixedRows To .Rows - 1
  629.             .TextMatrix(Jsq, 1) = ""
  630.             If .TextMatrix(Jsq, 0) = "*" Then .TextMatrix(Jsq, Sydz("001", GridStr(), Szzls)) = ""
  631.             .TextMatrix(Jsq, Sydz("010", GridStr(), Szzls)) = ""
  632.         Next
  633.     End With
  634. End Sub
  635. Private Sub Form_KeyPress(KeyAscii As Integer)      '控制焦点转移和限制录入字符"'"
  636.     Dim jdzygs As Integer
  637.     jdzygs = 2                                      '在单据录入中,此焦点转移控制值一定小于等于文本框个数,否则网格回车键将不支持.
  638.     Select Case KeyAscii
  639.         Case vbKeyReturn
  640.             If Kjjdzy(jdzygs) Then
  641.                 KeyAscii = 0
  642.             End If
  643.         Case 39           '屏蔽字符"'"
  644.             KeyAscii = 0
  645.     End Select
  646. End Sub
  647. Private Sub Form_Load()                              '窗 体 装 入
  648.     '初始化各种锁值
  649.     Changelock = False             '网格行列改变控制锁
  650.     Gdtlock = False                '滚动条滚动控制
  651.     Yxxpdlock = True               '字段有效性判断锁
  652.     Hyxxpdlock = True              '行有效性判断锁
  653.     Wbkbhlock = False              '文本框内容改变锁
  654.     Select Case GtempInvoiceType
  655.         Case "Xs_I_InvoiceBill"
  656.             BlChoice = True
  657.             Cw_DataEnvi.DataConnect.Execute ("update Xt_tyhelp set sql_string='SELECT distinct cuscode,cusname FROM Xs_V_ConsignBill where checker<>'''' and abs(recquantity)-abs(invquantity)>0 order by cusname ' WHERE help_code = 'Xs_Cz_Choice'")
  658.             Set TempForm = Xs_I_InvoiceBill
  659.             Xs_I_ChoiceConsign.Caption = "选择发货单"
  660.         Case "Xs_I_UseInvoice"
  661.             BlChoice = True
  662.             Cw_DataEnvi.DataConnect.Execute ("update Xt_tyhelp set sql_string='SELECT distinct cuscode,cusname FROM Xs_V_ConsignBill where checker<>'''' and abs(recquantity)-abs(invquantity)>0 order by cusname ' WHERE help_code = 'Xs_Cz_Choice'")
  663.             Set TempForm = Xs_I_UseInvoice
  664.             Xs_I_ChoiceConsign.Caption = "选择发货单"
  665.         Case "Xs_I_UseRedInvoice"
  666.             BlChoice = False
  667.             Cw_DataEnvi.DataConnect.Execute ("update Xt_tyhelp set sql_string='SELECT distinct cuscode,cusname FROM Xs_V_ConsignBill where checker<>'''' and abs(recquantity)-abs(invquantity)>0 and BillType=''1'' order by cusname ' WHERE help_code = 'Xs_Cz_Choice'")
  668.             Set TempForm = Xs_I_UseRedInvoice
  669.             Xs_I_ChoiceConsign.Caption = "选择退货单"
  670.         Case "Xs_I_RedInvoice"
  671.             BlChoice = False
  672.             Cw_DataEnvi.DataConnect.Execute ("update Xt_tyhelp set sql_string='SELECT distinct cuscode,cusname FROM Xs_V_ConsignBill where checker<>'''' and abs(recquantity)-abs(invquantity)>0 and BillType=''1'' order by cusname ' WHERE help_code = 'Xs_Cz_Choice'")
  673.             Set TempForm = Xs_I_RedInvoice
  674.             Xs_I_ChoiceConsign.Caption = "选择退货单"
  675.     End Select
  676.         
  677.     
  678.     
  679.     TextGroupCode = "Xs_I_ChoiceConsign"
  680.  
  681.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  682.     Call Wbkcsh
  683.     
  684.     '调 入 网 格
  685.     GridCode = "Xs_I_ChoiceConsign"      '网格属性编码
  686.     Call BzWgcsh(WglrGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
  687.   
  688.     Qslz = GridInf(1)
  689.     Sjhgd = GridInf(2)
  690.     Pmbcsjhs = GridInf(3)
  691.     Fzxwghs = GridInf(4)
  692.     Sfblbzkd = GridInf(5)
  693.     Shsfts = GridInf(6)
  694.     Sfxshjwg = GridInf(7)
  695.     Szzls = WglrGrid.Cols - 1
  696.     
  697.     '生成查询结果
  698.     WglrGrid.Redraw = False
  699.     'Call Sub_Query
  700.     WglrGrid.Redraw = True
  701.     
  702.     '设置状态为修改状态
  703.     Lab_OperStatus = "2"
  704.  
  705. End Sub
  706. Private Sub Form_Unload(Cancel As Integer)           '窗体卸载
  707.    '卸载打印页面窗体
  708.    Unload Dyymctbl
  709. End Sub
  710. Private Sub Sub_Query()                            '生成查询结果
  711.     Dim RsTemp As New Recordset
  712.     Dim Jsq As Integer
  713.     Dim strTemp As String
  714.     Dim TempCode As String
  715.     
  716.     If RsTemp.State Then RsTemp.Close
  717.     strTemp = "SELECT * FROM Xs_V_ConsignBill where cuscode='" & Trim(LrText(0).Tag) & "' and convert(char,consignDate,112) like '" & _
  718.             Format(LrText(1), "yyyymmdd") & "%' and checker<>''"
  719.     If Flag.Text = 0 Then
  720.         If Xs_IfInvoice = False Then
  721.             strTemp = strTemp + " and ConsignFlag=0 "
  722.         Else
  723.             strTemp = strTemp + " and ConsignFlag=0 and returnmoneyflag='1'"
  724.         End If
  725.     Else
  726.         strTemp = strTemp + " and ConsignFlag=1 and (kdflag=0 or billtype=1 or (kdflag=1 and receiveflag=1))"
  727.     End If
  728.     If BlChoice Then
  729. '        StrTemp = StrTemp + " and billtype=0"
  730.     Else
  731.         strTemp = strTemp + " and billtype=1"
  732.     End If
  733.     strTemp = strTemp + " and abs(recquantity)-abs(invquantity)>0"      '开票数量大于0
  734.     strTemp = strTemp + " order by warecode"
  735.     RsTemp.Open strTemp, Cw_DataEnvi.DataConnect, adOpenStatic, adLockReadOnly
  736.     With WglrGrid
  737.         .Clear 1
  738.         .Rows = .FixedRows + RsTemp.RecordCount
  739.         If RsTemp.RecordCount > 0 Then .Row = .FixedRows
  740.         Do While Not RsTemp.EOF
  741.                 .TextMatrix(.Row, 0) = "*"
  742.                 .TextMatrix(.Row, Sydz("001", GridStr(), Szzls)) = ""
  743.                 .TextMatrix(.Row, Sydz("002", GridStr(), Szzls)) = Trim(RsTemp.Fields("consigncode"))       '发货单
  744.                 .TextMatrix(.Row, Sydz("012", GridStr(), Szzls)) = Trim(RsTemp.Fields("consignbillmainid")) '发货单
  745.                 .TextMatrix(.Row, Sydz("003", GridStr(), Szzls)) = Trim(RsTemp.Fields("whname"))            '仓库
  746.                 .TextMatrix(.Row, Sydz("004", GridStr(), Szzls)) = Trim(RsTemp.Fields("warecode"))          '货物编码
  747.                 .TextMatrix(.Row, Sydz("005", GridStr(), Szzls)) = Trim(RsTemp.Fields("mname"))             '货物名称
  748.                 .TextMatrix(.Row, Sydz("006", GridStr(), Szzls)) = Trim(RsTemp.Fields("model"))             '规格
  749.                 .TextMatrix(.Row, Sydz("007", GridStr(), Szzls)) = Trim(RsTemp.Fields("saleunitname"))      '单位
  750.                 .TextMatrix(.Row, Sydz("008", GridStr(), Szzls)) = Val(RsTemp.Fields("Recquantity") & "")   '实收数量
  751.                 .TextMatrix(.Row, Sydz("009", GridStr(), Szzls)) = Val(RsTemp.Fields("Invquantity") & "")   '已开票数量
  752.                 .TextMatrix(.Row, Sydz("010", GridStr(), Szzls)) = ""                                       '开票数量
  753.                 .TextMatrix(.Row, Sydz("011", GridStr(), Szzls)) = Val(RsTemp.Fields("taxUnitPrice") & "")  '含税单价
  754.             TempCode = Trim(RsTemp.Fields("warecode"))
  755.             RsTemp.MoveNext
  756.             If RsTemp.EOF Then
  757.                 .AddItem ""
  758.                 .Row = .Row + 1
  759.                 .TextMatrix(.Row, Sydz("001", GridStr(), Szzls)) = "小计"
  760.                 .Cell(flexcpBackColor, .Row, 0, .Row, .Cols - 1) = Lab_Color(3).BackColor
  761.                 Exit Do
  762.             End If
  763.             If TempCode <> Trim(RsTemp.Fields("warecode")) Then
  764.                 .AddItem ""
  765.                 .Row = .Row + 1
  766.                 .TextMatrix(.Row, Sydz("001", GridStr(), Szzls)) = "小计"
  767.                 .Cell(flexcpBackColor, .Row, 0, .Row, .Cols - 1) = Lab_Color(3).BackColor
  768.             End If
  769.             .Row = .Row + 1
  770.         Loop
  771.     End With
  772. End Sub
  773. Private Sub Wbkcl()                                                 '文本框录入之前处理(根据实际情况)
  774.  Dim xswbrr As String
  775.  With WglrGrid
  776.     Zdlrqnr = Trim(.Text)
  777.     xswbrr = Trim(.Text)
  778.     
  779.     If GridBoolean(.Col, 3) Then   '列表框录入
  780.     
  781.        '填充列表框程序
  782.         Call FillCombo(YdCombo, GridStr(.Col, 5), xswbrr, 0)
  783.     Else
  784.        Wbkbhlock = True
  785.        
  786.          '====以下为用户自定义
  787.            Ydtext.Text = xswbrr
  788.          '====以上为用户自定义
  789.          
  790.        Wbkbhlock = False
  791.        Ydtext.SelStart = Len(Ydtext.Text)
  792.     End If
  793.  End With
  794. End Sub
  795. Private Function sjzdyxxpd(Dqpdwgh As Long, Dqpdwgl As Long)        '录入数据字段有效性判断,同时进行字段录入事后处理
  796.  Dim Str_JudgeText As String            '临时有效性判断字段内容
  797.  Dim Coljsq As Long                     '临时列计数器
  798.  Dim RecTemp As New ADODB.Recordset     '临时使用动态集
  799.  Dim Dbl_Qcye As Double                 '临时期初余额
  800.  
  801.  With WglrGrid
  802.     
  803.     '非录入状态有效性为合法
  804.     If Yxxpdlock Or .Row < .FixedRows Then
  805.        sjzdyxxpd = True
  806.        Exit Function
  807.     End If
  808.  
  809.      Str_JudgeText = Trim(.TextMatrix(Dqpdwgh, Dqpdwgl))
  810.      Select Case GridStr(Dqpdwgl, 1)
  811.          
  812.          '以下为自定义部分[
  813.                '1.放置字段有效性判断程序
  814.             Case "010"
  815.                 If Not Trim(Str_JudgeText) = "" Then
  816.                     If Not IsNumeric(Trim(.TextMatrix(Dqpdwgh, Sydz("010", GridStr(), Szzls)))) Then
  817.                         Tsxx = "数据格式有误!"
  818.                         Lrywlz = Sydz("010", GridStr(), Szzls)
  819.                         GoTo Lrcwcl
  820.                     End If
  821.                 If Val(.TextMatrix(Dqpdwgh, Sydz("008", GridStr(), Szzls))) < 0 Then
  822.                     .TextMatrix(Dqpdwgh, Sydz("010", GridStr(), Szzls)) = -Abs(.TextMatrix(Dqpdwgh, Sydz("010", GridStr(), Szzls)))
  823.                     Tsxx = "开票数量不能小于 "
  824.                 Else
  825.                     Tsxx = "开票数量不能大于 "
  826.                     .TextMatrix(Dqpdwgh, Sydz("010", GridStr(), Szzls)) = Abs(.TextMatrix(Dqpdwgh, Sydz("010", GridStr(), Szzls)))
  827.                 End If
  828.                 If Abs(.TextMatrix(Dqpdwgh, Sydz("008", GridStr(), Szzls))) - Abs(.TextMatrix(Dqpdwgh, Sydz("009", GridStr(), Szzls))) < Abs(.TextMatrix(Dqpdwgh, Sydz("010", GridStr(), Szzls))) Then
  829.                     Tsxx = Tsxx & Val(.TextMatrix(Dqpdwgh, Sydz("008", GridStr(), Szzls))) - Val(.TextMatrix(Dqpdwgh, Sydz("009", GridStr(), Szzls))) & "  "
  830.                     Lrywlz = Sydz("010", GridStr(), Szzls)
  831.                     GoTo Lrcwcl
  832.                 Else
  833.                     If Val(.TextMatrix(Dqpdwgh, Sydz("010", GridStr(), Szzls))) <> 0 Then
  834.                         .TextMatrix(Dqpdwgh, 1) = "*"
  835.                         .TextMatrix(Dqpdwgh, Sydz("001", GridStr(), Szzls)) = "*"
  836.                     Else
  837.                         .TextMatrix(Dqpdwgh, 1) = ""
  838.                         .TextMatrix(Dqpdwgh, Sydz("001", GridStr(), Szzls)) = ""
  839.                         .TextMatrix(Dqpdwgh, Sydz("010", GridStr(), Szzls)) = ""
  840.                     End If
  841.                     Call Sub_Total(Dqpdwgh)
  842.                 End If
  843.                 End If
  844.         End Select
  845.      
  846.      '字段录入正确后为零字段清空
  847.       Call Qkwlzd(Dqpdwgh, Dqpdwgl)
  848.     
  849.      sjzdyxxpd = True
  850.      Yxxpdlock = True
  851.      Exit Function
  852.  End With
  853.   
  854. Lrcwcl:    '录入错误处理
  855.   With WglrGrid
  856.       Call Xtxxts(Tsxx, 0, 1)
  857.       Changelock = True
  858.       .Select Dqpdwgh, Dqpdwgl
  859.       Changelock = False
  860.       Call xswbk
  861.       sjzdyxxpd = False
  862.       Exit Function
  863.    End With
  864. End Function
  865. Private Function Sjhzyxxpd(ByVal Yxxpdh As Long) As Boolean                  '录入数据行有效性判断,同时进行行处理
  866.  Dim Lrywlz As Long                     '录入错误列值
  867.  Dim RecTemp As New ADODB.Recordset     '临时使用动态集
  868.  Dim Sqlstr As String                   '临时查询字符串
  869.  Dim Dbl_Ori(1 To 12) As Double         '科目记录原数据
  870.  Dim Dbl_Now(1 To 12) As Double         '科目记录现数据
  871.  Dim Str_Ccode As String                '操作科目
  872.  Dim Rec_AccSum As New ADODB.Recordset  '科目总帐动态集
  873.  Dim Bln_Foreign As Boolean             '外币核算
  874.  Dim Lng_GridRow As Long                '定位科目所在网格行
  875.  
  876.  With WglrGrid
  877.   If Yxxpdh > (.Rows - .FixedRows) Then Exit Function
  878.   '行没有发生变化则不进行有效性判断
  879.   If Hyxxpdlock Then
  880.      Sjhzyxxpd = True
  881.      Exit Function
  882.   End If
  883.   
  884.    '以下为自定义部分[
  885.         '1.放置行有效性判断程序
  886.            '首先进行为空判断(固定不变)
  887.            For Jsqte = Qslz To .Cols - 1
  888.                If (GridInt(Jsqte, 5) = 1 And Len(Trim(.TextMatrix(Yxxpdh, Jsqte))) = 0) Or (GridInt(Jsqte, 5) = 2 And Val(Trim(.TextMatrix(Yxxpdh, Jsqte))) = 0) Then
  889.                   Tsxx = GridStr(Jsqte, 2)
  890.                   Lrywlz = Jsqte
  891.                   GoTo Lrcwcl
  892.                   Exit For
  893.                End If
  894.            Next Jsqte
  895.            
  896.          '<<]
  897.    '以上为自定义部分]
  898.  
  899.  Sjhzyxxpd = True
  900.  Hyxxpdlock = True
  901.  Exit Function
  902. End With
  903. Lrcwcl:      '录入错误处理
  904.   With WglrGrid
  905.       Call Xtxxts(Tsxx, 0, 1)
  906.       Changelock = True
  907.       .Select Yxxpdh, Lrywlz
  908.       Changelock = False
  909.       Call xswbk
  910.       Sjhzyxxpd = False
  911.       Exit Function
  912.   End With
  913. End Function
  914. '===================以 下 程 序 为 通 用 部 分 ,一 般 不 需 更 改======================='
  915. Private Sub Lrzdbz()                                                      '录入字段帮助
  916.    If Not Ydcommand.Visible Then
  917.       Exit Sub
  918.    End If
  919.   Valilock = True
  920.   With WglrGrid
  921.        
  922.     Changelock = True        '调入另外窗体必须加锁
  923.        Call Drbmhelp(GridInt(.Col, 6), GridStr(.Col, 3), Trim(Ydtext.Text))
  924.     Changelock = False
  925.     If Len(Xtfhcs) <> 0 Then
  926.        If GridInt(.Col, 7) = 0 Then
  927.           Ydtext.Text = Xtfhcs
  928.        Else
  929.           Ydtext.Text = Xtfhcsfz
  930.        End If
  931.     End If
  932.         
  933.   Valilock = False
  934.   If Ydtext.Visible Then
  935.     Ydtext.SetFocus
  936.   End If
  937.  End With
  938. End Sub
  939. Private Sub Form_Resize()                                                '窗体大小发生变化时,重新显示文本框
  940.    Call Cxxswbk
  941. End Sub
  942. Private Function Fun_Drfrmyxxpd() As Boolean                             '调入其它窗体或功能产生的有效性判断(包括数据回写)
  943.   Fun_Drfrmyxxpd = True
  944.   With WglrGrid
  945.    
  946.    '如果当前网格处于编辑状态,则先进行数据回写再进行有效性判断
  947.   
  948.    If Ydtext.Visible Or YdCombo.Visible Then
  949.         Call Lrsjhx
  950.         If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then
  951.            Fun_Drfrmyxxpd = False
  952.            Exit Function
  953.         End If
  954.    End If
  955.    
  956.    '进行行有效性判断
  957.    If Not Sjhzyxxpd(.Row) Then
  958.       Fun_Drfrmyxxpd = False
  959.       Exit Function
  960.    End If
  961.    
  962.   End With
  963. End Function
  964. Private Sub Option1_Click()
  965.     Flag.Text = "0"
  966.     Call Sub_Query
  967. End Sub
  968. Private Sub Option2_Click()
  969.     Flag.Text = "1"
  970.     Call Sub_Query
  971. End Sub
  972. Private Sub WglrGrid_GotFocus()                                     '网格得到焦点
  973.   '网格得到焦点,如果当前选择行为非数据行
  974.   '则调整当前焦点至有效数据行
  975.     With WglrGrid
  976.       If .Row < .FixedRows And .Rows > .FixedRows Then
  977.          Changelock = True
  978.           .Select .FixedRows, .Col
  979.          Changelock = False
  980.       End If
  981.       If .Col < Qslz Then
  982.          Changelock = True
  983.           .Select .Row, Qslz
  984.          Changelock = False
  985.       End If
  986.     End With
  987. End Sub
  988. Private Sub WglrGrid_LostFocus()                                    '录入网格失去焦点
  989.   '用以屏蔽调用其它窗体时发生网格失去焦点事件
  990.   If Changelock Then
  991.      Exit Sub
  992.   End If
  993.   '引发网格RowcolChange事件
  994.   With WglrGrid
  995.     If Not (Ydtext.Visible Or YdCombo.Visible) Then
  996.        .Select 0, 0
  997.     End If
  998.   End With
  999. End Sub
  1000. Private Sub WglrGrid_AfterScroll(ByVal OldTopRow As Long, ByVal OldLeftCol As Long, ByVal NewTopRow As Long, ByVal NewLeftCol As Long)                                       '限制用户在录入过程中滚动鼠标
  1001.  If Gdtlock Then
  1002.     Exit Sub
  1003.  End If
  1004.  
  1005.  With WglrGrid
  1006.   If Ydtext.Visible Or YdCombo.Visible Then
  1007.      Gdtlock = True
  1008.      .TopRow = Dqtoprow
  1009.      .LeftCol = Dqleftcol
  1010.      Gdtlock = False
  1011.      Exit Sub
  1012.   End If
  1013.   
  1014.  End With
  1015. End Sub
  1016. Private Sub WglrGrid_LeaveCell()                                    '离开单元格
  1017.   If Changelock Then
  1018.      Exit Sub
  1019.   End If
  1020.   '记录刚刚离开网格单元的行列值
  1021.   Dqlkwgh = WglrGrid.Row
  1022.   Dqlkwgl = WglrGrid.Col
  1023.   '判断是否需要录入数据回写
  1024.   If Not (Ydtext.Visible Or YdCombo.Visible) Then
  1025.      Exit Sub
  1026.   End If
  1027.   Call Lrsjhx
  1028. End Sub
  1029. Private Sub WglrGrid_RowColChange()                                '网格录入行列发生变化时,进行有效性判断
  1030.    Valilock = True       '屏蔽文本框失去焦点进行有效性判断
  1031.    With WglrGrid
  1032.      If Changelock Then
  1033.         Exit Sub
  1034.      End If
  1035.      If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then
  1036.         Exit Sub
  1037.      End If
  1038.      If .Row <> Dqlkwgh Then
  1039.         If Not Sjhzyxxpd(Dqlkwgh) Then
  1040.            Exit Sub
  1041.         End If
  1042.      End If
  1043.    End With
  1044.    Call fhyxh
  1045.    Call Xldql
  1046.    
  1047. End Sub
  1048. Private Sub WglrGrid_DblClick()          '鼠标双击网格显示文本框
  1049.     Dim Jsq As Integer
  1050.     Dim strTemp As String
  1051.     Dim DblTemp As Double
  1052.     Dim BlTemp As Boolean
  1053.     
  1054.     With WglrGrid
  1055.         If .TextMatrix(.Row, 0) = "*" Then
  1056.             If .Col <> Sydz("010", GridStr(), Szzls) Then
  1057.                 If Trim(.TextMatrix(.Row, Sydz("001", GridStr(), Szzls))) <> "*" And Abs(Val(.TextMatrix(.Row, Sydz("008", GridStr(), Szzls)))) - Abs(Val(.TextMatrix(.Row, Sydz("009", GridStr(), Szzls)))) > 0 Then
  1058.                     .TextMatrix(.Row, 1) = "*"
  1059.                     .TextMatrix(.Row, Sydz("001", GridStr(), Szzls)) = "*"
  1060.                     .TextMatrix(.Row, Sydz("010", GridStr(), Szzls)) = Val(.TextMatrix(.Row, Sydz("008", GridStr(), Szzls))) - Val(.TextMatrix(.Row, Sydz("009", GridStr(), Szzls)))
  1061.                 Else
  1062.                     .TextMatrix(.Row, 1) = ""
  1063.                     .TextMatrix(.Row, Sydz("001", GridStr(), Szzls)) = ""
  1064.                     .TextMatrix(.Row, Sydz("010", GridStr(), Szzls)) = ""
  1065.                 End If
  1066.                 Call Sub_Total(.Row)
  1067.             Else
  1068.                 Call xswbk
  1069.             End If
  1070.         End If
  1071.     End With
  1072. End Sub
  1073. Private Sub Ycwbk()                      '隐藏文本框,帮助按钮,列表组合框
  1074.  Valilock = True
  1075.    Ydtext.Visible = False
  1076.    YdCombo.Visible = False
  1077.    Ydcommand.Visible = False
  1078. End Sub
  1079. Private Sub YdCombo_KeyDown(KeyCode As Integer, Shift As Integer)        '列表框移动
  1080.   With WglrGrid
  1081.     Select Case KeyCode
  1082.       Case vbKeyEscape                'ESC 键放弃录入
  1083.            Valilock = True
  1084.             .SetFocus
  1085.             Call Ycwbk
  1086.            Valilock = False
  1087.       Case vbKeyReturn                '回 车 键 =13
  1088.            KeyCode = 0
  1089.            .SetFocus
  1090.            Call Lrsjhx
  1091.            Rowjsq = .Row
  1092.            Coljsq = .Col + 1
  1093.            If Coljsq > .Cols - 1 Then
  1094.               If Rowjsq < .Rows - 1 Then
  1095.                  Rowjsq = Rowjsq + 1
  1096.               End If
  1097.               Coljsq = Qslz
  1098.            End If
  1099.            Do While Rowjsq <= .Rows - 1
  1100.               If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1101.                  Coljsq = Coljsq + 1
  1102.                  If Coljsq > .Cols - 1 Then
  1103.                     Rowjsq = Rowjsq + 1
  1104.                     Coljsq = Qslz
  1105.                  End If
  1106.               Else
  1107.                  Exit Do
  1108.               End If
  1109.             Loop
  1110.             .Select Rowjsq, Coljsq
  1111.        Case vbKeyLeft                  '左 箭 头 =37
  1112.            If .Col - 1 = Qslz Then
  1113.               If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1114.                  GoTo jzzx
  1115.               End If
  1116.            End If
  1117.            If .Col > Qslz Then
  1118.               KeyCode = 0
  1119.               .SetFocus
  1120.               Call Lrsjhx
  1121.               Coljsq = .Col - 1
  1122.               Do While Coljsq > Qslz
  1123.                  If Coljsq - 1 = Qslz Then
  1124.                     If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1125.                        GoTo jzzx
  1126.                     End If
  1127.                  End If
  1128.                  If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1129.                     Coljsq = Coljsq - 1
  1130.                  Else
  1131.                       Exit Do
  1132.                  End If
  1133.                Loop
  1134.                .Select .Row, Coljsq
  1135.            End If
  1136.       Case vbKeyRight                 '右 箭 头 =39
  1137.             KeyCode = 0
  1138.             .SetFocus
  1139.             Call Lrsjhx
  1140.              Rowjsq = .Row
  1141.              Coljsq = .Col + 1
  1142.              If Coljsq > .Cols - 1 Then
  1143.                 If Rowjsq < .Rows - 1 Then
  1144.                    Rowjsq = Rowjsq + 1
  1145.                 End If
  1146.                 Coljsq = Qslz
  1147.              End If
  1148.              Do While Rowjsq <= .Rows - 1
  1149.                 If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1150.                    Coljsq = Coljsq + 1
  1151.                    If Coljsq > .Cols - 1 Then
  1152.                       Rowjsq = Rowjsq + 1
  1153.                       Coljsq = Qslz
  1154.                    End If
  1155.                 Else
  1156.                    Exit Do
  1157.                 End If
  1158.               Loop
  1159.               .Select Rowjsq, Coljsq
  1160.       Case Else
  1161.    End Select
  1162.    
  1163. jzzx:
  1164.    
  1165.  End With
  1166. End Sub
  1167. Private Sub YdCombo_LostFocus()
  1168.   With WglrGrid                                    '因为选中网格会先发生Rowcolchange事件置Valiock
  1169.     If Not Valilock Then                           '为TRUE
  1170.        Call Lrsjhx
  1171.        If Not Sjhzyxxpd(Dqlrwgh) Then
  1172.           Exit Sub
  1173.        End If
  1174.     End If
  1175.   End With
  1176. End Sub
  1177. Private Sub Ydcommand_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  1178.    Call Lrzdbz
  1179. End Sub
  1180. Private Sub ydtext_KeyDown(KeyCode As Integer, Shift As Integer)
  1181.    Dim Rowjsq As Long, Coljsq As Long
  1182.   With WglrGrid
  1183.     Select Case KeyCode
  1184.       Case vbKeyF2
  1185.            Call Lrzdbz
  1186.       Case vbKeyEscape                'ESC 键放弃录入
  1187.            Valilock = True
  1188.             Call Ycwbk
  1189.            .SetFocus
  1190.       Case vbKeyReturn                '回 车 键 =13
  1191.            KeyCode = 0
  1192.            .SetFocus
  1193.            Call Lrsjhx
  1194.            Rowjsq = .Row
  1195.            Coljsq = .Col + 1
  1196.            If Coljsq > .Cols - 1 Then
  1197.               If Rowjsq < .Rows - 1 Then
  1198.                  Rowjsq = Rowjsq + 1
  1199.               End If
  1200.               Coljsq = Qslz
  1201.            End If
  1202.            Do While Rowjsq <= .Rows - 1
  1203.               If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1204.                  Coljsq = Coljsq + 1
  1205.                  If Coljsq > .Cols - 1 Then
  1206.                     Rowjsq = Rowjsq + 1
  1207.                     Coljsq = Qslz
  1208.                  End If
  1209.               Else
  1210.                  Exit Do
  1211.               End If
  1212.             Loop
  1213.             If Rowjsq <= .Rows - 1 Then
  1214.                .Select Rowjsq, Coljsq
  1215.             End If
  1216.       Case vbKeyUp                    '上 箭 头 =38
  1217.            KeyCode = 0
  1218.            .SetFocus
  1219.            Call Lrsjhx
  1220.            If .Row > .FixedRows Then
  1221.               .Row = .Row - 1
  1222.            End If
  1223.       Case vbKeyDown                  '下 箭 头 =40
  1224.            KeyCode = 0
  1225.            .SetFocus
  1226.            Call Lrsjhx
  1227.            If .Row < .Rows - 1 Then
  1228.               .Row = .Row + 1
  1229.            End If
  1230.        Case vbKeyLeft                  '左 箭 头 =37
  1231.            If .Col - 1 = Qslz Then
  1232.               If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1233.                  GoTo jzzx
  1234.               End If
  1235.            End If
  1236.            If Ydtext.SelStart = 0 And .Col > Qslz Then
  1237.               KeyCode = 0
  1238.               .SetFocus
  1239.               Call Lrsjhx
  1240.               Coljsq = .Col - 1
  1241.               Do While Coljsq > Qslz
  1242.                  If Coljsq - 1 = Qslz Then
  1243.                     If .ColHidden(Qslz) Or (Not GridBoolean(Qslz, 1)) Then
  1244.                        GoTo jzzx
  1245.                     End If
  1246.                  End If
  1247.                  If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1248.                     Coljsq = Coljsq - 1
  1249.                  Else
  1250.                       Exit Do
  1251.                  End If
  1252.                Loop
  1253.                .Select .Row, Coljsq
  1254.            End If
  1255. jzzx:
  1256.            
  1257.            
  1258.       Case vbKeyRight                 '右 箭 头 =39
  1259.             wblong = Len(Ydtext.Text)
  1260.             If (Ydtext.SelStart = wblong Or Ydtext.SelLength = wblong) Then
  1261.                KeyCode = 0
  1262.                .SetFocus
  1263.                Call Lrsjhx
  1264.                 Rowjsq = .Row
  1265.                 Coljsq = .Col + 1
  1266.                 If Coljsq > .Cols - 1 Then
  1267.                    If Rowjsq < .Rows - 1 Then
  1268.                       Rowjsq = Rowjsq + 1
  1269.                    End If
  1270.                    Coljsq = Qslz
  1271.                 End If
  1272.                 Do While Rowjsq <= .Rows - 1
  1273.                    If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1274.                       Coljsq = Coljsq + 1
  1275.                       If Coljsq > .Cols - 1 Then
  1276.                          Rowjsq = Rowjsq + 1
  1277.                          Coljsq = Qslz
  1278.                       End If
  1279.                    Else
  1280.                       Exit Do
  1281.                    End If
  1282.                  Loop
  1283.                  .Select Rowjsq, Coljsq
  1284.                End If
  1285.       Case Else
  1286.    End Select
  1287.  End With
  1288. End Sub
  1289. Private Sub ydtext_KeyPress(KeyAscii As Integer)         '录入字符事中控制
  1290.   Call InputFieldLimit(Ydtext, GridInt(WglrGrid.Col, 1), KeyAscii)
  1291. End Sub
  1292. Private Sub ydtext_Change()                              '录入事中变化处理
  1293.   '防止程序改变但不进行处理
  1294.   If Wbkbhlock Then
  1295.      Exit Sub
  1296.   End If
  1297.   With WglrGrid
  1298.     '限制字段录入长度
  1299.      Wbkbhlock = True
  1300.      Call TextChangeLimit(Ydtext, GridInt(.Col, 1))  '去掉无效字符
  1301.        Select Case GridInt(.Col, 1)
  1302.           Case 8
  1303.             Call Sjgskz(Ydtext, Xtjezws - Xtjexsws - 1, Xtjexsws)
  1304.           Case 9
  1305.             Call Sjgskz(Ydtext, Xtslzws - Xtslxsws - 1, Xtslxsws)
  1306.           Case 10
  1307.             Call Sjgskz(Ydtext, Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  1308.           Case Else
  1309.              If GridInt(.Col, 3) <> 0 Or GridInt(.Col, 4) <> 0 Then
  1310.                 Call Sjgskz(Ydtext, GridInt(.Col, 3), GridInt(.Col, 4))
  1311.              End If
  1312.        End Select
  1313.       Wbkbhlock = False
  1314.   End With
  1315. End Sub
  1316. Private Sub ydtext_LostFocus()            '如果由于选中网格之外的控件而发生有效性判断(选中网格会先发生Rowcolchange事件置Valiock为TRUE)
  1317.   With WglrGrid
  1318.     If Not Valilock Then
  1319.        Call Lrsjhx
  1320.        If Not sjzdyxxpd(Dqlrwgh, Dqlrwgl) Then
  1321.           Exit Sub
  1322.        End If
  1323.        If Not Sjhzyxxpd(Dqlrwgh) Then
  1324.           Exit Sub
  1325.        End If
  1326.     End If
  1327.   End With
  1328. End Sub
  1329. Private Sub xswbk()                       '在当前选中单元显示文本框,列表框,帮助按钮(通用)
  1330.   Dim Wbkpy As Integer, Wbkpy1 As Integer '文本框偏移量
  1331.   
  1332.   '如果单据操作状态为浏览状态则不能显示录入载体
  1333.    If Trim(Lab_OperStatus.Caption) = "1" Then
  1334.       Exit Sub
  1335.    End If
  1336.    
  1337.        
  1338.   '显示文本框前返回有效行列(解决滚动条问题)
  1339.   Call Xldqh
  1340.   Call Xldql
  1341.   
  1342.   '隐藏文本框,帮助按钮,列表组合框
  1343.   Call Ycwbk
  1344.   
  1345.     With WglrGrid
  1346.         Dqlrwgh = .Row
  1347.         Dqlrwgl = .Col
  1348.         If Not GridBoolean(.Col, 1) Or .Row < .FixedRows Then
  1349.            Exit Sub
  1350.         End If
  1351.          
  1352.         Wbkpy = 30
  1353.         Wbkpy1 = 15
  1354.         On Error Resume Next
  1355.     
  1356.     If GridBoolean(.Col, 3) Then
  1357.        YdCombo.Left = .CellLeft + .Left + Wbkpy
  1358.        YdCombo.Top = .CellTop + .Top + Wbkpy
  1359.        YdCombo.Width = .CellWidth - Wbkpy1
  1360.        Call Wbkcl
  1361.        YdCombo.Visible = True
  1362.        YdCombo.SetFocus
  1363.        Ydcommand.Visible = False
  1364.        Ydtext.Visible = False
  1365.     Else
  1366.       If GridBoolean(.Col, 2) Then
  1367.         Ydcommand.Left = .Left + .CellLeft + .CellWidth - Ydcommand.Width + Wbkpy
  1368.         Ydcommand.Top = .Top + .CellTop + .CellHeight - Ydcommand.Height + Wbkpy
  1369.         Ydcommand.Visible = True
  1370.       Else
  1371.         Ydcommand.Visible = False
  1372.       End If
  1373.      
  1374.       Ydtext.Left = .CellLeft + .Left + Wbkpy
  1375.       Ydtext.Top = .CellTop + .Top + Wbkpy
  1376.       If Ydcommand.Visible Then
  1377.         If Sfblbzkd Then
  1378.          Ydtext.Width = .CellWidth - Ydcommand.Width
  1379.         Else
  1380.          Ydtext.Width = .CellWidth - Wbkpy1
  1381.         End If
  1382.       Else
  1383.          Ydtext.Width = .CellWidth - Wbkpy1
  1384.       End If
  1385.       Ydtext.Height = .CellHeight - Wbkpy1
  1386.       
  1387.       If GridInt(.Col, 2) <> 0 Then
  1388.          Ydtext.MaxLength = GridInt(.Col, 2)
  1389.       Else
  1390.          Ydtext.MaxLength = 3000
  1391.       End If
  1392.       
  1393.       Call Wbkcl
  1394.       
  1395.       Ydtext.Visible = True
  1396.       Ydtext.SetFocus
  1397.     End If
  1398.     Dqtoprow = .TopRow
  1399.     Dqleftcol = .LeftCol
  1400.     
  1401.     '重置锁值
  1402.     Valilock = False
  1403.     Wbkbhlock = False
  1404.  End With
  1405. End Sub
  1406. Private Sub Cxxswbk()                                                  'Formresize中重新显示文本框,列表框,帮助按钮(通用)
  1407.                    
  1408.   Dim Wbkpy As Integer, Wbkpy1 As Integer
  1409.   Wbkpy = 30
  1410.   Wbkpy1 = 15
  1411.   With WglrGrid
  1412.      If YdCombo.Visible Then
  1413.        YdCombo.Left = .CellLeft + .Left + Wbkpy
  1414.        YdCombo.Top = .CellTop + .Top + Wbkpy
  1415.        YdCombo.Width = .CellWidth - Wbkpy1
  1416.      End If
  1417.      If Ydcommand.Visible Then
  1418.        Ydcommand.Left = .Left + .CellLeft + .CellWidth - Ydcommand.Width + Wbkpy
  1419.        Ydcommand.Top = .Top + .CellTop + .CellHeight - Ydcommand.Height + Wbkpy
  1420.      End If
  1421.      If Ydtext.Visible Then
  1422.        If Ydcommand.Visible Then
  1423.          If Sfblbzkd Then
  1424.          Ydtext.Width = .CellWidth - Ydcommand.Width
  1425.         Else
  1426.          Ydtext.Width = .CellWidth - Wbkpy1
  1427.         End If
  1428.        Else
  1429.          Ydtext.Width = .CellWidth - Wbkpy1
  1430.        End If
  1431.       
  1432.        Ydtext.Left = .CellLeft + .Left + Wbkpy
  1433.        Ydtext.Top = .CellTop + .Top + Wbkpy
  1434.        Ydtext.Height = .CellHeight - Wbkpy1
  1435.      End If
  1436.    End With
  1437. End Sub
  1438. Private Sub Lrsjhx()                                                   '文本框录入数据回写
  1439.   With WglrGrid
  1440.    If YdCombo.Visible Then
  1441.     .Text = Trim(YdCombo.Text)
  1442.    End If
  1443.    If Ydtext.Visible Then
  1444.     .Text = Trim(Ydtext.Text)
  1445.    End If
  1446.    
  1447.    '(如果字段录入内容发生变化,则打开有效性判断锁)
  1448.    If Zdlrqnr <> Trim(.Text) Then
  1449.       Yxxpdlock = False
  1450.       Hyxxpdlock = False
  1451.    End If
  1452.    
  1453.    '隐藏文本框,帮助按钮,列表组合框
  1454.    Call Ycwbk
  1455.    
  1456.   End With
  1457. End Sub
  1458. Private Sub WglrGrid_KeyPress(KeyAscii As Integer)                     '网格接受键盘录入
  1459.   Dim Str_ChangeTe As String    '临时交换内容
  1460.   Dim Coljsq As Long            '临时列计数器
  1461.   Dim Int_SaveKey As Integer    '保存KeyAscii值
  1462.   '如果单据操作状态为浏览状态则不能显示录入载体
  1463.   If Trim(Lab_OperStatus.Caption) = "1" Then
  1464.       Exit Sub
  1465.   End If
  1466.   
  1467.   Int_SaveKey = KeyAscii
  1468.   With WglrGrid
  1469.     '屏 蔽 回 车 键
  1470.    If KeyAscii = vbKeyReturn Then
  1471.        KeyAscii = 0
  1472.        Rowjsq = .Row
  1473.         Coljsq = .Col + 1
  1474.         If Coljsq > .Cols - 1 Then
  1475.            If Rowjsq < .Rows - 1 Then
  1476.               Rowjsq = Rowjsq + 1
  1477.            End If
  1478.            Coljsq = Qslz
  1479.         End If
  1480.         Do While Rowjsq <= .Rows - 1
  1481.            If .ColHidden(Coljsq) Or (Not GridBoolean(Coljsq, 1)) Then
  1482.               Coljsq = Coljsq + 1
  1483.               If Coljsq > .Cols - 1 Then
  1484.                  Rowjsq = Rowjsq + 1
  1485.                  Coljsq = Qslz
  1486.               End If
  1487.            Else
  1488.               Exit Do
  1489.            End If
  1490.         Loop
  1491.          
  1492.         If Rowjsq <= .Rows - 1 Then
  1493.            .Select Rowjsq, Coljsq
  1494.         End If
  1495.       Exit Sub
  1496.     End If
  1497.     '接受用户录入
  1498.   Select Case KeyAscii
  1499.      Case 0 To 32
  1500.           '显示录入载体
  1501.           Call xswbk
  1502.      Case Else
  1503.            '防止非编辑字段SendKeys()出现死循环
  1504.           If Not GridBoolean(.Col, 1) Or .Row < .FixedRows Then
  1505.              Exit Sub
  1506.           End If
  1507.           If GridBoolean(.Col, 3) Then
  1508.              '列表框录入
  1509.              Call xswbk
  1510.           Else
  1511.     
  1512.             Ydtext.Text = ""
  1513.             Call InputFieldLimit(Ydtext, GridInt(WglrGrid.Col, 1), KeyAscii)
  1514.             If KeyAscii = 0 Then
  1515.                Exit Sub
  1516.             End If
  1517.     
  1518.             '调入录入载体
  1519.             Call xswbk
  1520.             Ydtext.Text = ""
  1521.             Valilock = True
  1522.               SendKeys Chr(KeyAscii), wait
  1523.               DoEvents
  1524.             Valilock = False
  1525.           End If
  1526.      End Select
  1527.   End With
  1528. End Sub
  1529. Private Sub Qkwlzd(sjh As Long, Sjl As Long)                            '清空为零字段
  1530.   If Not GridBoolean(Sjl, 5) Then
  1531.      Exit Sub
  1532.   End If
  1533.   With WglrGrid
  1534.     If Val(Trim(.TextMatrix(sjh, Sjl))) = 0 Then
  1535.        .TextMatrix(sjh, Sjl) = ""
  1536.     End If
  1537.   End With
  1538. End Sub
  1539. Private Sub fhyxh()                                                     '返回录入数据有效行,同时让得到焦点网格可见
  1540.   With WglrGrid
  1541.    If .Row >= .FixedRows Then
  1542.       Call Xldqh
  1543.    End If
  1544.   End With
  1545. End Sub
  1546. Private Sub Xldqh() '显露当前行
  1547. On Error Resume Next
  1548.   Dim Toprowte As Long
  1549.   With WglrGrid
  1550.     Toprowte = 0
  1551.     Do While .CellTop + .RowHeight(.Row) + Fzxwghs * Sjhgd > .Height And .TopRow <> Toprowte
  1552.        Toprowte = .TopRow
  1553.        .TopRow = .TopRow + 1
  1554.     Loop
  1555.     Toprowte = 0
  1556.     Do While .CellTop < .FixedRows * .RowHeight(0) And .TopRow <> Toprowte
  1557.        Toprowte = .TopRow
  1558.        .TopRow = .TopRow - 1
  1559.     Loop
  1560.   End With
  1561. End Sub
  1562. Private Sub Xldql()                                                     '显露当前列
  1563.  Dim Leftcolte As Long
  1564.  With WglrGrid
  1565.    If .Col >= Qslz Then
  1566.     If .LeftCol > .Col Then
  1567.        .LeftCol = .Col
  1568.     End If
  1569.     Leftcolte = 0
  1570.     Do While .CellLeft + .CellWidth > .Width And .LeftCol <> Leftcolte
  1571.        Leftcolte = .LeftCol
  1572.        .LeftCol = .LeftCol + 1
  1573.     Loop
  1574.   End If
  1575.  End With
  1576. End Sub
  1577. Private Sub GsToolbar_ButtonClick(ByVal Button As MSComctlLib.Button)   '表格格式设置(通用)
  1578.     
  1579.     Select Case Button.Key
  1580.         Case "bcgs"                                          '保存表格格式
  1581.             Call Bcwggs(WglrGrid, GridCode, GridStr())
  1582.         Case "hfmrgs"                                        '恢复默认格式
  1583.             Call Hfmrgs(WglrGrid, GridCode, GridStr())
  1584.         Case "szxsxm"                                        '设置显示项目
  1585.             Call Szxsxm(WglrGrid, GridCode)
  1586.     End Select
  1587.     
  1588. End Sub
  1589. '************以下为文本框录入处理程序(固定不变部分)*************'
  1590. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  1591.   '以下为依据实际情况自定义部分[
  1592.   
  1593.       '在此填写文本框录入事后处理程序
  1594.    
  1595.   ']以上为依据实际情况自定义部分
  1596. End Sub
  1597. Private Sub LrText_Change(Index As Integer)
  1598.    '屏蔽程序改变控制
  1599.    If TextChangeLock Then
  1600.       Exit Sub
  1601.    End If
  1602.    
  1603.    TextValiJudgeLock(Index) = False    '打开有效性判断锁
  1604.     
  1605.     '限制字段录入长度
  1606.           
  1607.      TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  1608.     Call TextChangeLimit(LrText(Index), Textint(Index, 1))  '去掉无效字符
  1609.      
  1610.         Select Case Textint(Index, 1)
  1611.            Case 8           '金额型
  1612.              Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  1613.            Case 9           '数量型
  1614.              Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  1615.            Case 10          '单价型
  1616.              Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  1617.            Case Else        '其他小数类型控制
  1618.               If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  1619.                  Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  1620.               End If
  1621.         End Select
  1622.      TextChangeLock = False '解锁
  1623. End Sub
  1624. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  1625.    Call TextShow(Index)
  1626.    CurTextIndex = Index
  1627.    LrText(Index).SelStart = Len(LrText(Index))
  1628. End Sub
  1629. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  1630.    Select Case KeyCode
  1631.       Case vbKeyF2
  1632.         Call Text_Help(Index)
  1633.    End Select
  1634. End Sub
  1635. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  1636.    Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  1637. End Sub
  1638. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  1639.   If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  1640.      Call TextYxxpd(Index)
  1641.   End If
  1642. End Sub
  1643. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)     '按钮提供帮助
  1644.    Call Text_Help(Index)
  1645. End Sub
  1646. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  1647.   If Not Textboolean(Index, 1) Then
  1648.      Exit Sub
  1649.   End If
  1650.    TextValiJudgeLock(Index) = True
  1651.    
  1652.      '先进行有效性判断
  1653.      If Not TextYxxpd(CurTextIndex) Then
  1654.         Exit Sub
  1655.      End If
  1656.    
  1657.      Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  1658.      If Len(Xtfhcs) <> 0 Then
  1659.         If Textint(Index, 3) = 1 Then
  1660.            LrText(Index).Text = Xtfhcsfz
  1661.            LrText(Index).Tag = Xtfhcs
  1662.         Else
  1663.            LrText(Index).Text = Xtfhcs
  1664.            LrText(Index).Tag = Xtfhcsfz
  1665.         End If
  1666. '        Call Sub_Query
  1667.      End If
  1668.    TextValiJudgeLock(Index) = False
  1669.    LrText(Index).SetFocus
  1670. End Sub
  1671. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  1672.    '填写文本框得到焦点,进行相应信息处理程序
  1673.    
  1674. End Sub
  1675. Private Sub Wbkcsh()                          '录入文本框初始化
  1676.   Dim Jsqte As Integer
  1677.   
  1678.   '最大录入文本框索引值
  1679.   Max_Text_Index = Textvar(1)
  1680.   
  1681.   ReDim TextValiJudgeLock(Max_Text_Index)
  1682.   For Jsqte = 0 To Max_Text_Index
  1683.      
  1684.      If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then
  1685.         If Textboolean(Jsqte, 1) Then
  1686.             If Jsqte <> 0 And Not Textboolean(Jsqte, 3) Then
  1687.                 Load Ydcommand1(Jsqte)
  1688.             End If
  1689.             Ydcommand1(Jsqte).Visible = True
  1690.             Ydcommand1(Jsqte).Move LrText(Jsqte).Left + LrText(Jsqte).Width, LrText(Jsqte).Top
  1691.         End If
  1692.         TextChangeLock = True
  1693.          LrText(Jsqte).Text = ""
  1694.          LrText(Jsqte).Tag = ""
  1695.          If Textint(Jsqte, 5) <> 0 Then
  1696.             LrText(Jsqte).MaxLength = Textint(Jsqte, 5)
  1697.          End If
  1698.         TextChangeLock = False
  1699.      End If
  1700.      TextValiJudgeLock(Jsqte) = True
  1701.   Next Jsqte
  1702. End Sub
  1703. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  1704.   Dim Sqlstr As String
  1705.   Dim Findrec As ADODB.Recordset
  1706.   If TextValiJudgeLock(Index) Then    '文本框内容未曾改变不进行有效性判断
  1707.      TextYxxpd = True
  1708.      Exit Function
  1709.   End If
  1710.   If Trim(LrText(Index)) = "" Then
  1711.      LrText(Index).Tag = ""
  1712.      Call Wbklrwbcl(Index)
  1713.      TextValiJudgeLock(Index) = True
  1714.      TextYxxpd = True
  1715.      Exit Function
  1716.   End If
  1717.        Select Case Textint(Index, 4)
  1718.          Case 1      '编码型
  1719.             Sqlstr = Trim(Textstr(Index, 5))
  1720.             Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  1721.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  1722.             If Findrec.EOF Then
  1723.                Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  1724.                LrText(Index).SetFocus
  1725.                Exit Function
  1726.             Else
  1727.                Select Case Textint(Index, 3)
  1728.                  Case 0
  1729.                    If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1730.                       LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1731.                    End If
  1732.                     If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1733.                       LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1734.                    End If
  1735.                  Case 1
  1736.                    If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  1737.                       LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  1738.                    End If
  1739.                     If Len(Trim(Textstr(Index, 2))) <> 0 Then
  1740.                       LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  1741.                    End If
  1742.                End Select
  1743.             End If
  1744.          Case 2      '日期型
  1745.             If IsDate(LrText(Index).Text) Then
  1746.                LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  1747.              Else
  1748.                Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  1749.                Call Xtxxts(Tsxx, 0, 1)
  1750.                LrText(Index).SetFocus
  1751.                Exit Function
  1752.             End If
  1753.          Case 3      '其他类型
  1754.        End Select
  1755.        
  1756.                Call Sub_Query
  1757.                
  1758.    TextValiJudgeLock(Index) = True
  1759.    TextYxxpd = True
  1760. End Function
  1761. Private Sub Sub_Total(Dqh As Long)          '合计开票数量
  1762.     Dim Jsq As Integer
  1763.     Dim strTemp As String
  1764.     Dim DblTemp As Double
  1765.     Dim BlTemp As Boolean
  1766.     
  1767.     With WglrGrid
  1768.         strTemp = Trim(.TextMatrix(Dqh, Sydz("004", GridStr(), Szzls)))
  1769.         For Jsq = Dqh To .FixedRows Step -1
  1770.             If strTemp = Trim(.TextMatrix(Jsq, Sydz("004", GridStr(), Szzls))) Then
  1771.                 If Trim(.TextMatrix(Jsq, Sydz("001", GridStr(), Szzls))) = "*" Then BlTemp = True
  1772.                 DblTemp = DblTemp + Val(.TextMatrix(Jsq, Sydz("010", GridStr(), Szzls)))
  1773.             End If
  1774.         Next
  1775.         For Jsq = Dqh + 1 To .Rows - 1
  1776.             If strTemp = Trim(.TextMatrix(Jsq, Sydz("004", GridStr(), Szzls))) Then
  1777.                 If Trim(.TextMatrix(Jsq, Sydz("001", GridStr(), Szzls))) = "*" Then BlTemp = True
  1778.                 DblTemp = DblTemp + Val(.TextMatrix(Jsq, Sydz("010", GridStr(), Szzls)))
  1779.             Else
  1780.                 .TextMatrix(Jsq, Sydz("010", GridStr(), Szzls)) = DblTemp           '合计开票数量
  1781.                 .TextMatrix(Jsq, Sydz("011", GridStr(), Szzls)) = .TextMatrix(Jsq - 1, Sydz("011", GridStr(), Szzls))   '含税单价
  1782.                 If BlTemp Then
  1783.                     .TextMatrix(Jsq, 1) = "*"
  1784.                 Else
  1785.                     .TextMatrix(Jsq, 1) = ""
  1786.                 End If
  1787.                 Exit For
  1788.             End If
  1789.         Next
  1790.     End With
  1791. End Sub