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

企业管理

开发平台:

Visual Basic

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