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

企业管理

开发平台:

Visual Basic

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