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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form CL_PzAss 
  3.    Caption         =   "辅助核算项目"
  4.    ClientHeight    =   6495
  5.    ClientLeft      =   60
  6.    ClientTop       =   345
  7.    ClientWidth     =   6465
  8.    HelpContextID   =   130407
  9.    Icon            =   "处理_凭证辅助核算项目.frx":0000
  10.    KeyPreview      =   -1  'True
  11.    LinkTopic       =   "Form3"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   6495
  15.    ScaleWidth      =   6465
  16.    StartUpPosition =   1  'CenterOwner
  17.    Begin VB.CommandButton Ydcommand1 
  18.       Height          =   300
  19.       Index           =   1
  20.       Left            =   4650
  21.       Picture         =   "处理_凭证辅助核算项目.frx":1042
  22.       Style           =   1  'Graphical
  23.       TabIndex        =   43
  24.       Top             =   1050
  25.       Visible         =   0   'False
  26.       Width           =   300
  27.    End
  28.    Begin VB.TextBox LrText 
  29.       Height          =   300
  30.       Index           =   1
  31.       Left            =   1140
  32.       TabIndex        =   2
  33.       Text            =   "1"
  34.       Top             =   630
  35.       Width           =   3510
  36.    End
  37.    Begin VB.TextBox LrText 
  38.       Height          =   300
  39.       Index           =   0
  40.       Left            =   1140
  41.       TabIndex        =   1
  42.       Text            =   "0"
  43.       Top             =   210
  44.       Width           =   3510
  45.    End
  46.    Begin VB.TextBox LrText 
  47.       Height          =   300
  48.       Index           =   2
  49.       Left            =   1140
  50.       TabIndex        =   3
  51.       Text            =   "2"
  52.       Top             =   1050
  53.       Width           =   3510
  54.    End
  55.    Begin VB.TextBox LrText 
  56.       Height          =   300
  57.       Index           =   3
  58.       Left            =   1140
  59.       TabIndex        =   4
  60.       Text            =   "3"
  61.       Top             =   1485
  62.       Width           =   3510
  63.    End
  64.    Begin VB.TextBox LrText 
  65.       Height          =   300
  66.       Index           =   4
  67.       Left            =   1140
  68.       TabIndex        =   5
  69.       Text            =   "4"
  70.       Top             =   1935
  71.       Width           =   3510
  72.    End
  73.    Begin VB.TextBox LrText 
  74.       Height          =   300
  75.       Index           =   5
  76.       Left            =   1140
  77.       TabIndex        =   6
  78.       Text            =   "5"
  79.       Top             =   2370
  80.       Width           =   3510
  81.    End
  82.    Begin VB.TextBox LrText 
  83.       Height          =   300
  84.       Index           =   6
  85.       Left            =   1140
  86.       TabIndex        =   7
  87.       Text            =   "6"
  88.       Top             =   2805
  89.       Width           =   3510
  90.    End
  91.    Begin VB.TextBox LrText 
  92.       Height          =   300
  93.       Index           =   7
  94.       Left            =   1140
  95.       TabIndex        =   8
  96.       Text            =   "7"
  97.       Top             =   3240
  98.       Width           =   3510
  99.    End
  100.    Begin VB.TextBox LrText 
  101.       Height          =   300
  102.       Index           =   8
  103.       Left            =   1140
  104.       TabIndex        =   9
  105.       Text            =   "8"
  106.       Top             =   3660
  107.       Width           =   3510
  108.    End
  109.    Begin VB.TextBox LrText 
  110.       Height          =   300
  111.       Index           =   9
  112.       Left            =   1140
  113.       TabIndex        =   10
  114.       Text            =   "9"
  115.       Top             =   4080
  116.       Width           =   3510
  117.    End
  118.    Begin VB.TextBox LrText 
  119.       Height          =   300
  120.       Index           =   10
  121.       Left            =   1140
  122.       TabIndex        =   11
  123.       Text            =   "10"
  124.       Top             =   4515
  125.       Width           =   3510
  126.    End
  127.    Begin VB.CommandButton BcCommand 
  128.       Caption         =   "确定(&O)"
  129.       Height          =   300
  130.       Left            =   5130
  131.       TabIndex        =   15
  132.       Top             =   240
  133.       Width           =   1120
  134.    End
  135.    Begin VB.CommandButton QxCommand 
  136.       Cancel          =   -1  'True
  137.       Caption         =   "取消(&C)"
  138.       Height          =   300
  139.       Left            =   5130
  140.       TabIndex        =   24
  141.       Top             =   630
  142.       Width           =   1120
  143.    End
  144.    Begin VB.CommandButton Ydcommand1 
  145.       Height          =   300
  146.       Index           =   0
  147.       Left            =   4620
  148.       Picture         =   "处理_凭证辅助核算项目.frx":13CC
  149.       Style           =   1  'Graphical
  150.       TabIndex        =   23
  151.       Top             =   210
  152.       Visible         =   0   'False
  153.       Width           =   300
  154.    End
  155.    Begin VB.CommandButton Ydcommand1 
  156.       Height          =   300
  157.       Index           =   2
  158.       Left            =   3210
  159.       Picture         =   "处理_凭证辅助核算项目.frx":1756
  160.       Style           =   1  'Graphical
  161.       TabIndex        =   22
  162.       Top             =   1050
  163.       Visible         =   0   'False
  164.       Width           =   300
  165.    End
  166.    Begin VB.CommandButton Ydcommand1 
  167.       Height          =   300
  168.       Index           =   7
  169.       Left            =   4650
  170.       Picture         =   "处理_凭证辅助核算项目.frx":1AE0
  171.       Style           =   1  'Graphical
  172.       TabIndex        =   21
  173.       Top             =   3240
  174.       Visible         =   0   'False
  175.       Width           =   300
  176.    End
  177.    Begin VB.CommandButton Ydcommand1 
  178.       Height          =   300
  179.       Index           =   8
  180.       Left            =   4650
  181.       Picture         =   "处理_凭证辅助核算项目.frx":1E6A
  182.       Style           =   1  'Graphical
  183.       TabIndex        =   20
  184.       Top             =   3660
  185.       Visible         =   0   'False
  186.       Width           =   300
  187.    End
  188.    Begin VB.CommandButton Ydcommand1 
  189.       Height          =   300
  190.       Index           =   9
  191.       Left            =   4620
  192.       Picture         =   "处理_凭证辅助核算项目.frx":21F4
  193.       Style           =   1  'Graphical
  194.       TabIndex        =   19
  195.       Top             =   4080
  196.       Visible         =   0   'False
  197.       Width           =   300
  198.    End
  199.    Begin VB.CommandButton Ydcommand1 
  200.       Height          =   300
  201.       Index           =   10
  202.       Left            =   4620
  203.       Picture         =   "处理_凭证辅助核算项目.frx":257E
  204.       Style           =   1  'Graphical
  205.       TabIndex        =   18
  206.       Top             =   4530
  207.       Visible         =   0   'False
  208.       Width           =   300
  209.    End
  210.    Begin VB.TextBox LrText 
  211.       Height          =   300
  212.       Index           =   11
  213.       Left            =   1140
  214.       TabIndex        =   12
  215.       Text            =   "11"
  216.       Top             =   4965
  217.       Width           =   3510
  218.    End
  219.    Begin VB.TextBox LrText 
  220.       Height          =   300
  221.       Index           =   12
  222.       Left            =   1140
  223.       TabIndex        =   13
  224.       Text            =   "12"
  225.       Top             =   5400
  226.       Width           =   3510
  227.    End
  228.    Begin VB.CommandButton Ydcommand1 
  229.       Height          =   300
  230.       Index           =   12
  231.       Left            =   4650
  232.       Picture         =   "处理_凭证辅助核算项目.frx":2908
  233.       Style           =   1  'Graphical
  234.       TabIndex        =   17
  235.       Top             =   4950
  236.       Visible         =   0   'False
  237.       Width           =   300
  238.    End
  239.    Begin VB.CommandButton Ydcommand1 
  240.       Height          =   300
  241.       Index           =   13
  242.       Left            =   4650
  243.       Picture         =   "处理_凭证辅助核算项目.frx":2C92
  244.       Style           =   1  'Graphical
  245.       TabIndex        =   16
  246.       Top             =   5430
  247.       Visible         =   0   'False
  248.       Width           =   300
  249.    End
  250.    Begin VB.TextBox LrText 
  251.       Height          =   300
  252.       Index           =   13
  253.       Left            =   1140
  254.       TabIndex        =   14
  255.       Text            =   "13"
  256.       Top             =   5835
  257.       Width           =   3510
  258.    End
  259.    Begin VB.Label TsLabel 
  260.       BackStyle       =   0  'Transparent
  261.       Caption         =   "票号:"
  262.       Height          =   180
  263.       Index           =   1
  264.       Left            =   240
  265.       TabIndex        =   42
  266.       Top             =   690
  267.       Width           =   810
  268.    End
  269.    Begin VB.Label TsLabel 
  270.       BackStyle       =   0  'Transparent
  271.       Caption         =   "结算方式:"
  272.       Height          =   180
  273.       Index           =   0
  274.       Left            =   240
  275.       TabIndex        =   41
  276.       Top             =   270
  277.       Width           =   810
  278.    End
  279.    Begin VB.Label TsLabel 
  280.       BackStyle       =   0  'Transparent
  281.       Caption         =   "发生日期:"
  282.       Height          =   180
  283.       Index           =   2
  284.       Left            =   240
  285.       TabIndex        =   40
  286.       Top             =   1110
  287.       Width           =   810
  288.    End
  289.    Begin VB.Label TsLabel 
  290.       BackStyle       =   0  'Transparent
  291.       Caption         =   "数量:"
  292.       Height          =   180
  293.       Index           =   3
  294.       Left            =   240
  295.       TabIndex        =   39
  296.       Top             =   1560
  297.       Width           =   810
  298.    End
  299.    Begin VB.Label TsLabel 
  300.       BackStyle       =   0  'Transparent
  301.       Caption         =   "单价:"
  302.       Height          =   180
  303.       Index           =   4
  304.       Left            =   240
  305.       TabIndex        =   38
  306.       Top             =   2010
  307.       Width           =   810
  308.    End
  309.    Begin VB.Label TsLabel 
  310.       BackStyle       =   0  'Transparent
  311.       Caption         =   "外币金额:"
  312.       Height          =   180
  313.       Index           =   5
  314.       Left            =   240
  315.       TabIndex        =   37
  316.       Top             =   2460
  317.       Width           =   810
  318.    End
  319.    Begin VB.Label TsLabel 
  320.       BackStyle       =   0  'Transparent
  321.       Caption         =   "汇率:"
  322.       Height          =   180
  323.       Index           =   6
  324.       Left            =   270
  325.       TabIndex        =   36
  326.       Top             =   2880
  327.       Width           =   810
  328.    End
  329.    Begin VB.Label TsLabel 
  330.       BackStyle       =   0  'Transparent
  331.       Caption         =   "部门:"
  332.       Height          =   180
  333.       Index           =   7
  334.       Left            =   270
  335.       TabIndex        =   35
  336.       Top             =   3300
  337.       Width           =   810
  338.    End
  339.    Begin VB.Label TsLabel 
  340.       BackStyle       =   0  'Transparent
  341.       Caption         =   "往来客户:"
  342.       Height          =   180
  343.       Index           =   8
  344.       Left            =   270
  345.       TabIndex        =   34
  346.       Top             =   3720
  347.       Width           =   810
  348.    End
  349.    Begin VB.Label TsLabel 
  350.       BackStyle       =   0  'Transparent
  351.       Caption         =   "个人:"
  352.       Height          =   180
  353.       Index           =   9
  354.       Left            =   270
  355.       TabIndex        =   33
  356.       Top             =   4140
  357.       Width           =   810
  358.    End
  359.    Begin VB.Label TsLabel 
  360.       BackStyle       =   0  'Transparent
  361.       Caption         =   "项目:"
  362.       Height          =   180
  363.       Index           =   10
  364.       Left            =   270
  365.       TabIndex        =   32
  366.       Top             =   4590
  367.       Width           =   810
  368.    End
  369.    Begin VB.Label Lab_ItemClass 
  370.       AutoSize        =   -1  'True
  371.       BackStyle       =   0  'Transparent
  372.       ForeColor       =   &H00404040&
  373.       Height          =   180
  374.       Left            =   6210
  375.       TabIndex        =   31
  376.       Top             =   1590
  377.       Width           =   90
  378.    End
  379.    Begin VB.Label Lab_Measure 
  380.       AutoSize        =   -1  'True
  381.       BackStyle       =   0  'Transparent
  382.       ForeColor       =   &H00404040&
  383.       Height          =   180
  384.       Left            =   2640
  385.       TabIndex        =   30
  386.       Top             =   1860
  387.       Width           =   90
  388.    End
  389.    Begin VB.Label TsLabel 
  390.       BackStyle       =   0  'Transparent
  391.       Caption         =   "项目数量:"
  392.       Height          =   180
  393.       Index           =   11
  394.       Left            =   240
  395.       TabIndex        =   29
  396.       Top             =   5010
  397.       Width           =   810
  398.    End
  399.    Begin VB.Label Lab_ItemMeasure 
  400.       AutoSize        =   -1  'True
  401.       BackStyle       =   0  'Transparent
  402.       ForeColor       =   &H00404040&
  403.       Height          =   180
  404.       Left            =   5910
  405.       TabIndex        =   28
  406.       Top             =   2040
  407.       Width           =   90
  408.    End
  409.    Begin VB.Label Lab_ForeignName 
  410.       AutoSize        =   -1  'True
  411.       BackStyle       =   0  'Transparent
  412.       ForeColor       =   &H00404040&
  413.       Height          =   180
  414.       Left            =   2700
  415.       TabIndex        =   27
  416.       Top             =   2820
  417.       Width           =   90
  418.    End
  419.    Begin VB.Label TsLabel 
  420.       BackStyle       =   0  'Transparent
  421.       Caption         =   "供应商:"
  422.       Height          =   180
  423.       Index           =   12
  424.       Left            =   240
  425.       TabIndex        =   26
  426.       Top             =   5490
  427.       Width           =   810
  428.    End
  429.    Begin VB.Label TsLabel 
  430.       BackStyle       =   0  'Transparent
  431.       Caption         =   "经办人:"
  432.       Height          =   180
  433.       Index           =   13
  434.       Left            =   240
  435.       TabIndex        =   25
  436.       Top             =   5940
  437.       Width           =   810
  438.    End
  439.    Begin VB.Label lab_GridRow 
  440.       Height          =   405
  441.       Left            =   7980
  442.       TabIndex        =   0
  443.       Top             =   1080
  444.       Width           =   765
  445.    End
  446. End
  447. Attribute VB_Name = "CL_PzAss"
  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. '*    最后修改人  : 杨波
  458. '*    最后修改时间:2001/12/20
  459. '*    备        注:
  460. '*
  461. '*    1.对于网格列存储内容
  462. '*      0-行有效标识 1-结算方式编码 2-结算方式名称 3-票号 4-发生日期 5-数量 6-单价
  463. '*      7-计量单位 8-外币编码 9-外币名称 10-汇率 11-部门编码 12-部门名称 13-单位编码
  464. '*      14-单位名称  15-职员编码 16-职员名称 17-项目大类编码 18-项目大类名称
  465. '*      19-项目编码 20-项目名称 21-项目数量 22-项目计量单位
  466. '************************************************************************************
  467.  
  468. Dim Rectemp As New ADODB.Recordset       '临时使用动态集
  469. Dim jdzygs As Integer                    '控件焦点转移个数
  470. Dim Tsxx As String                       '系统提示信息
  471. Dim Bln_FirstTab As Boolean              '是否首次产生Tab键(主要用来判断Tab键是否由填置凭证窗体引起)
  472.   
  473. '以下为固定使用变量(文本框)
  474. Dim Textvar() As Variant                 '存储变体型文本框信息
  475. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  476. Dim Textint() As Integer                 '存储整型文本框信息
  477. Dim Textstr() As String                  '存储字符型文本框信息
  478. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  479. Dim TextGroupCode As String              '文本框录入分组编码
  480. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  481. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  482. Dim CurTextIndex As Integer              '当前文本框索引值
  483. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  484. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  485. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  486.     
  487.     Dim jdzygs As Integer
  488.     
  489.    jdzygs = 20
  490.    Select Case KeyAscii
  491.       Case vbKeyReturn
  492.            If Kjjdzy(jdzygs) Then
  493.               KeyAscii = 0
  494.            End If
  495.       Case 39           '屏蔽"'"
  496.         KeyAscii = 0
  497.    End Select
  498.    
  499. End Sub
  500. '[ZJZ Begin 改进由填制凭证窗体引发的焦点转移 2001-06-16
  501. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  502.   
  503.   If Bln_FirstTab Then
  504.      For Jsqte = 0 To Max_Text_Index
  505.          If LrText(Jsqte).Visible And LrText(Jsqte).Enabled Then
  506.             LrText(Jsqte).SetFocus
  507.             Exit For
  508.          End If
  509.      Next Jsqte
  510.   End If
  511.   Bln_FirstTab = False
  512. End Sub
  513. '[ZJZ End
  514. Private Sub Form_Load()
  515.   
  516.     '以下为文本框处理程序
  517.   
  518.     TextGroupCode = "chhs_Ass"
  519.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  520.     Call Wbkcsh
  521.     Bln_FirstTab = True
  522.    
  523. End Sub
  524.  
  525. Private Function Bclrsj() As Boolean                   '判断录入数据有效性,并保存数据
  526.   Dim Jsqte As Integer
  527.   Dim Int_GridRow As Integer     '数据回写网格行
  528.   
  529.     For Jsqte = 0 To Max_Text_Index
  530.         If Textint(Jsqte, 8) = 1 And LrText(Jsqte).Visible Then     '字段不能为空
  531.            If Len(Trim(LrText(Jsqte).Text)) = 0 Then
  532.               Tsxx = Textstr(Jsqte, 7) & "不能为空!"
  533.                Call Xtxxts(Tsxx, 0, 1)
  534.                LrText(Jsqte).SetFocus
  535.                Bclrsj = False
  536.                Exit Function
  537.            End If
  538.         Else
  539.           If Textint(Jsqte, 8) = 2 And LrText(Jsqte).Visible Then   '字段不能为零
  540.            If Val(Trim(LrText(Jsqte).Text)) = 0 Then
  541.                Tsxx = Textstr(Jsqte, 7) & "不能为零!"
  542.                Call Xtxxts(Tsxx, 0, 1)
  543.                LrText(Jsqte).SetFocus
  544.                Bclrsj = False
  545.                Exit Function
  546.            End If
  547.           End If
  548.         End If
  549.     Next Jsqte
  550.    '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  551.   For Jsqte = 0 To Max_Text_Index
  552.     If (Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2) And LrText(Jsqte).Visible Then
  553.       If Not TextYxxpd(Jsqte) Then
  554.          Exit Function
  555.       End If
  556.     End If
  557.   Next Jsqte
  558.   '如项目核算数量,则项目数量不能为零
  559.   If Len(Trim(Lab_ItemMeasure)) <> 0 And Val(LrText(11)) = 0 Then
  560.      Tsxx = "此项目核算数量,则项目数量不能为零!"
  561.      Call Xtxxts(Tsxx, 0, 1)
  562.      LrText(11).SetFocus
  563.      Exit Function
  564.   End If
  565.   Int_GridRow = Val(lab_GridRow)
  566.   With CL_PzFrm
  567.     For Jsqte = 0 To Max_Text_Index
  568.      If LrText(Jsqte).Visible Then
  569.         Select Case Jsqte
  570.           Case 0   '结算方式
  571.             .WglrGrid.TextMatrix(Int_GridRow, 1) = Trim(LrText(Jsqte).Tag)
  572.             .WglrGrid.TextMatrix(Int_GridRow, 2) = Trim(LrText(Jsqte).Text)
  573.           Case 1   '票号
  574.             .WglrGrid.TextMatrix(Int_GridRow, 3) = Trim(LrText(Jsqte).Text)
  575.           Case 2   '发生日期
  576.               .WglrGrid.TextMatrix(Int_GridRow, 4) = Trim(LrText(Jsqte).Text)
  577.           Case 3   '数量
  578.               .WglrGrid.TextMatrix(Int_GridRow, 5) = Val(LrText(Jsqte).Text)
  579.           Case 4   '单价
  580.               .WglrGrid.TextMatrix(Int_GridRow, 6) = Val(LrText(Jsqte).Text)
  581.           Case 5   '外币金额
  582.               .WglrGrid.TextMatrix(Int_GridRow, 10) = Trim(LrText(Jsqte).Text)
  583.           Case 6     '汇率
  584.               .WglrGrid.TextMatrix(Int_GridRow, 11) = Trim(LrText(Jsqte).Text)
  585.           Case 7     '部门
  586.               .WglrGrid.TextMatrix(Int_GridRow, 12) = Trim(LrText(Jsqte).Tag)
  587.               .WglrGrid.TextMatrix(Int_GridRow, 13) = Trim(LrText(Jsqte).Text)
  588.           Case 8     '客户
  589.               .WglrGrid.TextMatrix(Int_GridRow, 14) = Trim(LrText(Jsqte).Tag)
  590.               .WglrGrid.TextMatrix(Int_GridRow, 15) = Trim(LrText(Jsqte).Text)
  591.           Case 9     '个人
  592.               .WglrGrid.TextMatrix(Int_GridRow, 16) = Trim(LrText(Jsqte).Tag)
  593.               .WglrGrid.TextMatrix(Int_GridRow, 17) = Trim(LrText(Jsqte).Text)
  594.           Case 10     '项目
  595.               .WglrGrid.TextMatrix(Int_GridRow, 20) = Trim(LrText(Jsqte).Tag)
  596.               .WglrGrid.TextMatrix(Int_GridRow, 21) = Trim(LrText(Jsqte).Text)
  597.           Case 11     '项目数量
  598.              If Len(Trim(Lab_ItemMeasure)) <> 0 Then
  599.               .WglrGrid.TextMatrix(Int_GridRow, 22) = Trim(LrText(Jsqte).Text)
  600.               .WglrGrid.TextMatrix(Int_GridRow, 23) = Trim(Lab_ItemMeasure)
  601.              Else
  602.               .WglrGrid.TextMatrix(Int_GridRow, 22) = ""
  603.               .WglrGrid.TextMatrix(Int_GridRow, 23) = ""
  604.              End If
  605.           Case 12      '供应商
  606.               .WglrGrid.TextMatrix(Int_GridRow, 25) = Trim(LrText(Jsqte).Tag)
  607.               .WglrGrid.TextMatrix(Int_GridRow, 26) = Trim(LrText(Jsqte).Text)
  608.           Case 13     '经办人
  609.              .WglrGrid.TextMatrix(Int_GridRow, 24) = Trim(LrText(Jsqte).Text)
  610.        End Select
  611.      End If
  612.   Next Jsqte
  613.  End With
  614.  Bclrsj = True
  615.   
  616. End Function
  617. Private Sub BcCommand_Click()                                           '保 存
  618.   If Not Bclrsj Then
  619.      Exit Sub
  620.   End If
  621.   Unload Me
  622. End Sub
  623. Private Sub QxCommand_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)       '取消
  624.   '避免执行Click程序
  625.   Bln_Cancel = True
  626.   
  627.   Call Sub_Cancel
  628. End Sub
  629. Private Sub QxCommand_Click()                                                                         '取消
  630.  If Bln_Cancel Then
  631.     Bln_Cancel = False
  632.     Exit Sub
  633.  End If
  634.  
  635.  Call Sub_Cancel
  636. End Sub
  637. Private Sub Sub_Cancel()                                                                                  '取消
  638.   '文本框加锁
  639.   For Jsqte = 0 To Max_Text_Index
  640.      TextValiJudgeLock(Jsqte) = True
  641.   Next Jsqte
  642.   Unload Me
  643. End Sub
  644. '************以下为文本框录入处理程序(固定不变部分)*************'
  645. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  646.   '以下为依据实际情况自定义部分[
  647.   
  648.       '在此填写文本框录入事后处理程序
  649.    
  650.   ']以上为依据实际情况自定义部分
  651. End Sub
  652. Private Sub LrText_Change(Index As Integer)
  653.    '屏蔽程序改变控制
  654.    If TextChangeLock Then
  655.       Exit Sub
  656.    End If
  657.    
  658.    TextValiJudgeLock(Index) = False    '打开有效性判断锁
  659.     
  660.     '限制字段录入长度
  661.           
  662.      TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  663.         Select Case Textint(Index, 1)
  664.            Case 8           '金额型
  665.              Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  666.            Case 9           '数量型
  667.              Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  668.            Case 10          '单价型
  669.              Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  670.            Case Else        '其他小数类型控制
  671.               If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  672.                  Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  673.               End If
  674.         End Select
  675.      TextChangeLock = False '解锁
  676. End Sub
  677. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  678.    Call TextShow(Index)
  679.    CurTextIndex = Index
  680.    LrText(Index).SelStart = Len(LrText(Index))
  681. End Sub
  682. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  683.    Select Case KeyCode
  684.       Case vbKeyF2
  685.         Call Text_Help(Index)
  686.    End Select
  687. End Sub
  688. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  689.    Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  690. End Sub
  691. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  692.   If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  693.      Call TextYxxpd(Index)
  694.   End If
  695. End Sub
  696. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)     '按钮提供帮助
  697.    
  698.    Call Text_Help(Index)
  699.   
  700. End Sub
  701. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  702.   If Not Textboolean(Index, 1) Then
  703.      Exit Sub
  704.   End If
  705.    TextValiJudgeLock(Index) = True
  706.    
  707.      '先进行有效性判断
  708.      If Not TextYxxpd(CurTextIndex) Then
  709.         Exit Sub
  710.      End If
  711.      
  712.      If Index = 10 Then        '核算项目特殊处理
  713.         Xtcdcs = Trim(LrText(Index).Text)
  714.         Xtcdcsfz = Lab_ItemClass.Tag
  715.         XT_ItemHelp.Show 1
  716.      Else
  717.         Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  718.      End If
  719.      If Len(Xtfhcs) <> 0 Then
  720.         If Textint(Index, 3) = 1 Then
  721.            LrText(Index).Text = Xtfhcsfz
  722.            LrText(Index).Tag = Xtfhcs
  723.         Else
  724.            LrText(Index).Text = Xtfhcs
  725.            LrText(Index).Tag = Xtfhcsfz
  726.         End If
  727.        
  728.      End If
  729.    TextValiJudgeLock(Index) = False
  730.    LrText(Index).SetFocus
  731. End Sub
  732. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  733.    '填写文本框得到焦点,进行相应信息处理程序
  734.    
  735. End Sub
  736. Private Sub Wbkcsh()                          '录入文本框初始化
  737.   Dim Jsqte As Integer
  738.   
  739.   '最大录入文本框索引值
  740.   Max_Text_Index = Textvar(1)
  741.   
  742.   ReDim TextValiJudgeLock(Max_Text_Index)
  743.   For Jsqte = 0 To Max_Text_Index
  744.      
  745.      If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then
  746.         If Textboolean(Jsqte, 1) Then
  747.             If Jsqte <> 0 And Not Textboolean(Jsqte, 3) Then
  748.                 Load Ydcommand1(Jsqte)
  749.             End If
  750.             Ydcommand1(Jsqte).Visible = True
  751.             Ydcommand1(Jsqte).Move LrText(Jsqte).Left + LrText(Jsqte).Width, LrText(Jsqte).Top
  752.         End If
  753.         TextChangeLock = True
  754.          LrText(Jsqte).Text = ""
  755.          LrText(Jsqte).Tag = ""
  756.          If Textint(Jsqte, 5) <> 0 Then
  757.             LrText(Jsqte).MaxLength = Textint(Jsqte, 5)
  758.          End If
  759.         TextChangeLock = False
  760.      End If
  761.      TextValiJudgeLock(Jsqte) = True
  762.   Next Jsqte
  763. End Sub
  764. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  765.   Dim SqlStr As String
  766.   Dim Findrec As ADODB.Recordset
  767.   If TextValiJudgeLock(Index) Then    '文本框内容未曾改变不进行有效性判断
  768.      TextYxxpd = True
  769.      Exit Function
  770.   End If
  771.   If Trim(LrText(Index)) = "" Then
  772.      LrText(Index).Tag = ""
  773.      Call Wbklrwbcl(Index)
  774.      TextValiJudgeLock(Index) = True
  775.      TextYxxpd = True
  776.      Exit Function
  777.   End If
  778.        Select Case Textint(Index, 4)
  779.          Case 1      '编码型
  780.             SqlStr = Trim(Textstr(Index, 5))
  781.             SqlStr = Replace(SqlStr, "@", "'" + Trim(LrText(Index).Text) + "'")
  782.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  783.             If Findrec.EOF Then
  784.                Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  785.                LrText(Index).SetFocus
  786.                Exit Function
  787.             Else
  788.                Select Case Textint(Index, 3)
  789.                  Case 0
  790.                    If Len(Trim(Textstr(Index, 2))) <> 0 Then
  791.                       LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  792.                    End If
  793.                     If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  794.                       LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  795.                    End If
  796.                  Case 1
  797.                    If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  798.                       LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  799.                    End If
  800.                     If Len(Trim(Textstr(Index, 2))) <> 0 Then
  801.                       LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  802.                    End If
  803.                End Select
  804.             End If
  805.          Case 2      '日期型
  806.             If IsDate(LrText(Index).Text) Then
  807.                LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  808.                If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  809.                   LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  810.                End If
  811.              Else
  812.                Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  813.                Call Xtxxts(Tsxx, 0, 1)
  814.                LrText(Index).SetFocus
  815.                Exit Function
  816.             End If
  817.          Case 3      '其他类型
  818.             Select Case Index
  819.               Case 10                  '项目
  820.                 SqlStr = "select * from Cwzz_item where ItemClassCode='" & Lab_ItemClass.Tag & "' and (ItemCode='" & Trim(LrText(10).Text) & "' or ItemName='" & Trim(LrText(10).Text) & "')"
  821.                 Set Findrec = Cw_DataEnvi.DataConnect.Execute(SqlStr)
  822.                 If Findrec.EOF Then
  823.                    Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  824.                    LrText(Index).SetFocus
  825.                    Exit Function
  826.                 Else
  827.                    Select Case Textint(Index, 3)
  828.                      Case 0
  829.                        If Len(Trim(Textstr(Index, 2))) <> 0 Then
  830.                           LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  831.                        End If
  832.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  833.                           LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  834.                        End If
  835.                      Case 1
  836.                        If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  837.                           LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  838.                        End If
  839.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  840.                           LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  841.                        End If
  842.                    End Select
  843.                    If Findrec.Fields("QuantityFlag") Then   '数量核算显示单位
  844.                       Lab_ItemMeasure = Trim(Findrec.Fields("Measure"))
  845.                    Else
  846.                       LrText(11).Text = ""
  847.                       Lab_ItemMeasure = ""
  848.                    End If
  849.                 End If
  850.             End Select
  851.        End Select
  852.    TextValiJudgeLock(Index) = True
  853.    TextYxxpd = True
  854. End Function