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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form Query_RepAttend_Frm 
  3.    Appearance      =   0  'Flat
  4.    BackColor       =   &H80000004&
  5.    BorderStyle     =   3  'Fixed Dialog
  6.    Caption         =   "查询条件"
  7.    ClientHeight    =   1995
  8.    ClientLeft      =   2760
  9.    ClientTop       =   3750
  10.    ClientWidth     =   5445
  11.    Icon            =   "查询条件_报表_考勤.frx":0000
  12.    KeyPreview      =   -1  'True
  13.    LinkTopic       =   "Form1"
  14.    MaxButton       =   0   'False
  15.    MinButton       =   0   'False
  16.    ScaleHeight     =   1995
  17.    ScaleWidth      =   5445
  18.    ShowInTaskbar   =   0   'False
  19.    StartUpPosition =   1  '所有者中心
  20.    Begin VB.CommandButton Cmd_Cond 
  21.       Caption         =   "条件(&M)"
  22.       Height          =   300
  23.       Left            =   120
  24.       TabIndex        =   7
  25.       Top             =   1605
  26.       Width           =   1120
  27.    End
  28.    Begin VB.CommandButton Cmd_OK 
  29.       Caption         =   "确定(&O)"
  30.       Height          =   300
  31.       Left            =   3000
  32.       TabIndex        =   5
  33.       Top             =   1620
  34.       Width           =   1120
  35.    End
  36.    Begin VB.CommandButton Cmd_Cancel 
  37.       Cancel          =   -1  'True
  38.       Caption         =   "取消(&C)"
  39.       Height          =   300
  40.       Left            =   4215
  41.       TabIndex        =   6
  42.       Top             =   1620
  43.       Width           =   1120
  44.    End
  45.    Begin VB.Frame Frame1 
  46.       Height          =   1470
  47.       Left            =   105
  48.       TabIndex        =   8
  49.       Top             =   60
  50.       Width           =   5250
  51.       Begin VB.CommandButton Ydcommand1 
  52.          Height          =   300
  53.          Index           =   2
  54.          Left            =   2055
  55.          Picture         =   "查询条件_报表_考勤.frx":1042
  56.          Style           =   1  'Graphical
  57.          TabIndex        =   14
  58.          TabStop         =   0   'False
  59.          Top             =   1020
  60.          Visible         =   0   'False
  61.          Width           =   300
  62.       End
  63.       Begin VB.TextBox LrText 
  64.          Height          =   300
  65.          Index           =   4
  66.          Left            =   3660
  67.          TabIndex        =   3
  68.          Text            =   "4"
  69.          Top             =   600
  70.          Width           =   1410
  71.       End
  72.       Begin VB.TextBox LrText 
  73.          Height          =   300
  74.          Index           =   3
  75.          Left            =   945
  76.          TabIndex        =   2
  77.          Text            =   "3"
  78.          Top             =   600
  79.          Width           =   1410
  80.       End
  81.       Begin VB.TextBox LrText 
  82.          Height          =   300
  83.          Index           =   2
  84.          Left            =   945
  85.          TabIndex        =   4
  86.          Text            =   "2"
  87.          Top             =   1005
  88.          Width           =   1125
  89.       End
  90.       Begin VB.TextBox LrText 
  91.          Height          =   300
  92.          Index           =   0
  93.          Left            =   945
  94.          TabIndex        =   0
  95.          Text            =   "0"
  96.          Top             =   195
  97.          Width           =   1410
  98.       End
  99.       Begin VB.TextBox LrText 
  100.          Height          =   300
  101.          Index           =   1
  102.          Left            =   3675
  103.          TabIndex        =   1
  104.          Text            =   "1"
  105.          Top             =   210
  106.          Width           =   1410
  107.       End
  108.       Begin VB.Line Line1 
  109.          X1              =   2445
  110.          X2              =   2730
  111.          Y1              =   750
  112.          Y2              =   750
  113.       End
  114.       Begin VB.Label Lab_Note 
  115.          AutoSize        =   -1  'True
  116.          Caption         =   "会计年度:"
  117.          Height          =   180
  118.          Index           =   0
  119.          Left            =   150
  120.          TabIndex        =   13
  121.          Top             =   300
  122.          Width           =   810
  123.       End
  124.       Begin VB.Label Lab_Note 
  125.          AutoSize        =   -1  'True
  126.          Caption         =   "会计期间:"
  127.          Height          =   180
  128.          Index           =   1
  129.          Left            =   2835
  130.          TabIndex        =   12
  131.          Top             =   285
  132.          Width           =   810
  133.       End
  134.       Begin VB.Label Lab_Note 
  135.          AutoSize        =   -1  'True
  136.          Caption         =   "汇总依据:"
  137.          Height          =   180
  138.          Index           =   3
  139.          Left            =   150
  140.          TabIndex        =   11
  141.          Top             =   1095
  142.          Width           =   810
  143.       End
  144.       Begin VB.Label Lab_Note 
  145.          AutoSize        =   -1  'True
  146.          Caption         =   "部门级别:"
  147.          Height          =   180
  148.          Index           =   4
  149.          Left            =   150
  150.          TabIndex        =   10
  151.          Top             =   705
  152.          Width           =   810
  153.       End
  154.       Begin VB.Label Lab_Note 
  155.          AutoSize        =   -1  'True
  156.          Caption         =   "部门级别:"
  157.          Height          =   180
  158.          Index           =   5
  159.          Left            =   2835
  160.          TabIndex        =   9
  161.          Top             =   675
  162.          Width           =   810
  163.       End
  164.    End
  165. End
  166. Attribute VB_Name = "Query_RepAttend_Frm"
  167. Attribute VB_GlobalNameSpace = False
  168. Attribute VB_Creatable = False
  169. Attribute VB_PredeclaredId = True
  170. Attribute VB_Exposed = False
  171. '******************************************************************
  172. '*    模 块 名 称 :考勤查询条件
  173. '*    功 能 描 述 :
  174. '*    程序员姓名  :苗鹏
  175. '*    最后修改人  :苗鹏
  176. '*    最后修改时间:2002-01-01
  177. '*    备        注:
  178. '******************************************************************
  179. Dim Tsxx As String                       '系统信息提示
  180. Public sSqlWhere As String
  181. Public sSqlWhereMe As String
  182. Public sSqlWhereMore As String
  183. Public sSqlFrom As String
  184. Public frmQuery As Form
  185. Public sRCode As String
  186. Public sPTableName As String
  187. Public bQuery As Boolean
  188. Public frmParent As Form
  189. Dim coll As New Collection
  190. '以下为固定使用变量(文本框)
  191. Dim Textvar() As Variant                 '存储变体型文本框信息
  192. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  193. Dim Textint() As Integer                 '存储整型文本框信息
  194. Dim Textstr() As String                  '存储字符型文本框信息
  195. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  196. Dim TextGroupCode As String              '文本框录入分组编码
  197. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  198. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  199. Dim CurTextIndex As Integer              '当前文本框索引值
  200. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  201. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  202. Private Sub Cmd_Cancel_Click()
  203.     Unload Me
  204. End Sub
  205. Private Sub Cmd_Cond_Click() '调用公用查询条件
  206.     On Error GoTo ErrCtrl
  207.     Dim frm As New Query_Frm
  208.     With frm
  209.         Set .collTableName = coll
  210.         .Show 1
  211.         If .bChecked = True Then
  212.             Me.sSqlWhereMore = .sSqlWhere
  213.         End If
  214.     End With
  215.     Set frm = Nothing
  216.     Exit Sub
  217. ErrCtrl:
  218.     Set frm = Nothing
  219. End Sub
  220. Private Sub Form_Load()
  221.     On errer GoTo ErrCtrl
  222.     '以下为文本框处理程序
  223.     TextGroupCode = "Pm_QueryAttend"
  224.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  225.     Call Wbkcsh
  226.     Me.sSqlFrom = " From " & Me.sPTableName
  227.     
  228.     Dim rs As New ADODB.Recordset
  229.     Dim s As String
  230.     '部门类别
  231.     s = "SELECT Max(CodeLevel) AS MaxLevel,Min(CodeLevel) AS MinLevel FROM Gy_Department WHERE RsPmFlag=1"
  232.     Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  233.     If Not rs.EOF() Then
  234.         TextChangeLock = True
  235.         Me.LrText(3).Text = Val(rs!MinLevel & "")
  236.         Me.LrText(4).Text = Val(rs!MaxLevel & "")
  237.         TextChangeLock = False
  238.     End If
  239.     '会计期间
  240.     s = "SELECT TOP 1 KjYear,Period FROM GY_Kjrlb WHERE PMjzbz= 0 ORDER BY KjYear,Period  "
  241.     Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  242.     With rs
  243.         If Not .EOF() Then
  244.             TextChangeLock = True
  245.             Me.LrText(0).Text = Val(rs!KjYear & "")
  246.             Me.LrText(1).Text = Val(rs!Period & "")
  247.             TextChangeLock = False
  248.             .Close
  249.         Else
  250.             MsgBox "当前会计日期未知", vbOKOnly + vbCritical
  251.             GoTo ErrCtrl
  252.         End If
  253.     End With
  254.     Set rs = Nothing
  255.     Exit Sub
  256. ErrCtrl:
  257.     If rs.State = 1 Then
  258.         rs.Close
  259.     End If
  260.     Set rs = Nothing
  261.     
  262. End Sub
  263. Private Sub Cmd_OK_Click()                                   '确 定
  264.     On Error GoTo ErrCtrl
  265.     '录入条件有效性判断
  266.     If Not Lrtjyxxpd Then
  267.        Exit Sub
  268.     End If
  269.     
  270.         '录入条件有效性判断
  271.     If Not Lrtjyxxpd Then
  272.        Exit Sub
  273.     End If
  274.     If Trim(Me.LrText(0).Text) <> "" And IsNumeric(Me.LrText(0).Text) = False Then
  275.         MsgBox "会计年必须录入数字!", vbOKOnly + vbCritical
  276.         Exit Sub
  277.     End If
  278.     If Trim(Me.LrText(1).Text) <> "" And IsNumeric(Me.LrText(1).Text) = False Then
  279.         MsgBox "会计期间必须录入数字!", vbOKOnly + vbCritical
  280.         Exit Sub
  281.     End If
  282.     If Trim(Me.LrText(3).Text) <> "" And IsNumeric(Me.LrText(3).Text) = False Then
  283.         MsgBox "部门开始级别必须录入数字!", vbOKOnly + vbCritical
  284.         Exit Sub
  285.     End If
  286.     If Trim(Me.LrText(4).Text) <> "" And IsNumeric(Me.LrText(4).Text) = False Then
  287.         MsgBox "部门结束级别必须录入数字!", vbOKOnly + vbCritical
  288.         Exit Sub
  289.     End If
  290.     If Val(Me.LrText(3)) > Val(Me.LrText(4)) Then
  291.         MsgBox "开始级别必须小于结束级别!", vbOKOnly + vbCritical
  292.         Exit Sub
  293.     End If
  294.     
  295.     '判断部门
  296.     Dim rs As New ADODB.Recordset
  297.     Dim s As String
  298.     s = "select Max(CodeLevel) as MaxLevel,Min(CodeLevel) as MinLevel from Gy_Department where RsPmFlag=1"
  299.     s = "select Max(CodeLevel) as MaxLevel,Min(CodeLevel) as MinLevel from Gy_Department where RsPmFlag=1"
  300.     Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  301.     If Not rs.EOF() Then
  302.         TextChangeLock = True
  303.         If Val(Me.LrText(3).Text) < rs!MinLevel Or Val(Me.LrText(3).Text) > rs!MaxLevel Then
  304.             Me.LrText(3).Text = rs!MinLevel
  305.         End If
  306.         If Val(Me.LrText(4).Text) > rs!MaxLevel Or Val(Me.LrText(4).Text) < rs!MinLevel Then
  307.             Me.LrText(4).Text = rs!MaxLevel
  308.         End If
  309.     Else
  310.         MsgBox "没有设置部门!", vbOKOnly + vbCritical
  311.         Exit Sub
  312.     End If
  313.     '生成必要的查询条件
  314.     s = "select distinct TableName from PM_ReportItem where RCode='" & Me.sRCode & "'"
  315.     Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  316.     AddTableFrom coll, "Rs_BasicInfo"
  317.     With rs
  318.         Do While Not .EOF()
  319.             AddTableFrom coll, Trim(!TableName & "")
  320.             .MoveNext
  321.         Loop
  322.     End With
  323.     s = GetSQLFrom(coll, Me.sPTableName)
  324.     Me.sSqlFrom = " From " & s
  325.     s = " where 1=1 "
  326.     With Me
  327.         '查询条件
  328.         '会计年
  329.         If Me.LrText(0).Text <> "" Then
  330.             s = s & " and #.KjYear=" & Val(Me.LrText(0).Text)
  331.         End If
  332.         '会计期间
  333.         If Me.LrText(1).Text <> "" Then
  334.             s = s & " and #.Period=" & Val(Me.LrText(1).Text)
  335.         End If
  336.         s = Replace(s, "#", Me.sPTableName)
  337.         .sSqlWhereMe = s & " and Rs_Basicinfo.DeptCode in (Select DeptCode from PM_OpeDept where Czybm ='" & Xtczybm & "') " & Chr(10)
  338.         If Trim(.sSqlWhereMore) <> "" Then
  339.             .sSqlWhere = .sSqlWhereMe & " and ( " & .sSqlWhereMore & " ) "
  340.         Else
  341.             .sSqlWhere = .sSqlWhereMe
  342.         End If
  343.         .bQuery = True
  344.     End With
  345.     '刷新数据
  346.     With frmParent
  347.         .sSqlWhere = Me.sSqlWhere
  348.         .sSqlFrom = Me.sSqlFrom
  349.         .sGroupField = Me.LrText(2).Tag
  350.         .iDeptBeginLevel = Val(Me.LrText(3).Text)
  351.         .iDeptEndLevel = Val(Me.LrText(4).Text)
  352.         .Lab_Period.Caption = "会计期间:" & Me.LrText(0).Text & "年" & Me.LrText(1).Text & "月"
  353.         frmParent.ShowRecord Me.sSqlWhere, Me.sSqlFrom
  354.     End With
  355.     Unload Me
  356.     Exit Sub
  357.     
  358. ErrCtrl:
  359.     If rs.State = 1 Then
  360.         rs.Close
  361.     End If
  362.     Set rs = Nothing
  363. End Sub
  364. Private Sub QxCommand_Click()                                    '取消
  365.     Me.Hide
  366. End Sub
  367. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  368.    Dim jdzygs As Integer                         '控件焦点转移个数
  369.    jdzygs = 30
  370.    Select Case KeyAscii
  371.       Case vbKeyReturn
  372.            If Kjjdzy(jdzygs) Then
  373.               KeyAscii = 0
  374.            End If
  375.       Case 39           '屏蔽"'"
  376.         KeyAscii = 0
  377.    End Select
  378. End Sub
  379. Private Function Lrtjyxxpd() As Boolean                          '用户录入条件有效性判断
  380.     Dim jsqte As Integer
  381.     Lrtjyxxpd = False
  382.     
  383.     '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  384.     For jsqte = 0 To Max_Text_Index
  385.         If Textint(jsqte, 9) = 0 Or Textint(jsqte, 9) = 2 Then
  386.             If Not TextYxxpd(jsqte) Then
  387.                 Exit Function
  388.             End If
  389.         End If
  390.     Next jsqte
  391.       
  392.     '[>>以下为依据实际情况自定义部分
  393.     
  394.      '查询日期范围应由小到大
  395.      
  396.      
  397.     '<<]以上为依据实际情况自定义部分
  398.     
  399.     Lrtjyxxpd = True
  400. End Function
  401. '************以下为文本框录入处理程序(固定不变部分)*************'
  402. '*************以下为文本框录入处理程序(固定不变部分)*************'
  403. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  404.     
  405.     '以下为依据实际情况自定义部分[
  406.     '在此填写文本框录入事后处理程序
  407.     ']以上为依据实际情况自定义部分
  408.     
  409. End Sub
  410. Private Sub LrText_Change(Index As Integer)
  411.     
  412.     '屏蔽程序改变控制
  413.     If TextChangeLock Then
  414.         Exit Sub
  415.     End If
  416.     
  417.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  418.     
  419.     '限制字段录入长度
  420.     
  421.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  422.     
  423.     Call TextChangeLimit(LrText(Index), Textint(Index, 1))  '去掉无效字符
  424.     
  425.     Select Case Textint(Index, 1)
  426.     Case 8, 11      '金额型
  427.         Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  428.     Case 9, 12      '数量型
  429.         Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  430.     Case 10          '单价型
  431.         Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  432.     Case Else        '其他小数类型控制
  433.         If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  434.             Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  435.         End If
  436.     End Select
  437.     
  438.     TextChangeLock = False '解锁
  439.     
  440. End Sub
  441. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  442.     Call TextShow(Index)
  443.     CurTextIndex = Index
  444.     LrText(Index).SelStart = Len(LrText(Index))
  445. End Sub
  446. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  447.     
  448.     Select Case KeyCode
  449.     Case vbKeyF2
  450.         Call Text_Help(Index)
  451.     End Select
  452.     
  453. End Sub
  454. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  455.     Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  456. End Sub
  457. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点
  458.     
  459.     '显示相应信息但不能进行有效性判断
  460.     
  461. End Sub
  462. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)     '按钮提供帮助
  463.     Call Text_Help(Index)
  464. End Sub
  465. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  466.     If Not Textboolean(Index, 1) Then
  467.         Exit Sub
  468.     End If
  469.     'add by mp
  470.     If Index = 2 Then
  471.         sParam = Me.sRCode
  472.         sParam2 = "001"
  473.     End If
  474.     'finish
  475.     
  476.     '调用帮助
  477.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  478.     
  479.     '根据设置选择显示编码和名称,并进行存储
  480.     If Len(Xtfhcs) <> 0 Then
  481.         If Textint(Index, 3) = 1 Then
  482.             LrText(Index).Text = Xtfhcsfz
  483.             LrText(Index).Tag = Xtfhcs
  484.         Else
  485.             LrText(Index).Text = Xtfhcs
  486.             LrText(Index).Tag = Xtfhcsfz
  487.         End If
  488.     End If
  489.     
  490.     LrText(Index).SetFocus
  491.     
  492. End Sub
  493. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  494.     
  495.     '填写文本框得到焦点,进行相应信息处理程序
  496.     
  497. End Sub
  498. Private Sub Wbkcsh()                          '录入文本框初始化
  499.     
  500.     Dim jsqte As Integer
  501.     
  502.     '最大录入文本框索引值
  503.     Max_Text_Index = Textvar(1)
  504.     
  505.     ReDim TextValiJudgeLock(Max_Text_Index)
  506.     For jsqte = 0 To Max_Text_Index
  507.         If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
  508.             If Textboolean(jsqte, 1) Then
  509.                 If jsqte <> 0 And Not Textboolean(jsqte, 3) Then
  510.                     Load Ydcommand1(jsqte)
  511.                 End If
  512.                 Ydcommand1(jsqte).Visible = True
  513.                 Ydcommand1(jsqte).Move LrText(jsqte).Left + LrText(jsqte).Width, LrText(jsqte).Top
  514.             End If
  515.             TextChangeLock = True
  516.             LrText(jsqte).Text = ""
  517.             LrText(jsqte).Tag = ""
  518.             If Textint(jsqte, 5) <> 0 Then
  519.                 LrText(jsqte).MaxLength = Textint(jsqte, 5)
  520.             End If
  521.             TextChangeLock = False
  522.         End If
  523.         TextValiJudgeLock(jsqte) = True
  524.     Next jsqte
  525.     
  526. End Sub
  527. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  528.     
  529.     Dim Sqlstr As String
  530.     Dim Findrec As ADODB.Recordset
  531.     
  532.     '文本框内容未曾改变不进行有效性判断
  533.     If TextValiJudgeLock(Index) Then
  534.         TextYxxpd = True
  535.         Exit Function
  536.     End If
  537.     
  538.     '文本框内容为空认为有效,并清空其Tag值
  539.     If Trim(LrText(Index)) = "" Then
  540.         LrText(Index).Tag = ""
  541.         Call Wbklrwbcl(Index)
  542.         TextValiJudgeLock(Index) = True
  543.         TextYxxpd = True
  544.         Exit Function
  545.     End If
  546.     
  547.     '可在此加入不做有效性判断的理由
  548.     
  549.     Select Case Textint(Index, 4)
  550.     Case 1      '编码型
  551.         Sqlstr = Trim(Textstr(Index, 5))
  552.         Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  553.         Sqlstr = Replace(Sqlstr, "#", "'" + Me.sRCode + "'")
  554.         Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  555.         If Findrec.EOF Then
  556.             Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  557.             LrText(Index).SetFocus
  558.             Exit Function
  559.         Else
  560.             Select Case Textint(Index, 3)
  561.             Case 0
  562.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  563.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  564.                 End If
  565.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  566.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  567.                 End If
  568.             Case 1
  569.                 If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  570.                     LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  571.                 End If
  572.                 If Len(Trim(Textstr(Index, 2))) <> 0 Then
  573.                     LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  574.                 End If
  575.             End Select
  576.         End If
  577.     Case 2      '日期型
  578.         If IsDate(LrText(Index).Text) Then
  579.             LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  580.             If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  581.                 LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  582.             End If
  583.         Else
  584.             Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  585.             Call Xtxxts(Tsxx, 0, 1)
  586.             LrText(Index).SetFocus
  587.             Exit Function
  588.         End If
  589.     Case 3      '其他类型
  590.     End Select
  591.     
  592.     '如果有效则加锁,用户不改变内容则不再进行有效性判断
  593.     TextValiJudgeLock(Index) = True
  594.     
  595.     '调用文本框事后处理程序
  596.     Call Wbklrwbcl(Index)
  597.     
  598.     '有效性判断通过则返回True
  599.     TextYxxpd = True
  600.     
  601. End Function