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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form Qr_RsQrtCndFrm 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "定员查询条件"
  5.    ClientHeight    =   1545
  6.    ClientLeft      =   2760
  7.    ClientTop       =   3750
  8.    ClientWidth     =   5490
  9.    Icon            =   "查询_定员查询.frx":0000
  10.    KeyPreview      =   -1  'True
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   1545
  15.    ScaleWidth      =   5490
  16.    ShowInTaskbar   =   0   'False
  17.    StartUpPosition =   1  '所有者中心
  18.    Begin VB.CommandButton Cmd_OK 
  19.       Caption         =   "确定(&O)"
  20.       Default         =   -1  'True
  21.       Height          =   300
  22.       Left            =   3105
  23.       TabIndex        =   5
  24.       Top             =   1185
  25.       Width           =   1120
  26.    End
  27.    Begin VB.CommandButton Cmd_Cancel 
  28.       Cancel          =   -1  'True
  29.       Caption         =   "取消(&C)"
  30.       Height          =   300
  31.       Left            =   4290
  32.       TabIndex        =   6
  33.       Top             =   1185
  34.       Width           =   1120
  35.    End
  36.    Begin VB.Frame Frame1 
  37.       Height          =   1020
  38.       Left            =   90
  39.       TabIndex        =   7
  40.       Top             =   75
  41.       Width           =   5310
  42.       Begin VB.CommandButton Ydcommand1 
  43.          Height          =   300
  44.          Index           =   2
  45.          Left            =   2475
  46.          Picture         =   "查询_定员查询.frx":1042
  47.          Style           =   1  'Graphical
  48.          TabIndex        =   10
  49.          Top             =   600
  50.          Visible         =   0   'False
  51.          Width           =   300
  52.       End
  53.       Begin VB.CommandButton Ydcommand1 
  54.          Height          =   300
  55.          Index           =   3
  56.          Left            =   4830
  57.          Picture         =   "查询_定员查询.frx":13CC
  58.          Style           =   1  'Graphical
  59.          TabIndex        =   4
  60.          TabStop         =   0   'False
  61.          Top             =   600
  62.          Visible         =   0   'False
  63.          Width           =   300
  64.       End
  65.       Begin VB.TextBox LrText 
  66.          Height          =   300
  67.          Index           =   3
  68.          Left            =   3285
  69.          TabIndex        =   3
  70.          Text            =   "3"
  71.          Top             =   600
  72.          Width           =   1575
  73.       End
  74.       Begin VB.TextBox LrText 
  75.          Height          =   300
  76.          Index           =   1
  77.          Left            =   3285
  78.          TabIndex        =   1
  79.          Text            =   "1"
  80.          Top             =   210
  81.          Width           =   1815
  82.       End
  83.       Begin VB.TextBox LrText 
  84.          Height          =   300
  85.          Index           =   0
  86.          Left            =   975
  87.          TabIndex        =   0
  88.          Text            =   "0"
  89.          Top             =   210
  90.          Width           =   1800
  91.       End
  92.       Begin VB.TextBox LrText 
  93.          Height          =   300
  94.          Index           =   2
  95.          Left            =   975
  96.          TabIndex        =   2
  97.          Text            =   "2"
  98.          Top             =   600
  99.          Width           =   1515
  100.       End
  101.       Begin VB.Line Line1 
  102.          Index           =   1
  103.          X1              =   2925
  104.          X2              =   3155
  105.          Y1              =   743
  106.          Y2              =   743
  107.       End
  108.       Begin VB.Line Line1 
  109.          Index           =   0
  110.          X1              =   2925
  111.          X2              =   3155
  112.          Y1              =   353
  113.          Y2              =   353
  114.       End
  115.       Begin VB.Label Lab_Note 
  116.          AutoSize        =   -1  'True
  117.          Caption         =   "部门级别:"
  118.          Height          =   180
  119.          Index           =   0
  120.          Left            =   135
  121.          TabIndex        =   9
  122.          Top             =   270
  123.          Width           =   810
  124.       End
  125.       Begin VB.Label Lab_Note 
  126.          AutoSize        =   -1  'True
  127.          Caption         =   "部门范围:"
  128.          Height          =   180
  129.          Index           =   1
  130.          Left            =   135
  131.          TabIndex        =   8
  132.          Top             =   660
  133.          Width           =   810
  134.       End
  135.    End
  136. End
  137. Attribute VB_Name = "Qr_RsQrtCndFrm"
  138. Attribute VB_GlobalNameSpace = False
  139. Attribute VB_Creatable = False
  140. Attribute VB_PredeclaredId = True
  141. Attribute VB_Exposed = False
  142. '******************************************************************
  143. '*    模 块 名 称 :计划查询条件
  144. '*    功 能 描 述 :设置计划查询条件
  145. '*    程序员姓名  :苗鹏
  146. '*    最后修改人  :苗鹏
  147. '*    最后修改时间:
  148. '*    备        注:
  149. '******************************************************************
  150. Public sSqlWhere As String
  151. Dim iMaxLevel As Integer
  152. Dim iMinLevel As Integer
  153. '以下为固定使用变量(文本框)
  154. Dim Tsxx As String                       '系统信息提示
  155. Dim Textvar() As Variant                 '存储变体型文本框信息
  156. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  157. Dim Textint() As Integer                 '存储整型文本框信息
  158. Dim Textstr() As String                  '存储字符型文本框信息
  159. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  160. Dim TextGroupCode As String              '文本框录入分组编码
  161. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  162. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  163. Dim CurTextIndex As Integer              '当前文本框索引值
  164. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  165. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  166. Private Sub Cmd_Cancel_Click()
  167.     Unload Me
  168. End Sub
  169. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  170.    Dim jdzygs As Integer                         '控件焦点转移个数
  171.    jdzygs = 30
  172.    Select Case KeyAscii
  173.       Case vbKeyReturn
  174.            If Kjjdzy(jdzygs) Then
  175.               KeyAscii = 0
  176.            End If
  177.       Case 39           '屏蔽"'"
  178.         KeyAscii = 0
  179.    End Select
  180. End Sub
  181. Private Sub Form_Load()
  182.     On Error GoTo ErrCtrl
  183.    '以下为文本框处理程序
  184.     TextGroupCode = "Rs_AnRelation"
  185.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  186.     Call Wbkcsh
  187.     
  188.     '部门级别
  189.     Dim rs As New ADODB.Recordset
  190.     Dim s As String
  191.     s = "select Max(CodeLevel) as MaxLevel,Min(CodeLevel) as MinLevel from Gy_Department where RsPmFlag=1"
  192.     Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  193.     If Not rs.EOF() Then
  194.         TextChangeLock = True
  195.         Me.LrText(0).Text = Val(rs!MinLevel & "")
  196.         Me.LrText(1).Text = Val(rs!MaxLevel & "")
  197.         iMaxLevel = Val(rs!MaxLevel & "")
  198.         iMinLevel = Val(rs!MinLevel & "")
  199.         TextChangeLock = False
  200.     End If
  201.     rs.Close
  202.     '部门范围
  203.     s = "select Max(DeptCode) as MaxCode,Min(DeptCode) as MinCode from Gy_Department where RsPmFlag=1"
  204.     Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  205.     If Not rs.EOF() Then
  206.         TextChangeLock = True
  207.         Me.LrText(2).Text = Trim(rs!MinCode & "")
  208.         Me.LrText(3).Text = Trim(rs!MaxCode & "")
  209.         TextChangeLock = False
  210.     End If
  211.     rs.Close
  212.     Set rs = Nothing
  213.     Exit Sub
  214. ErrCtrl:
  215.     If rs.State = 1 Then
  216.         rs.Close
  217.     End If
  218.     Set rs = Nothing
  219. End Sub
  220. Private Sub Cmd_OK_Click()                                   '确 定
  221.     '录入条件有效性判断
  222.     If Not Lrtjyxxpd Then
  223.        Exit Sub
  224.     End If
  225.     Dim s As String
  226.     
  227.     '条件
  228.     If Val(Me.LrText(0).Text) > iMaxLevel Or Val(Me.LrText(1).Text) < iMinLevel Then
  229.         Me.LrText(0).Text = iMinLevel
  230.     End If
  231.     If Val(Me.LrText(1).Text) > iMaxLevel Or Val(Me.LrText(1).Text) < iMinLevel Then
  232.         Me.LrText(1).Text = iMaxLevel
  233.     End If
  234.         
  235.     s = " where RsPmFlag=1 " & Chr(10)
  236.     s = s & " and GY_Department.CodeLevel>=" & Val(Trim(Me.LrText(0).Text)) & Chr(10) _
  237.         & " and GY_Department.CodeLevel <= " & Val(Trim(Me.LrText(1).Text)) & Chr(10)
  238.     If Trim(Me.LrText(2).Text) <> "" Then
  239.         s = s & " and GY_Department.DeptCode >='" & Trim(Me.LrText(2).Text) & "' " & Chr(10)
  240.     End If
  241.     If Trim(Me.LrText(3).Text) <> "" Then
  242.         s = s & " and GY_Department.DeptCode <='" & Trim(Me.LrText(3).Text) & "' " & Chr(10)
  243.     End If
  244.     
  245.     Me.sSqlWhere = s
  246.         
  247.     Me.Hide
  248.     '刷新数据
  249.     With Qr_RsQrtFrm
  250.         .sSqlWhere = Me.sSqlWhere
  251.         .ShowRecord .sSqlWhere
  252.     End With
  253.     
  254. End Sub
  255. Private Sub QxCommand_Click()                                    '取消
  256.     Me.Hide
  257. End Sub
  258. Private Function Lrtjyxxpd() As Boolean                          '用户录入条件有效性判断
  259.  Dim jsqte As Integer
  260.  Lrtjyxxpd = False
  261.  
  262. '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  263.   For jsqte = 0 To Max_Text_Index
  264.     If Textint(jsqte, 9) = 0 Or Textint(jsqte, 9) = 2 Then
  265.       If Not TextYxxpd(jsqte) Then
  266.          Exit Function
  267.       End If
  268.     End If
  269.   Next jsqte
  270.    
  271.  '[>>以下为依据实际情况自定义部分
  272.  
  273.   '查询日期范围应由小到大
  274.   
  275.   
  276.  '<<]以上为依据实际情况自定义部分
  277.  
  278.  Lrtjyxxpd = True
  279. End Function
  280. '************以下为文本框录入处理程序(固定不变部分)*************'
  281. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  282.   '以下为依据实际情况自定义部分[
  283.   
  284.       '在此填写文本框录入事后处理程序
  285.    
  286.   ']以上为依据实际情况自定义部分
  287. End Sub
  288. Private Sub LrText_Change(Index As Integer)
  289.    '屏蔽程序改变控制
  290.    If TextChangeLock Then
  291.       Exit Sub
  292.    End If
  293.    
  294.    TextValiJudgeLock(Index) = False    '打开有效性判断锁
  295.     
  296.     '限制字段录入长度
  297.           
  298.      TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  299.      
  300.      Call TextChangeLimit(LrText(Index), Textint(Index, 1))  '去掉无效字符
  301.      
  302.         Select Case Textint(Index, 1)
  303.            Case 8, 11      '金额型
  304.              Call Sjgskz(LrText(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  305.            Case 9, 12      '数量型
  306.              Call Sjgskz(LrText(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  307.            Case 10          '单价型
  308.              Call Sjgskz(LrText(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  309.            Case Else        '其他小数类型控制
  310.               If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  311.                  Call Sjgskz(LrText(Index), Textint(Index, 6), Textint(Index, 7))
  312.               End If
  313.         End Select
  314.      TextChangeLock = False '解锁
  315. End Sub
  316. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  317.    Call TextShow(Index)
  318.    CurTextIndex = Index
  319.    LrText(Index).SelStart = Len(LrText(Index))
  320. End Sub
  321. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  322.    Select Case KeyCode
  323.       Case vbKeyF2
  324.         Call Text_Help(Index)
  325.    End Select
  326. End Sub
  327. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  328.    Call InputFieldLimit(LrText(Index), Textint(Index, 1), KeyAscii)
  329. End Sub
  330. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  331.   If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  332.      Call TextYxxpd(Index)
  333.   End If
  334. End Sub
  335. Private Sub Ydcommand1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)     '按钮提供帮助
  336.    Call Text_Help(Index)
  337. End Sub
  338. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  339.     If Not Textboolean(Index, 1) Then
  340.        Exit Sub
  341.     End If
  342.     'mp 2001-12-27
  343.     If Me.Ydcommand1(Index).Visible = False Or Me.Ydcommand1(Index).Enabled = False Then
  344.         Exit Sub
  345.     End If
  346.     TextValiJudgeLock(Index) = True
  347.     
  348.      '先进行有效性判断
  349.     If Not TextYxxpd(CurTextIndex) Then
  350.        Exit Sub
  351.     End If
  352.     
  353.      '[>>调入参照窗体
  354.    
  355.         
  356.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(LrText(Index).Text))
  357.      
  358.      '<<]
  359.     If Len(Xtfhcs) <> 0 Then
  360.        If Textint(Index, 3) = 1 Then
  361.           LrText(Index).Text = Xtfhcsfz
  362.           LrText(Index).Tag = Xtfhcs
  363.        Else
  364.           LrText(Index).Text = Xtfhcs
  365.           LrText(Index).Tag = Xtfhcsfz
  366.        End If
  367.     
  368.     End If
  369.    TextValiJudgeLock(Index) = False
  370.    LrText(Index).SetFocus
  371. End Sub
  372. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  373.    '填写文本框得到焦点,进行相应信息处理程序
  374.    
  375. End Sub
  376. Private Sub Wbkcsh()                          '录入文本框初始化
  377.   Dim jsqte As Integer
  378.   
  379.   '最大录入文本框索引值
  380.   Max_Text_Index = Textvar(1)
  381.   
  382.   ReDim TextValiJudgeLock(Max_Text_Index)
  383.   For jsqte = 0 To Max_Text_Index
  384.      
  385.      If Len(Trim(Textstr(jsqte, 1))) <> 0 Then
  386.         If Textboolean(jsqte, 1) Then
  387.             If jsqte <> 0 And Not Textboolean(jsqte, 3) Then
  388.                 Load Ydcommand1(jsqte)
  389.             End If
  390.             Ydcommand1(jsqte).Visible = True
  391.             Ydcommand1(jsqte).Move LrText(jsqte).Left + LrText(jsqte).Width, LrText(jsqte).Top
  392.         End If
  393.         TextChangeLock = True
  394.          LrText(jsqte).Text = ""
  395.          LrText(jsqte).Tag = ""
  396.          If Textint(jsqte, 5) <> 0 Then
  397.             LrText(jsqte).MaxLength = Textint(jsqte, 5)
  398.          End If
  399.         TextChangeLock = False
  400.      End If
  401.      TextValiJudgeLock(jsqte) = True
  402.   Next jsqte
  403. End Sub
  404. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  405.   Dim Sqlstr As String
  406.   Dim Findrec As ADODB.Recordset
  407.   If TextValiJudgeLock(Index) Then    '文本框内容未曾改变不进行有效性判断
  408.      TextYxxpd = True
  409.      Exit Function
  410.   End If
  411.   If Trim(LrText(Index)) = "" Then
  412.      LrText(Index).Tag = ""
  413.      Call Wbklrwbcl(Index)
  414.      TextValiJudgeLock(Index) = True
  415.      TextYxxpd = True
  416.      Exit Function
  417.   End If
  418.        Select Case Textint(Index, 4)
  419.          Case 1      '编码型
  420.             Sqlstr = Trim(Textstr(Index, 5))
  421.             Sqlstr = Replace(Sqlstr, "@", "'" + Trim(LrText(Index).Text) + "'")
  422.             Sqlstr = Replace(Sqlstr, "#", "'" + Trim(Me.Lab_Note(Index).Tag) + "'")
  423.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  424.             If Findrec.EOF Then
  425.                Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  426.                LrText(Index).SetFocus
  427.                Exit Function
  428.             Else
  429.                Select Case Textint(Index, 3)
  430.                  Case 0
  431.                    If Len(Trim(Textstr(Index, 2))) <> 0 Then
  432.                       LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  433.                    End If
  434.                     If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  435.                       LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  436.                    End If
  437.                  Case 1
  438.                    If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  439.                       LrText(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  440.                    End If
  441.                     If Len(Trim(Textstr(Index, 2))) <> 0 Then
  442.                       LrText(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  443.                    End If
  444.                End Select
  445.             End If
  446.          Case 2      '日期型
  447.             If IsDate(LrText(Index).Text) Then
  448.                LrText(Index).Text = Format(LrText(Index).Text, "yyyy-mm-dd")
  449.                If Val(Mid(LrText(Index), 1, 4)) < 1900 Then
  450.                   LrText(Index).Text = "1900" + Mid(LrText(Index), 5, 6)
  451.                End If
  452.              Else
  453.                Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  454.                Call Xtxxts(Tsxx, 0, 1)
  455.                LrText(Index).SetFocus
  456.                Exit Function
  457.             End If
  458.          Case 3      '其他类型
  459.          
  460.        End Select
  461.    TextValiJudgeLock(Index) = True
  462.    TextYxxpd = True
  463. End Function