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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Begin VB.Form Book_Parti_Search 
  3.    BorderStyle     =   3  'Fixed Dialog
  4.    Caption         =   "资产明细帐查询条件"
  5.    ClientHeight    =   2460
  6.    ClientLeft      =   45
  7.    ClientTop       =   330
  8.    ClientWidth     =   4455
  9.    HelpContextID   =   505005
  10.    Icon            =   "明细帐查询条件.frx":0000
  11.    KeyPreview      =   -1  'True
  12.    LinkTopic       =   "Form1"
  13.    LockControls    =   -1  'True
  14.    MaxButton       =   0   'False
  15.    MinButton       =   0   'False
  16.    ScaleHeight     =   2460
  17.    ScaleWidth      =   4455
  18.    ShowInTaskbar   =   0   'False
  19.    StartUpPosition =   2  '屏幕中心
  20.    Begin VB.CommandButton Command_Clear 
  21.       Caption         =   "全清"
  22.       Height          =   300
  23.       Left            =   60
  24.       TabIndex        =   17
  25.       Top             =   2100
  26.       Width           =   1120
  27.    End
  28.    Begin VB.Frame Frame1 
  29.       ForeColor       =   &H00FF0000&
  30.       Height          =   2025
  31.       Left            =   60
  32.       TabIndex        =   10
  33.       Top             =   0
  34.       Width           =   4335
  35.       Begin VB.CommandButton Ydcommand 
  36.          Height          =   300
  37.          Index           =   2
  38.          Left            =   3855
  39.          Picture         =   "明细帐查询条件.frx":1042
  40.          Style           =   1  'Graphical
  41.          TabIndex        =   19
  42.          Top             =   930
  43.          Width           =   300
  44.       End
  45.       Begin VB.CommandButton Ydcommand 
  46.          Height          =   300
  47.          Index           =   1
  48.          Left            =   3855
  49.          Picture         =   "明细帐查询条件.frx":13CC
  50.          Style           =   1  'Graphical
  51.          TabIndex        =   18
  52.          Top             =   570
  53.          Width           =   300
  54.       End
  55.       Begin VB.ComboBox Com_Year 
  56.          Height          =   300
  57.          Index           =   1
  58.          Left            =   2820
  59.          Style           =   2  'Dropdown List
  60.          TabIndex        =   4
  61.          Top             =   1290
  62.          Width           =   1335
  63.       End
  64.       Begin VB.ComboBox Com_Year 
  65.          Height          =   300
  66.          Index           =   0
  67.          Left            =   1050
  68.          Style           =   2  'Dropdown List
  69.          TabIndex        =   3
  70.          Top             =   1290
  71.          Width           =   1335
  72.       End
  73.       Begin VB.TextBox lrtext 
  74.          Height          =   300
  75.          Index           =   2
  76.          Left            =   1050
  77.          MaxLength       =   20
  78.          TabIndex        =   2
  79.          Top             =   930
  80.          Width           =   2805
  81.       End
  82.       Begin VB.OptionButton Opt_No 
  83.          Caption         =   "否"
  84.          Height          =   180
  85.          Left            =   1920
  86.          TabIndex        =   6
  87.          Top             =   1710
  88.          Width           =   555
  89.       End
  90.       Begin VB.OptionButton Opt_Yes 
  91.          Caption         =   "是"
  92.          Height          =   225
  93.          Left            =   1230
  94.          TabIndex        =   5
  95.          Top             =   1695
  96.          Value           =   -1  'True
  97.          Width           =   495
  98.       End
  99.       Begin VB.TextBox lrtext 
  100.          Height          =   300
  101.          Index           =   1
  102.          Left            =   1050
  103.          MaxLength       =   20
  104.          TabIndex        =   1
  105.          Top             =   570
  106.          Width           =   2805
  107.       End
  108.       Begin VB.TextBox lrtext 
  109.          Height          =   300
  110.          Index           =   0
  111.          Left            =   1050
  112.          MaxLength       =   20
  113.          TabIndex        =   0
  114.          Top             =   210
  115.          Width           =   2805
  116.       End
  117.       Begin VB.CommandButton Ydcommand 
  118.          Height          =   300
  119.          Index           =   0
  120.          Left            =   3855
  121.          Picture         =   "明细帐查询条件.frx":1756
  122.          Style           =   1  'Graphical
  123.          TabIndex        =   11
  124.          Top             =   210
  125.          Width           =   300
  126.       End
  127.       Begin VB.Line Line1 
  128.          X1              =   2490
  129.          X2              =   2670
  130.          Y1              =   1440
  131.          Y2              =   1440
  132.       End
  133.       Begin VB.Label Label3 
  134.          AutoSize        =   -1  'True
  135.          Caption         =   "会计期间:"
  136.          Height          =   180
  137.          Left            =   180
  138.          TabIndex        =   16
  139.          Top             =   1350
  140.          Width           =   810
  141.       End
  142.       Begin VB.Label Label2 
  143.          AutoSize        =   -1  'True
  144.          Caption         =   "期间合计:"
  145.          Height          =   180
  146.          Left            =   180
  147.          TabIndex        =   15
  148.          Top             =   1710
  149.          Width           =   810
  150.       End
  151.       Begin VB.Label Label1 
  152.          AutoSize        =   -1  'True
  153.          Caption         =   "卡片编号:"
  154.          Height          =   180
  155.          Index           =   2
  156.          Left            =   180
  157.          TabIndex        =   14
  158.          Top             =   990
  159.          Width           =   810
  160.       End
  161.       Begin VB.Label Label1 
  162.          AutoSize        =   -1  'True
  163.          Caption         =   "所属部门:"
  164.          Height          =   180
  165.          Index           =   1
  166.          Left            =   180
  167.          TabIndex        =   13
  168.          Top             =   630
  169.          Width           =   810
  170.       End
  171.       Begin VB.Label Label1 
  172.          AutoSize        =   -1  'True
  173.          Caption         =   "资产类别:"
  174.          Height          =   180
  175.          Index           =   0
  176.          Left            =   180
  177.          TabIndex        =   12
  178.          Top             =   270
  179.          Width           =   810
  180.       End
  181.    End
  182.    Begin VB.CommandButton QdCommand 
  183.       Caption         =   "确定(&O)"
  184.       Height          =   300
  185.       Left            =   2075
  186.       TabIndex        =   7
  187.       Top             =   2100
  188.       Width           =   1120
  189.    End
  190.    Begin VB.CommandButton QxCommand 
  191.       Cancel          =   -1  'True
  192.       Caption         =   "取消(&C)"
  193.       Height          =   300
  194.       Left            =   3275
  195.       TabIndex        =   8
  196.       Top             =   2100
  197.       Width           =   1120
  198.    End
  199.    Begin VB.CheckBox UnloadCheck 
  200.       Caption         =   "卸载窗体"
  201.       Height          =   615
  202.       Left            =   330
  203.       TabIndex        =   9
  204.       Top             =   3360
  205.       Width           =   825
  206.    End
  207. End
  208. Attribute VB_Name = "Book_Parti_Search"
  209. Attribute VB_GlobalNameSpace = False
  210. Attribute VB_Creatable = False
  211. Attribute VB_PredeclaredId = True
  212. Attribute VB_Exposed = False
  213. '******************************************************************
  214. '*    模 块 名 称 :资产变动报表
  215. '*    功 能 描 述 :
  216. '*    程序员姓名  :徐衍民
  217. '*    最后修改人  :徐衍民
  218. '*    最后修改时间:2001/12/17
  219. '*    备        注:
  220. '******************************************************************
  221. Dim Tsxx As String                       '系统信息提示
  222. Dim Rs_Temp As ADODB.Recordset           '打开数据集变量
  223. Dim rstemp As ADODB.Recordset            '打开数据集变量
  224. '以下为固定使用变量(文本框)
  225. Dim Textvar() As Variant                 '存储变体型文本框信息
  226. Dim Textboolean() As Boolean             '存储布尔型文本框信息
  227. Dim Textint() As Integer                 '存储整型文本框信息
  228. Dim Textstr() As String                  '存储字符型文本框信息
  229. Dim Max_Text_Index As Integer            '最大录入文本框索引值
  230. Dim TextGroupCode As String              '文本框录入分组编码
  231. Dim TextValiLock As Boolean              '文本框失去焦点是否进行有效性控制判断
  232. Dim TextValiJudgeLock() As Boolean       '文本框录入有效性判断控制锁
  233. Dim CurTextIndex As Integer              '当前文本框索引值
  234. Dim TextChangeLock As Boolean            '文本框内容变换控制锁
  235. Dim Bln_Cancel As Boolean                '取消按钮信息传递
  236. Private Sub Command_Clear_Click()        '全清
  237.     Dim i As Integer
  238.     For i = 0 To lrtext.count - 1
  239.         lrtext(i).Text = ""
  240.     Next i
  241.     
  242.     Opt_Yes.Value = True
  243.     lrtext(0).SetFocus
  244.     
  245. End Sub
  246. Private Sub Form_KeyPress(KeyAscii As Integer)   '控 制 焦 点 转 移
  247.     
  248.     Dim jdzygs As Integer                         '控件焦点转移个数
  249.     jdzygs = 9
  250.     Select Case KeyAscii
  251.         Case vbKeyReturn
  252.             If Kjjdzy(jdzygs) Then
  253.                 KeyAscii = 0
  254.             End If
  255.         Case 39           '屏蔽"'"
  256.             KeyAscii = 0
  257.     End Select
  258. End Sub
  259. Private Sub Form_Load()                 '窗体装入
  260.     Dim i As Integer
  261.     
  262.     '以下为文本框处理程序
  263.     TextGroupCode = "Gdzc_Parti_Search"
  264.     Call Drwbkxx(TextGroupCode, Textvar(), Textboolean(), Textint(), Textstr())  '读入文本框录入信息
  265.     Call Wbkcsh
  266.     Set rstemp = New ADODB.Recordset
  267.     rstemp.Open "select Distinct Year,Period from Gdzc_DetailedForm order by Year,Period", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  268.     While Not rstemp.EOF
  269.         Com_Year(0).AddItem rstemp!Year & "." & IIf(rstemp!Period < 10, "0" & rstemp!Period, rstemp!Period)
  270.         Com_Year(1).AddItem rstemp!Year & "." & IIf(rstemp!Period < 10, "0" & rstemp!Period, rstemp!Period)
  271.         rstemp.MoveNext
  272.     Wend
  273.     rstemp.Close
  274.     Set rstemp = Nothing
  275.     
  276.     If Com_Year(0).ListCount > 0 Then Com_Year(0).Text = Com_Year(0).List(0)
  277.     If Com_Year(1).ListCount > 0 Then Com_Year(1).Text = Com_Year(1).List(Com_Year(1).ListCount - 1)
  278.     
  279. End Sub
  280. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  281.     
  282.     If UnloadCheck.Value <> 1 Then
  283.         Cancel = 1
  284.         Me.Hide
  285.     End If
  286. End Sub
  287. Private Sub QdCommand_Click()                                   '确 定
  288.     
  289.     '录入条件有效性判断
  290.     If Not Lrtjyxxpd Then
  291.         Exit Sub
  292.     End If
  293.     Me.Hide
  294.         
  295.     '激活查询过程
  296.     Book_Parti.Timer1.Enabled = True
  297.     Book_Parti.Show
  298.     Book_Parti.SetFocus
  299. End Sub
  300. Private Sub QxCommand_Click()                                    '取消
  301.     For Jsqte = 0 To Max_Text_Index
  302.         lrtext(Jsqte).Tag = ""
  303.         lrtext(Jsqte).Text = ""
  304.     Next Jsqte
  305.     Me.Hide
  306.     Book_Parti.SzToolbar.Buttons("cx").Enabled = True
  307.     
  308. End Sub
  309. Private Function Lrtjyxxpd() As Boolean                          '用户录入条件有效性判断
  310.  
  311.     Dim Jsqte As Integer
  312.     Lrtjyxxpd = False
  313.  
  314.     '对需要进行事后判断的文本框录入内容进行有效性判断 (固定不变)
  315.     For Jsqte = 0 To Max_Text_Index
  316.         If Textint(Jsqte, 9) = 0 Or Textint(Jsqte, 9) = 2 Then
  317.             If Not TextYxxpd(Jsqte) Then
  318.                 Exit Function
  319.             End If
  320.         End If
  321.     Next Jsqte
  322.    
  323.     '[>>以下为依据实际情况自定义部分
  324.  
  325.     '会计期间范围应由小到大
  326.     If Trim(Com_Year(0).Text) <> "" And Trim(Com_Year(1).Text) <> "" Then
  327.         If Val(LeftChar(Trim(Com_Year(1).Text)) + RightChar(Trim(Com_Year(1).Text))) < Val(LeftChar(Trim(Com_Year(0).Text)) + RightChar(Trim(Com_Year(0).Text))) Then
  328.             Tsxx = "查询会计期间应由小到大!"
  329.             Call Xtxxts(Tsxx, 0, 4)
  330.             lrtext(0).SetFocus
  331.             Exit Function
  332.         End If
  333.     End If
  334.     '<<]以上为依据实际情况自定义部分
  335.  
  336.     Lrtjyxxpd = True
  337. End Function
  338. Private Sub Cmd_Clear_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)    '将用户输入条件全部清除
  339.     
  340.     '清除文本框
  341.     For Jsqte = 0 To Max_Text_Index
  342.         lrtext(Jsqte).Tag = ""
  343.         lrtext(Jsqte).Text = ""
  344.     Next Jsqte
  345.     
  346. End Sub
  347. '*******************以下区域为编写自定义过程区域**********************
  348. '取右字符串
  349. Function RightChar(str As String) As String
  350.     If str = "" Then Exit Function
  351.     
  352.     Dim i As Integer
  353.     
  354.     i = InStrRev(str, ".")
  355.     RightChar = Mid(str, i + 1)
  356.     
  357. End Function
  358. '取左字符串
  359. Function LeftChar(str As String) As String
  360.     If str = "" Then Exit Function
  361.     
  362.     Dim i As Integer
  363.         
  364.     i = InStr(str, ".")
  365.     LeftChar = Mid(str, 1, i - 1)
  366.     
  367. End Function
  368. '*******************以上区域为编写自定义过程区域**********************
  369. '************以下为文本框录入处理程序(固定不变部分)*************'
  370. Private Sub Wbklrwbcl(Index As Integer)    '文本框录入事后处理程序
  371.     '以下为依据实际情况自定义部分[
  372.     
  373.     '在此填写文本框录入事后处理程序
  374.     
  375.     ']以上为依据实际情况自定义部分
  376. End Sub
  377. Private Sub LrText_Change(Index As Integer)
  378.     '屏蔽程序改变控制
  379.     If TextChangeLock Then
  380.         Exit Sub
  381.     End If
  382.    
  383.     TextValiJudgeLock(Index) = False    '打开有效性判断锁
  384.     
  385.     '限制字段录入长度
  386.           
  387.     TextChangeLock = True  '加锁(防止执行Lrtext_Change)
  388.     Select Case Textint(Index, 1)
  389.         Case 8, 11      '金额型
  390.             Call Sjgskz(lrtext(Index), Xtjezws - Xtjexsws - 1, Xtjexsws)
  391.         Case 9, 12      '数量型
  392.             Call Sjgskz(lrtext(Index), Xtslzws - Xtslxsws - 1, Xtslxsws)
  393.         Case 10          '单价型
  394.             Call Sjgskz(lrtext(Index), Xtdjzws - Xtdjxsws - 1, Xtdjxsws)
  395.         Case Else        '其他小数类型控制
  396.             If Textint(Index, 6) <> 0 Or Textint(Index, 7) <> 0 Then
  397.                 Call Sjgskz(lrtext(Index), Textint(Index, 6), Textint(Index, 7))
  398.             End If
  399.     End Select
  400.     
  401.     TextChangeLock = False '解锁
  402. End Sub
  403. Private Sub LrText_GotFocus(Index As Integer)                                                 '文本框得到焦点,显示相应信息
  404.     
  405.     Call TextShow(Index)
  406.     CurTextIndex = Index
  407.     lrtext(Index).SelStart = Len(lrtext(Index))
  408. End Sub
  409. Private Sub LrText_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)            '字段按F2键提供帮助
  410.     
  411.     Select Case KeyCode
  412.         Case vbKeyF2
  413.             Call Text_Help(Index)
  414.     End Select
  415. End Sub
  416. Private Sub LrText_KeyPress(Index As Integer, KeyAscii As Integer)                            '文本框录入事中控制
  417.     Call InputFieldLimit(lrtext(Index), Textint(Index, 1), KeyAscii)
  418. End Sub
  419. Private Sub LrText_LostFocus(Index As Integer)                                                '文本框失去焦点进行有效性判断及相应处理
  420.     
  421.     If Textint(Index, 9) = 0 Or Textint(Index, 9) = 1 Then '事中判断
  422.         Call TextYxxpd(Index)
  423.     End If
  424. End Sub
  425. Private Sub ydcommand_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single)     '按钮提供帮助
  426.     Call Text_Help(Index)
  427. End Sub
  428. Private Sub Text_Help(Index As Integer)                                                       '录入字段帮助
  429.     
  430.     If Not Textboolean(Index, 1) Then
  431.         Exit Sub
  432.     End If
  433.     TextValiJudgeLock(Index) = True
  434.    
  435.     '先进行有效性判断
  436.     If Not TextYxxpd(CurTextIndex) Then
  437.         Exit Sub
  438.     End If
  439.      
  440.     '[>>调入参照窗体
  441.     Call Drbmhelp(Textint(Index, 2), Textstr(Index, 4), Trim(lrtext(Index).Text))
  442.      '<<]
  443.     If Len(Xtfhcs) <> 0 Then
  444.         If Textint(Index, 3) = 1 Then
  445.             lrtext(Index).Text = Xtfhcsfz
  446.             lrtext(Index).Tag = Xtfhcs
  447.         Else
  448.             lrtext(Index).Text = Xtfhcs
  449.             lrtext(Index).Tag = Xtfhcsfz
  450.         End If
  451.     End If
  452.     TextValiJudgeLock(Index) = False
  453.     lrtext(Index).SetFocus
  454. End Sub
  455. Private Sub TextShow(Index As Integer)        '文本框得到焦点,显示相应信息
  456.     '填写文本框得到焦点,进行相应信息处理程序
  457.    
  458. End Sub
  459. Private Sub Wbkcsh()                          '录入文本框初始化
  460.   
  461.     Dim Jsqte As Integer
  462.   
  463.     '最大录入文本框索引值
  464.     Max_Text_Index = Textvar(1)
  465.   
  466.     ReDim TextValiJudgeLock(Max_Text_Index)
  467.     For Jsqte = 0 To Max_Text_Index
  468.         lrtext(Jsqte).Text = ""
  469.     Next Jsqte
  470.     For Jsqte = 0 To Max_Text_Index
  471.         If Len(Trim(Textstr(Jsqte, 1))) <> 0 Then
  472.             If Textboolean(Jsqte, 1) Then
  473.                 If Jsqte <> 0 And Not Textboolean(Jsqte, 3) Then
  474.                     Load ydcommand(Jsqte)
  475.                 End If
  476.                 ydcommand(Jsqte).Visible = True
  477.                 ydcommand(Jsqte).Move lrtext(Jsqte).Left + lrtext(Jsqte).Width, lrtext(Jsqte).Top
  478.             End If
  479.             TextChangeLock = True
  480.             lrtext(Jsqte).Text = ""
  481.             lrtext(Jsqte).Tag = ""
  482.             If Textint(Jsqte, 5) <> 0 Then
  483.                 lrtext(Jsqte).MaxLength = Textint(Jsqte, 5)
  484.             End If
  485.             TextChangeLock = False
  486.         End If
  487.         TextValiJudgeLock(Jsqte) = True
  488.     Next Jsqte
  489. End Sub
  490. Private Function TextYxxpd(Index As Integer) As Boolean           '文本框有效性判断
  491.     
  492.     Dim Sqlstr As String
  493.     Dim Findrec As ADODB.Recordset
  494.     
  495.     If TextValiJudgeLock(Index) Then    '文本框内容未曾改变不进行有效性判断
  496.         TextYxxpd = True
  497.         Exit Function
  498.     End If
  499.     
  500.     If Trim(lrtext(Index)) = "" Then
  501.         lrtext(Index).Tag = ""
  502.         Call Wbklrwbcl(Index)
  503.         TextValiJudgeLock(Index) = True
  504.         TextYxxpd = True
  505.         Exit Function
  506.     End If
  507.     
  508.     Select Case Textint(Index, 4)
  509.         Case 1      '编码型
  510.             Sqlstr = Trim(Textstr(Index, 5))
  511.             Sqlstr = Replace(Sqlstr, "@", "'" + Trim(lrtext(Index).Text) + "'")
  512.             Set Findrec = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
  513.             If Findrec.EOF Then
  514.                 Call Xtxxts(Trim(Textstr(Index, 6)), 0, 1)
  515.                 lrtext(Index).SetFocus
  516.                 Exit Function
  517.             Else
  518.                 Select Case Textint(Index, 3)
  519.                     Case 0
  520.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  521.                             lrtext(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  522.                         End If
  523.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  524.                             lrtext(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  525.                         End If
  526.                     Case 1
  527.                         If Len(Trim(Textstr(Index, 3) & "")) <> 0 Then
  528.                             lrtext(Index).Text = Trim(Findrec.Fields(Trim(Textstr(Index, 3))))
  529.                         End If
  530.                         If Len(Trim(Textstr(Index, 2))) <> 0 Then
  531.                             lrtext(Index).Tag = Trim(Findrec.Fields(Trim(Textstr(Index, 2))))
  532.                         End If
  533.                 End Select
  534.             End If
  535.         Case 2      '日期型
  536.             If IsDate(lrtext(Index).Text) Then
  537.                 lrtext(Index).Text = Format(lrtext(Index).Text, "yyyy-mm-dd")
  538.                 If Val(Mid(lrtext(Index), 1, 4)) < 1900 Then
  539.                     lrtext(Index).Text = "1900" + Mid(lrtext(Index), 5, 6)
  540.                 End If
  541.             Else
  542.                 Tsxx = "非法公历日期!(格式:" + Format(Date, "yyyy-mm-dd") + ")"
  543.                 Call Xtxxts(Tsxx, 0, 1)
  544.                 lrtext(Index).SetFocus
  545.                 Exit Function
  546.             End If
  547.         Case 3      '其他类型
  548.             If Index = 6 Then
  549.                 Set Rs_Temp = New ADODB.Recordset
  550.                 Rs_Temp.Open "select * from gdzc_sort where FASortCode='" & Trim(lrtext(Index).Text) & "'", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
  551.                 If Rs_Temp.EOF Then
  552.                 
  553.                 End If
  554.                 Rs_Temp.Close
  555.                 Set Rs_Temp = Nothing
  556.             End If
  557.     End Select
  558.     
  559.     TextValiJudgeLock(Index) = True
  560.     TextYxxpd = True
  561. End Function