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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form Khgl_CopyTitle 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "拷贝考核类别"
  5.    ClientHeight    =   4530
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   5010
  9.    Icon            =   "拷贝考核类别.frx":0000
  10.    KeyPreview      =   -1  'True
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   4530
  15.    ScaleWidth      =   5010
  16.    ShowInTaskbar   =   0   'False
  17.    StartUpPosition =   1  '所有者中心
  18.    Begin VB.Frame Frame1 
  19.       Height          =   4005
  20.       Left            =   60
  21.       TabIndex        =   12
  22.       Top             =   30
  23.       Width           =   4875
  24.       Begin VB.OptionButton Opt_LockFlag 
  25.          Caption         =   "下限封闭"
  26.          Height          =   255
  27.          Index           =   0
  28.          Left            =   1485
  29.          TabIndex        =   6
  30.          Top             =   3270
  31.          Width           =   1095
  32.       End
  33.       Begin VB.TextBox LrText 
  34.          Height          =   300
  35.          Index           =   3
  36.          Left            =   1485
  37.          TabIndex        =   3
  38.          Text            =   "3"
  39.          Top             =   2115
  40.          Width           =   2835
  41.       End
  42.       Begin VB.CommandButton Ydcommand1 
  43.          Height          =   300
  44.          Index           =   3
  45.          Left            =   4290
  46.          Picture         =   "拷贝考核类别.frx":1042
  47.          Style           =   1  'Graphical
  48.          TabIndex        =   23
  49.          Top             =   2130
  50.          Visible         =   0   'False
  51.          Width           =   300
  52.       End
  53.       Begin VB.TextBox LrText 
  54.          Height          =   300
  55.          Index           =   0
  56.          Left            =   1485
  57.          TabIndex        =   0
  58.          Text            =   "0"
  59.          Top             =   1005
  60.          Width           =   3135
  61.       End
  62.       Begin VB.TextBox LrText 
  63.          Height          =   300
  64.          Index           =   1
  65.          Left            =   1485
  66.          TabIndex        =   1
  67.          Text            =   "1"
  68.          Top             =   1380
  69.          Width           =   3135
  70.       End
  71.       Begin VB.TextBox LrText 
  72.          Height          =   270
  73.          Index           =   2
  74.          Left            =   1485
  75.          TabIndex        =   2
  76.          Text            =   "2"
  77.          Top             =   1770
  78.          Width           =   2835
  79.       End
  80.       Begin VB.TextBox LrText 
  81.          Height          =   300
  82.          Index           =   4
  83.          Left            =   1485
  84.          TabIndex        =   4
  85.          Text            =   "4"
  86.          Top             =   2505
  87.          Width           =   3135
  88.       End
  89.       Begin VB.TextBox LrText 
  90.          Height          =   300
  91.          Index           =   5
  92.          Left            =   1485
  93.          TabIndex        =   5
  94.          Text            =   "5"
  95.          Top             =   2880
  96.          Width           =   3135
  97.       End
  98.       Begin VB.OptionButton Opt_LockFlag 
  99.          Caption         =   "上限封闭"
  100.          Height          =   255
  101.          Index           =   1
  102.          Left            =   2610
  103.          TabIndex        =   16
  104.          Top             =   3270
  105.          Width           =   1095
  106.       End
  107.       Begin VB.CommandButton Ydcommand1 
  108.          Height          =   300
  109.          Index           =   2
  110.          Left            =   4290
  111.          Picture         =   "拷贝考核类别.frx":13CC
  112.          Style           =   1  'Graphical
  113.          TabIndex        =   15
  114.          Top             =   1770
  115.          Visible         =   0   'False
  116.          Width           =   300
  117.       End
  118.       Begin VB.TextBox LrText 
  119.          Height          =   300
  120.          Index           =   7
  121.          Left            =   1485
  122.          TabIndex        =   10
  123.          Text            =   "7"
  124.          Top             =   615
  125.          Width           =   3135
  126.       End
  127.       Begin VB.TextBox LrText 
  128.          Height          =   300
  129.          Index           =   6
  130.          Left            =   1485
  131.          TabIndex        =   9
  132.          Text            =   "6"
  133.          Top             =   240
  134.          Width           =   3135
  135.       End
  136.       Begin VB.Label Lbl_codescheme 
  137.          AutoSize        =   -1  'True
  138.          Height          =   180
  139.          Left            =   1485
  140.          TabIndex        =   26
  141.          Top             =   3660
  142.          Width           =   1530
  143.       End
  144.       Begin VB.Label TsLabel 
  145.          AutoSize        =   -1  'True
  146.          Caption         =   "封闭类型:"
  147.          Height          =   180
  148.          Index           =   5
  149.          Left            =   240
  150.          TabIndex        =   25
  151.          Top             =   3300
  152.          Width           =   990
  153.       End
  154.       Begin VB.Label TsLabel 
  155.          AutoSize        =   -1  'True
  156.          Caption         =   "测评规则:"
  157.          Height          =   180
  158.          Index           =   3
  159.          Left            =   240
  160.          TabIndex        =   24
  161.          Top             =   2175
  162.          Width           =   990
  163.       End
  164.       Begin VB.Label TsLabel 
  165.          AutoSize        =   -1  'True
  166.          Caption         =   "目标类别名称:"
  167.          Height          =   180
  168.          Index           =   1
  169.          Left            =   240
  170.          TabIndex        =   22
  171.          Top             =   1440
  172.          Width           =   1170
  173.       End
  174.       Begin VB.Label TsLabel 
  175.          AutoSize        =   -1  'True
  176.          Caption         =   "目标类别编码:"
  177.          Height          =   180
  178.          Index           =   0
  179.          Left            =   240
  180.          TabIndex        =   21
  181.          Top             =   1065
  182.          Width           =   1170
  183.       End
  184.       Begin VB.Label Label1 
  185.          AutoSize        =   -1  'True
  186.          Caption         =   "编码方案:"
  187.          Height          =   180
  188.          Index           =   1
  189.          Left            =   240
  190.          TabIndex        =   20
  191.          Top             =   3660
  192.          Width           =   990
  193.       End
  194.       Begin VB.Label TsLabel 
  195.          AutoSize        =   -1  'True
  196.          Caption         =   "创建时间:"
  197.          Height          =   180
  198.          Index           =   2
  199.          Left            =   240
  200.          TabIndex        =   19
  201.          Top             =   1815
  202.          Width           =   990
  203.       End
  204.       Begin VB.Label TsLabel 
  205.          AutoSize        =   -1  'True
  206.          Caption         =   "保留小数:"
  207.          Height          =   180
  208.          Index           =   4
  209.          Left            =   240
  210.          TabIndex        =   18
  211.          Top             =   2565
  212.          Width           =   990
  213.       End
  214.       Begin VB.Label TsLabel 
  215.          AutoSize        =   -1  'True
  216.          Caption         =   "备注:"
  217.          Height          =   180
  218.          Index           =   6
  219.          Left            =   240
  220.          TabIndex        =   17
  221.          Top             =   2940
  222.          Width           =   990
  223.       End
  224.       Begin VB.Label Label1 
  225.          AutoSize        =   -1  'True
  226.          Caption         =   "源类别名称:"
  227.          Height          =   180
  228.          Index           =   11
  229.          Left            =   240
  230.          TabIndex        =   14
  231.          Top             =   675
  232.          Width           =   990
  233.       End
  234.       Begin VB.Label Label1 
  235.          AutoSize        =   -1  'True
  236.          Caption         =   "源类别编码:"
  237.          Height          =   180
  238.          Index           =   0
  239.          Left            =   240
  240.          TabIndex        =   13
  241.          Top             =   300
  242.          Width           =   990
  243.       End
  244.    End
  245.    Begin VB.CommandButton QxCommand 
  246.       Caption         =   "取消(&C)"
  247.       Height          =   300
  248.       Left            =   3360
  249.       TabIndex        =   8
  250.       Top             =   4140
  251.       Width           =   1120
  252.    End
  253.    Begin VB.CommandButton QdCommand 
  254.       Caption         =   "确定(&O)"
  255.       Height          =   300
  256.       Left            =   2100
  257.       TabIndex        =   7
  258.       Top             =   4140
  259.       Width           =   1120
  260.    End
  261.    Begin VB.CheckBox UnloadCheck 
  262.       Caption         =   "卸载窗体"
  263.       Height          =   615
  264.       Left            =   5880
  265.       TabIndex        =   11
  266.       Top             =   120
  267.       Width           =   825
  268.    End
  269. End
  270. Attribute VB_Name = "Khgl_CopyTitle"
  271. Attribute VB_GlobalNameSpace = False
  272. Attribute VB_Creatable = False
  273. Attribute VB_PredeclaredId = True
  274. Attribute VB_Exposed = False
  275. '******************************************************************
  276. '*    模 块 名 称 :拷贝考核类别
  277. '*    功 能 描 述 :
  278. '*    程序员姓名  :张洪军
  279. '*    最后修改人  :张洪军
  280. '*    最后修改时间:2001/12/25
  281. '*    备        注:程序中所有依实际情况自定义部分均用[>>  <<]括起
  282. '******************************************************************
  283. Dim Tsxx As String                       '系统信息提示
  284. Public int_col As Integer                '考核类别编码列号
  285. '以下为固定使用变量(文本框)
  286. Dim Textvar() As Variant                 '存储变体型文本框信息
  287. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  288. Dim Textint() As Integer                 '存储整型文本框信息
  289. Dim Textstr() As String                  '存储字符型文本框信息
  290. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  291. Dim TextGroupCode As String              '文本框录入分组编码
  292. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  293. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  294. Dim CurTextIndex As Integer              '当前文本框索引值
  295. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  296. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  297. Public CodScheme As String               '编码方案
  298. Dim ParentCode As String                 '上级编码
  299. Dim CodeLevel As Integer                 '编码级次
  300. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移(Fixed)
  301.     
  302.     Dim jdzygs As Integer                         '控件焦点转移个数
  303.     jdzygs = 30
  304.     Select Case KeyAscii
  305.     Case vbKeyReturn
  306.         If Kjjdzy(jdzygs) Then
  307.             KeyAscii = 0
  308.         End If
  309.     Case 39           '屏蔽"'"
  310.         KeyAscii = 0
  311.     End Select
  312.     
  313. End Sub
  314. Private Sub Form_Load()
  315.     Dim Jsqte As Integer    '临时计数器
  316.    
  317.     '以下为文本框处理程序(Fixed)
  318.     TextGroupCode = "Khgl_CopyTitle"
  319.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  320.     Call Wbkcsh
  321.     
  322.     '[>>初始化默认值
  323.     LrText(6).Enabled = False
  324.     LrText(7).Enabled = False
  325.     Opt_LockFlag(0).Value = True
  326.     
  327.     '<<]
  328.     
  329. End Sub
  330. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)          '查询条件窗体卸载
  331.     
  332.     '查询条件窗体卸载时判断是否因为结果窗体卸载,如是则卸载,否则隐藏
  333.     If UnloadCheck.Value <> 1 Then
  334.         Cancel = 1
  335.         Me.Hide
  336.     End If
  337.     
  338. End Sub
  339. Private Sub QdCommand_Click()                                   '确 定
  340.     Dim Jsqte As Integer
  341.     Dim rec_temp As New Recordset '临时记录集
  342.     Dim str_sql As String
  343.     
  344.     '录入条件有效性判断(Fixed)
  345.     If Not Lrtjyxxpd Then
  346.         Exit Sub
  347.     End If
  348.     With rec_temp
  349.         '[>>判断编码是否重复
  350.         If .State = 1 Then .Close
  351.         .Open "SELECT * FROM Kh_Title WHERE TitleCode= '" + Trim(LrText(0).Text) + "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  352.         If Not .EOF Then
  353.             Tsxx = "类别编码重复!"
  354.             Call Xtxxts(Tsxx, 0, 1)
  355.             LrText(0).SetFocus
  356.             Exit Sub
  357.         End If
  358.     
  359.         '判断名称是否重复
  360.         If .State = 1 Then .Close
  361.         .Open "SELECT * FROM Kh_Title WHERE TitleName= '" + Trim(LrText(1).Text) + "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  362.         If Not .EOF Then
  363.             Tsxx = "类别名称重复!"
  364.             Call Xtxxts(Tsxx, 0, 1)
  365.             LrText(1).SetFocus
  366.             Exit Sub
  367.         End If
  368.     
  369.         '判断记录内容无误后,将记录内容写入数据表
  370.         On Error GoTo Swcwcl
  371.     
  372.         Cw_DataEnvi.DataConnect.BeginTrans
  373.     
  374.         .AddNew
  375.         .Fields("TitleCode") = Trim(LrText(0).Text)         '类别编码
  376.         .Fields("TitleName") = Trim(LrText(1).Text)         '类别名称
  377.         .Fields("CreateTime") = Trim(LrText(2).Text)        '创建日期
  378.         .Fields("CheckCode") = Trim(LrText(3).Tag)          '测评规则
  379.         .Fields("TitleDigit") = Trim(LrText(4).Text)        '保留小数
  380.         If Opt_LockFlag(0).Value = True Then
  381.             .Fields("LockFlag") = 0                         '下限封闭
  382.         Else
  383.             .Fields("LockFlag") = 1                         '上限封闭
  384.         End If
  385.         .Fields("Remark") = Trim(LrText(5).Text)            '备注
  386.         .Fields("ParentCode") = ParentCode                  '上级编码
  387.         .Fields("CodeLevel") = CodeLevel                    '编码级次
  388.         .Fields("ComputeFlag") = 0                          '计算标志
  389.         .Fields("CloseFlag") = 0                            '关闭标志
  390.     
  391.         .Update
  392.         
  393.         Cw_DataEnvi.DataConnect.Execute "update Kh_Title set EndFlag=0  where TitleCode='" & ParentCode & "'"
  394.         
  395.         '考核指标
  396.         str_sql = " insert into Kh_Target(TitleCode,CheckCode,TargetWeigh) " & _
  397.                   " (select '" & Trim(LrText(0).Text) & "' ,CheckCode,TargetWeigh " & _
  398.                   " from Kh_Target where TitleCode='" & Trim(LrText(6).Text) & "')"
  399.         Cw_DataEnvi.DataConnect.Execute str_sql
  400.         '考核要素
  401.         str_sql = " insert into Kh_ValMark(TitleCode,CheckCode,FactorCode,FactorWeigh) " & _
  402.                   " (select '" & Trim(LrText(0).Text) & "' ,CheckCode,FactorCode,FactorWeigh " & _
  403.                   " from Kh_ValMark where TitleCode='" & Trim(LrText(6).Text) & "')"
  404.         Cw_DataEnvi.DataConnect.Execute str_sql
  405.         '测评者
  406.         str_sql = " insert into Kh_Appraise(TitleCode,ValListCode,AppraiseWeigh) " & _
  407.                   " (select '" & Trim(LrText(0).Text) & "' ,ValListCode,AppraiseWeigh " & _
  408.                   " from Kh_Appraise where TitleCode='" & Trim(LrText(6).Text) & "')"
  409.         Cw_DataEnvi.DataConnect.Execute str_sql
  410.         '考核对象
  411.         str_sql = " insert into kh_object(TitleCode,EmpID) " & _
  412.                   " (select '" & Trim(LrText(0).Text) & "' ,EmpID " & _
  413.                   " from kh_object where TitleCode='" & Trim(LrText(6).Text) & "')"
  414.         Cw_DataEnvi.DataConnect.Execute str_sql
  415.         
  416.         
  417.         Cw_DataEnvi.DataConnect.CommitTrans
  418.         
  419.     End With
  420.        
  421.     Me.Hide
  422.     Exit Sub
  423. Swcwcl:
  424.     Cw_DataEnvi.DataConnect.RollbackTrans
  425.     Tsxx = "存盘过程中出现错误,程序自动恢复确定前状态!"
  426.     Call Xtxxts(Tsxx, 0, 1)
  427.     Exit Sub
  428.     
  429. End Sub
  430. Private Sub QxCommand_Click()                                    '取消(Fixed)
  431.     Me.Hide
  432. End Sub
  433. Private Function Lrtjyxxpd() As Boolean                          '用户录入条件有效性判断
  434.     
  435.     Dim Jsqte As Integer
  436.     Lrtjyxxpd = False
  437.     
  438.     '对需要进行事后判断的文本框录入内容进行有效性判断 (Fixed)
  439.     For Jsqte = 0 To Max_Text_Index
  440.         If Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2 Then
  441.             If Not TextYxxpd(Jsqte) Then
  442.                 Exit Function
  443.             End If
  444.         End If
  445.         If Len(Trim(LrText(Jsqte).Text)) = 0 Then
  446.             Select Case Jsqte
  447.                 Case 0
  448.                     Tsxx = "目标考核类别编码不能为空!"
  449.                     Call Xtxxts(Tsxx, 0, 1)
  450.                     LrText(Jsqte).SetFocus
  451.                     Exit Function
  452.                 Case 1
  453.                     Tsxx = "目标考核类别名称不能为空!"
  454.                     Call Xtxxts(Tsxx, 0, 1)
  455.                     LrText(Jsqte).SetFocus
  456.                     Exit Function
  457.                 Case 2
  458.                     Tsxx = "创建时间不能为空!"
  459.                     Call Xtxxts(Tsxx, 0, 1)
  460.                     LrText(Jsqte).SetFocus
  461.                     Exit Function
  462.                 Case 3
  463.                     Tsxx = "测评规则不能为空!"
  464.                     Call Xtxxts(Tsxx, 0, 1)
  465.                     LrText(Jsqte).SetFocus
  466.                     Exit Function
  467.                 Case 4
  468.                     Tsxx = "保留小数不能为空!"
  469.                     Call Xtxxts(Tsxx, 0, 1)
  470.                     LrText(Jsqte).SetFocus
  471.                     Exit Function
  472.             End Select
  473.         End If
  474.         
  475.     Next Jsqte
  476.     
  477.     If Val(LrText(4).Text) > 6 Then
  478.         Tsxx = "保留小数最大值为6!"
  479.         Call Xtxxts(Tsxx, 0, 1)
  480.         LrText(Index).SetFocus
  481.         Exit Function
  482.     End If
  483.     
  484.     '[>>以下为依据实际情况自定义部分
  485.     Dim i As Integer, LevelLeng As Integer, tf As Boolean
  486.     For i = 1 To Len(CodScheme)
  487.         LevelLeng = LevelLeng + Val(Mid(CodScheme, i, 1))
  488.         If Len(Trim(LrText(0))) = LevelLeng Then
  489.             tf = True: Exit For
  490.         Else
  491.             tf = False
  492.         End If
  493.     Next i
  494.     '--------------
  495.     If tf = False Then
  496.         Tsxx = "非法编码方式!  "
  497.         Call Xtxxts(Tsxx, 0, 1)
  498.         LrText(Index).SetFocus
  499.         Exit Function
  500.     End If
  501.     '---------------
  502.     If Len(Trim(LrText(0))) <> Val(Mid(CodScheme, 1, 1)) Then
  503.         With Khgl_Title.CzxsGrid
  504.             ParentCode = Mid(Trim(LrText(0)), 1, LevelLeng - Val(Mid(CodScheme, i, 1)))
  505.             code_row = .FindRow(ParentCode, , int_col)
  506.             If code_row = -1 Then
  507.                 ParentCode = ""
  508.                 Tsxx = "没有上级编码!  "
  509.                 Call Xtxxts(Tsxx, 0, 1)
  510.                 LrText(Index).SetFocus
  511.                 Exit Function
  512.             End If
  513.         End With
  514.     End If
  515.     CodeLevel = i
  516.     
  517.     '<<]以上为依据实际情况自定义部分
  518.     
  519.     Lrtjyxxpd = True
  520. End Function
  521. '*************以下为文本框录入处理程序(固定不变部分)*************'
  522. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  523.     
  524.     '以下为依据实际情况自定义部分[
  525.     
  526.     '在此填写文本框录入事后处理程序
  527.     
  528.     ']以上为依据实际情况自定义部分
  529.     
  530. End Sub
  531. Private Sub LrText_Change(Index As Integer)
  532.     
  533.     '屏蔽程序改变控制
  534.     If TextChangeLock Then
  535.         Exit Sub
  536.     End If
  537.     
  538.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  539.     
  540.     '限制字段录入长度
  541.     
  542.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  543.     
  544.     Call TextChangeLimit(LrText(Index), Textint(Index, 1))  '去掉无效字符
  545.     
  546.     Select Case Textint(Index, 1)
  547.     Case 8, 11      '金额型
  548.         Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  549.     Case 9, 12      '数量型
  550.         Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  551.     Case 10          '单价型
  552.         Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  553.     Case Else        '其他小数类型控制
  554.         If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  555.             Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  556.         End If
  557.     End Select
  558.     
  559.     TextChangeLock = False '解锁
  560.     
  561. End Sub
  562. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  563.     
  564.     Call TextShow(Index)
  565.     CurTextIndex = Index
  566.     LrText(Index).SelStart = Len(LrText(Index))
  567.     
  568. End Sub
  569. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  570.     
  571.     Select Case KeyCode
  572.     Case vbKeyF2
  573.         Call Text_Help(Index)
  574.     End Select
  575.     
  576. End Sub
  577. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  578.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  579. End Sub
  580. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点
  581.     
  582.     '显示相应信息但不能进行有效性判断
  583.     
  584. End Sub
  585. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)     '按钮提供帮助
  586.     Call Text_Help(Index)
  587. End Sub
  588. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  589.     If Not Textboolean(Index, 1) Then
  590.         Exit Sub
  591.     End If
  592.     
  593.     '调用帮助
  594.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  595.     
  596.     '根据设置选择显示编码和名称,并进行存储
  597.     If Len(Xtfhcs) <> 0 Then
  598.         If Textint(Index, 3) = 1 Then
  599.             LrText(Index).Text = Xtfhcsfz
  600.             LrText(Index).Tag = Xtfhcs
  601.         Else
  602.             LrText(Index).Text = Xtfhcs
  603.             LrText(Index).Tag = Xtfhcsfz
  604.         End If
  605.     End If
  606.     
  607.     LrText(Index).SetFocus
  608.     
  609. End Sub
  610. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  611.     
  612.     '填写文本框得到焦点,进行相应信息处理程序
  613.     
  614. End Sub
  615. Private Sub Wbkcsh()                          '录入文本框初始化
  616.     
  617.     Dim Jsqte As Integer
  618.     
  619.     '最大录入文本框索引值
  620.     Max_Text_Index = Textvar(1)
  621.     
  622.     ReDim TextValiJudgeLock(Max_Text_Index)
  623.     For Jsqte = 0 To Max_Text_Index
  624.         
  625.         If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then
  626.             If Textboolean(Jsqte, 1) Then
  627.                 If Jsqte <> 0 And Not Textboolean(Jsqte, 3) Then
  628.                     Load Ydcommand1(Jsqte)
  629.                 End If
  630.                 Ydcommand1(Jsqte).Visible = True
  631.                 Ydcommand1(Jsqte).Move LrText(Jsqte).Left + LrText(Jsqte).Width, LrText(Jsqte).Top
  632.             End If
  633.             TextChangeLock = True
  634.             LrText(Jsqte).Text = ""
  635.             LrText(Jsqte).Tag = ""
  636.             If Textint(Jsqte, 5) <> 0 Then
  637.                 LrText(Jsqte).MaxLength = Textint(Jsqte, 5)
  638.             End If
  639.             TextChangeLock = False
  640.         End If
  641.         
  642.         TextValiJudgeLock(Jsqte) = True
  643.     Next Jsqte
  644.     
  645. End Sub
  646. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  647.     Dim Sqlstr As String
  648.     Dim Findrec As ADODB.Recordset
  649.     
  650.     '文本框内容未曾改变不进行有效性判断
  651.     If TextValiJudgeLock(Index) Then
  652.         TextYxxpd = True
  653.         Exit Function
  654.     End If
  655.     
  656.     '文本框内容为空认为有效,并清空其Tag值
  657.     If Trim(LrText(Index)) = "" Then
  658.         LrText(Index).Tag = ""
  659.         Call Wbklrwbcl(Index)
  660.         TextValiJudgeLock(Index) = True
  661.         TextYxxpd = True
  662.         Exit Function
  663.     End If
  664.     
  665.     '可在此加入不做有效性判断的理由
  666.     
  667.     Select Case Textint(Index, 4)
  668.     Case 1      '编码型
  669.         Sqlstr = Trim(Textstr(Index, 5))
  670.         Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  671.         Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  672.         If Findrec.EOF Then
  673.             Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  674.             LrText(Index).SetFocus
  675.             Exit Function
  676.         Else
  677.             Select Case Textint(Index, 3)
  678.             Case 0
  679.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  680.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  681.                 End If
  682.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  683.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  684.                 End If
  685.             Case 1
  686.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  687.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  688.                 End If
  689.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  690.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  691.                 End If
  692.             End Select
  693.         End If
  694.     Case 2      '日期型
  695.         If IsDate(LrText(Index).Text) Then
  696.             LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  697.             If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  698.                 LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  699.             End If
  700.         Else
  701.             Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  702.             Call Xtxxts(Tsxx, 0, 1)
  703.             LrText(Index).SetFocus
  704.             Exit Function
  705.         End If
  706.     Case 3      '其他类型
  707.     End Select
  708.     
  709.     '如果有效则加锁,用户不改变内容则不再进行有效性判断
  710.     TextValiJudgeLock(Index) = True
  711.     
  712.     '调用文本框事后处理程序
  713.     Call Wbklrwbcl(Index)
  714.     
  715.     '有效性判断通过则返回True
  716.     TextYxxpd = True
  717.     
  718. End Function