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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{D76D7128-4A96-11D3-BD95-D296DC2DD072}#1.0#0"; "VSOCX7.OCX"
  3. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
  4. Begin VB.Form Query_Frm 
  5.    BackColor       =   &H80000004&
  6.    BorderStyle     =   3  'Fixed Dialog
  7.    Caption         =   "通用查询窗体"
  8.    ClientHeight    =   7020
  9.    ClientLeft      =   3150
  10.    ClientTop       =   855
  11.    ClientWidth     =   7005
  12.    Icon            =   "通用查询窗体.frx":0000
  13.    KeyPreview      =   -1  'True
  14.    LinkTopic       =   "Form5"
  15.    LockControls    =   -1  'True
  16.    MaxButton       =   0   'False
  17.    MinButton       =   0   'False
  18.    MousePointer    =   4  'Icon
  19.    ScaleHeight     =   7020
  20.    ScaleWidth      =   7005
  21.    ShowInTaskbar   =   0   'False
  22.    StartUpPosition =   2  '屏幕中心
  23.    Begin MSComctlLib.ProgressBar PB_CheckStatus 
  24.       Height          =   375
  25.       Left            =   150
  26.       TabIndex        =   23
  27.       Top             =   3030
  28.       Visible         =   0   'False
  29.       Width           =   6690
  30.       _ExtentX        =   11800
  31.       _ExtentY        =   661
  32.       _Version        =   393216
  33.       Appearance      =   1
  34.       Scrolling       =   1
  35.    End
  36.    Begin VSFlex8Ctl.VSFlexGrid vsFG_Choose 
  37.       Height          =   2955
  38.       Left            =   4005
  39.       TabIndex        =   3
  40.       Top             =   375
  41.       Width           =   2865
  42.       _ExtentX        =   5054
  43.       _ExtentY        =   5212
  44.       Appearance      =   1
  45.       BorderStyle     =   1
  46.       Enabled         =   -1  'True
  47.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  48.          Name            =   "宋体"
  49.          Size            =   9
  50.          Charset         =   134
  51.          Weight          =   400
  52.          Underline       =   0   'False
  53.          Italic          =   0   'False
  54.          Strikethrough   =   0   'False
  55.       EndProperty
  56.       MousePointer    =   0
  57.       BackColor       =   -2147483643
  58.       ForeColor       =   -2147483640
  59.       BackColorFixed  =   -2147483633
  60.       ForeColorFixed  =   -2147483630
  61.       BackColorSel    =   -2147483635
  62.       ForeColorSel    =   -2147483634
  63.       BackColorBkg    =   -2147483636
  64.       BackColorAlternate=   -2147483643
  65.       GridColor       =   -2147483633
  66.       GridColorFixed  =   -2147483632
  67.       TreeColor       =   -2147483632
  68.       FloodColor      =   192
  69.       SheetBorder     =   -2147483642
  70.       FocusRect       =   1
  71.       HighLight       =   1
  72.       AllowSelection  =   -1  'True
  73.       AllowBigSelection=   -1  'True
  74.       AllowUserResizing=   0
  75.       SelectionMode   =   1
  76.       GridLines       =   1
  77.       GridLinesFixed  =   2
  78.       GridLineWidth   =   1
  79.       Rows            =   0
  80.       Cols            =   10
  81.       FixedRows       =   0
  82.       FixedCols       =   0
  83.       RowHeightMin    =   0
  84.       RowHeightMax    =   0
  85.       ColWidthMin     =   0
  86.       ColWidthMax     =   0
  87.       ExtendLastCol   =   0   'False
  88.       FormatString    =   ""
  89.       ScrollTrack     =   0   'False
  90.       ScrollBars      =   3
  91.       ScrollTips      =   0   'False
  92.       MergeCells      =   0
  93.       MergeCompare    =   0
  94.       AutoResize      =   -1  'True
  95.       AutoSizeMode    =   0
  96.       AutoSearch      =   0
  97.       MultiTotals     =   -1  'True
  98.       SubtotalPosition=   1
  99.       OutlineBar      =   0
  100.       OutlineCol      =   0
  101.       Ellipsis        =   0
  102.       ExplorerBar     =   0
  103.       PicturesOver    =   0   'False
  104.       FillStyle       =   0
  105.       RightToLeft     =   0   'False
  106.       PictureType     =   0
  107.       TabBehavior     =   0
  108.       OwnerDraw       =   0
  109.       Editable        =   0   'False
  110.       ShowComboButton =   -1  'True
  111.       WordWrap        =   0   'False
  112.       TextStyle       =   0
  113.       TextStyleFixed  =   0
  114.       OleDragMode     =   0
  115.       OleDropMode     =   0
  116.       DataMode        =   0
  117.       VirtualData     =   -1  'True
  118.    End
  119.    Begin VB.CommandButton Cmd_OK 
  120.       Caption         =   "确定(&O)"
  121.       Height          =   300
  122.       Left            =   4515
  123.       TabIndex        =   12
  124.       Top             =   6630
  125.       Width           =   1120
  126.    End
  127.    Begin MSComctlLib.TreeView TV_PreField 
  128.       Height          =   2955
  129.       Left            =   165
  130.       TabIndex        =   1
  131.       Top             =   375
  132.       Width           =   3040
  133.       _ExtentX        =   5371
  134.       _ExtentY        =   5212
  135.       _Version        =   393217
  136.       Style           =   7
  137.       Appearance      =   1
  138.    End
  139.    Begin VB.CommandButton Cmd_Remove 
  140.       Caption         =   "<"
  141.       BeginProperty Font 
  142.          Name            =   "宋体"
  143.          Size            =   10.5
  144.          Charset         =   134
  145.          Weight          =   400
  146.          Underline       =   0   'False
  147.          Italic          =   0   'False
  148.          Strikethrough   =   0   'False
  149.       EndProperty
  150.       Height          =   300
  151.       Left            =   3360
  152.       TabIndex        =   21
  153.       TabStop         =   0   'False
  154.       Top             =   1830
  155.       Width           =   500
  156.    End
  157.    Begin VB.Frame Fm_Cond 
  158.       Caption         =   "条件选择"
  159.       Height          =   1095
  160.       Left            =   165
  161.       TabIndex        =   22
  162.       Top             =   3420
  163.       Width           =   6720
  164.       Begin MSComctlLib.ImageCombo ImgCmb_Field 
  165.          Height          =   315
  166.          Left            =   150
  167.          TabIndex        =   5
  168.          Top             =   345
  169.          Width           =   2505
  170.          _ExtentX        =   4419
  171.          _ExtentY        =   556
  172.          _Version        =   393216
  173.          ForeColor       =   -2147483640
  174.          BackColor       =   -2147483643
  175.       End
  176.       Begin VB.CommandButton Cmd_L 
  177.          Caption         =   "("
  178.          Height          =   300
  179.          Left            =   5700
  180.          TabIndex        =   18
  181.          TabStop         =   0   'False
  182.          Top             =   710
  183.          Width           =   300
  184.       End
  185.       Begin VB.CommandButton Cmd_R 
  186.          Caption         =   ")"
  187.          Height          =   300
  188.          Left            =   6265
  189.          TabIndex        =   19
  190.          TabStop         =   0   'False
  191.          Top             =   710
  192.          Width           =   300
  193.       End
  194.       Begin VB.CommandButton Cmd_Add 
  195.          Caption         =   "添加条件(&A)"
  196.          Height          =   300
  197.          Left            =   150
  198.          TabIndex        =   14
  199.          TabStop         =   0   'False
  200.          Top             =   710
  201.          Width           =   1120
  202.       End
  203.       Begin VB.CommandButton Cmd_Clear 
  204.          Caption         =   "清除条件(&L)"
  205.          Height          =   300
  206.          Left            =   1535
  207.          TabIndex        =   15
  208.          TabStop         =   0   'False
  209.          Top             =   710
  210.          Width           =   1120
  211.       End
  212.       Begin VB.CommandButton Cmd_Or 
  213.          Caption         =   "或者(&H)"
  214.          Height          =   300
  215.          Left            =   4325
  216.          TabIndex        =   17
  217.          TabStop         =   0   'False
  218.          Top             =   710
  219.          Width           =   1120
  220.       End
  221.       Begin VB.CommandButton Cmd_And 
  222.          Caption         =   "并且(&B)"
  223.          Height          =   300
  224.          Left            =   2940
  225.          TabIndex        =   16
  226.          TabStop         =   0   'False
  227.          Top             =   710
  228.          Width           =   1120
  229.       End
  230.       Begin MSComctlLib.ImageCombo ImgCmb_Relation 
  231.          Height          =   315
  232.          Left            =   2940
  233.          TabIndex        =   7
  234.          Top             =   345
  235.          Width           =   810
  236.          _ExtentX        =   1429
  237.          _ExtentY        =   556
  238.          _Version        =   393216
  239.          ForeColor       =   -2147483640
  240.          BackColor       =   -2147483643
  241.       End
  242.       Begin MSComctlLib.ImageCombo ImgCmb_Value 
  243.          Height          =   315
  244.          Left            =   4060
  245.          TabIndex        =   9
  246.          Top             =   345
  247.          Width           =   2505
  248.          _ExtentX        =   4419
  249.          _ExtentY        =   556
  250.          _Version        =   393216
  251.          ForeColor       =   -2147483640
  252.          BackColor       =   -2147483643
  253.       End
  254.       Begin VB.Label Lab_Note 
  255.          AutoSize        =   -1  'True
  256.          Caption         =   "项目(&M)"
  257.          Height          =   180
  258.          Index           =   2
  259.          Left            =   1092
  260.          TabIndex        =   4
  261.          Top             =   150
  262.          Width           =   630
  263.       End
  264.       Begin VB.Label Lab_Note 
  265.          AutoSize        =   -1  'True
  266.          Caption         =   "关系(&R)"
  267.          Height          =   180
  268.          Index           =   3
  269.          Left            =   3050
  270.          TabIndex        =   6
  271.          Top             =   150
  272.          Width           =   630
  273.       End
  274.       Begin VB.Label Lab_Note 
  275.          AutoSize        =   -1  'True
  276.          Caption         =   "比较值(&V)"
  277.          Height          =   180
  278.          Index           =   4
  279.          Left            =   4905
  280.          TabIndex        =   8
  281.          Top             =   150
  282.          Width           =   810
  283.       End
  284.    End
  285.    Begin VB.CommandButton Cmd_Choose 
  286.       Caption         =   ">"
  287.       BeginProperty Font 
  288.          Name            =   "宋体"
  289.          Size            =   10.5
  290.          Charset         =   134
  291.          Weight          =   400
  292.          Underline       =   0   'False
  293.          Italic          =   0   'False
  294.          Strikethrough   =   0   'False
  295.       EndProperty
  296.       Height          =   300
  297.       Left            =   3360
  298.       TabIndex        =   20
  299.       TabStop         =   0   'False
  300.       Top             =   1380
  301.       Width           =   500
  302.    End
  303.    Begin VB.TextBox Txt_Query 
  304.       Height          =   1935
  305.       IMEMode         =   1  'ON
  306.       Left            =   330
  307.       MultiLine       =   -1  'True
  308.       ScrollBars      =   2  'Vertical
  309.       TabIndex        =   11
  310.       Top             =   4620
  311.       Width           =   6555
  312.    End
  313.    Begin VB.CommandButton Cmd_Cancel 
  314.       Cancel          =   -1  'True
  315.       Caption         =   "取消(&C)"
  316.       Height          =   300
  317.       Left            =   5760
  318.       TabIndex        =   13
  319.       Top             =   6630
  320.       Width           =   1120
  321.    End
  322.    Begin VB.Label Lab_Note 
  323.       Caption         =   "(&T)"
  324.       Height          =   255
  325.       Index           =   6
  326.       Left            =   60
  327.       TabIndex        =   24
  328.       Top             =   5360
  329.       Width           =   255
  330.    End
  331.    Begin VB.Label Lab_Note 
  332.       AutoSize        =   -1  'True
  333.       Caption         =   "待选项目(&S)"
  334.       Height          =   180
  335.       Index           =   0
  336.       Left            =   165
  337.       TabIndex        =   0
  338.       Top             =   120
  339.       Width           =   990
  340.    End
  341.    Begin VB.Label Lab_Note 
  342.       AutoSize        =   -1  'True
  343.       Caption         =   "查询项目(&X)"
  344.       Height          =   180
  345.       Index           =   1
  346.       Left            =   4005
  347.       TabIndex        =   2
  348.       Top             =   120
  349.       Width           =   990
  350.    End
  351.    Begin VB.Label Lab_Note 
  352.       Caption         =   "显示条件(&T)"
  353.       Height          =   700
  354.       Index           =   5
  355.       Left            =   110
  356.       TabIndex        =   10
  357.       Top             =   4650
  358.       Width           =   225
  359.    End
  360. End
  361. Attribute VB_Name = "Query_Frm"
  362. Attribute VB_GlobalNameSpace = False
  363. Attribute VB_Creatable = False
  364. Attribute VB_PredeclaredId = True
  365. Attribute VB_Exposed = False
  366. '******************************************************************
  367. '*    模 块 名 称 :查询条件
  368. '*    功 能 描 述 :
  369. '*    程序员姓名  :苗鹏
  370. '*    最后修改人  :苗鹏
  371. '*    最后修改时间:2002/01/10
  372. '*    备        注:
  373. '******************************************************************
  374. Dim cQuerys As New CQuery
  375. Dim sFieldOld As String '用以判断是否应该刷新所选字段的值
  376. Public sSqlWhere As String  '返回Where语句
  377. Public collTableName As Collection '用以返回查询条件需要的表
  378. Public bChecked As Boolean
  379. Public QueryTableSql As String
  380. Private Function InitRelation(ImgCmb As ImageCombo) '添加操作符
  381.     With ImgCmb.ComboItems
  382.         .Add , , "="
  383.         .Add , , ">"
  384.         .Add , , "<"
  385.         .Add , , "<>"
  386.         .Add , , ">="
  387.         .Add , , "<="
  388.         .Add , , "Like"
  389.     End With
  390. End Function
  391. Private Sub Cmd_Add_Click() '加入查询条件
  392.     Dim s As String
  393.     s = Me.ImgCmb_Field.Text & " " & Me.ImgCmb_Relation.Text & " " & Me.ImgCmb_Value.Text
  394.     With Me.Txt_Query
  395.         If .SelLength <> 0 Then
  396.             .Text = ReplByPos(.Text, s, .SelStart + 1, .SelStart + .SelLength + 1)
  397.         Else
  398.             .Text = .Text & " " & s
  399.         End If
  400.     End With
  401. End Sub
  402. Private Sub Cmd_And_Click() '加入And
  403.     With Me.Txt_Query
  404.         If .SelLength <> 0 Then
  405.             .Text = ReplByPos(.Text, "并且", .SelStart + 1, .SelStart + .SelLength + 1)
  406.         Else
  407.             .Text = .Text & " " & "并且"
  408.         End If
  409.     End With
  410. End Sub
  411. Private Sub Cmd_Cancel_Click() '退出
  412.     bChecked = False
  413.     sFieldOld = ""
  414.     Unload Me
  415. End Sub
  416. Private Sub Cmd_Choose_Click() '选择字段
  417.     Call TV_PreField_DblClick
  418. End Sub
  419. Private Sub Cmd_Clear_Click() '清空条件
  420.     Me.Txt_Query.Text = ""
  421. End Sub
  422. Private Sub Cmd_L_Click() '左括号
  423.     With Me.Txt_Query
  424.         If .SelLength <> 0 Then
  425.             .Text = ReplByPos(.Text, "(", .SelStart + 1, .SelStart + .SelLength + 1)
  426.         Else
  427.             .Text = .Text & " " & "("
  428.         End If
  429.     End With
  430.     
  431. End Sub
  432. Private Sub Cmd_OK_Click() '验证条件
  433.     Set cQuerys.PB_CheckStatus = Me.PB_CheckStatus
  434.     If cQuerys.CheckFormula(Me.Txt_Query) = True Then
  435.         Me.sSqlWhere = cQuerys.FormulaSys
  436.         cQuerys.GetTableName Me.collTableName
  437.         bChecked = True
  438.     Else
  439.         bChecked = False
  440.         Me.PB_CheckStatus.Visible = False
  441.         Exit Sub
  442.     End If
  443.     Me.PB_CheckStatus.Visible = False
  444.     sFieldOld = ""
  445.     Unload Me
  446. End Sub
  447. Private Sub Cmd_Or_Click() '添加或者
  448.     On Error GoTo ErrCtrl
  449.     With Me.Txt_Query
  450.         If .SelLength <> 0 Then
  451.             .Text = ReplByPos(.Text, "或者", .SelStart + 1, .SelStart + .SelLength + 1)
  452.         Else
  453.             .Text = .Text & " " & "或者"
  454.         End If
  455.     End With
  456.     Exit Sub
  457. ErrCtrl:
  458.     Dim smsg As String
  459.     Dim smsgSys As String
  460.     smsg = GetError(Err.Number)
  461.     smsgSys = Err.Number & Err.Description & "!"
  462.     MsgBox IIf(smsg = "", smsgSys, smsg), vbOKOnly + vbCritical
  463. End Sub
  464. Private Sub Cmd_R_Click() '添加右括号
  465.     On Error GoTo ErrCtrl
  466.     With Me.Txt_Query
  467.         If .SelLength <> 0 Then
  468.             .Text = ReplByPos(.Text, ")", .SelStart + 1, .SelStart + .SelLength + 1)
  469.         Else
  470.             .Text = .Text & " " & ")"
  471.         End If
  472.     End With
  473.     Exit Sub
  474. ErrCtrl:
  475.     Dim smsg As String
  476.     Dim smsgSys As String
  477.     smsg = GetError(Err.Number)
  478.     smsgSys = Err.Number & Err.Description & "!"
  479.     MsgBox IIf(smsg = "", smsgSys, smsg), vbOKOnly + vbCritical
  480. End Sub
  481. Private Sub Cmd_Remove_Click() '删除字段
  482.     Call vsFG_Choose_DblClick
  483. End Sub
  484. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) '快捷方式
  485.     If Shift = 4 Then '按住Alt
  486.         Select Case KeyCode
  487.             Case 190 '>
  488.                 Call Cmd_Choose_Click
  489.             Case 188 '<
  490.                 Call Cmd_Remove_Click
  491.             Case 57 '(
  492.                 Call Cmd_L_Click
  493.             Case 48 ')
  494.                 Call Cmd_R_Click
  495.             Case 65 'A
  496.                 Call Cmd_Add_Click
  497.             Case 66 'B
  498.                 Call Cmd_And_Click
  499.             Case 72 'H
  500.                 Call Cmd_Or_Click
  501.             Case 76 'L
  502.                 Call Cmd_Clear_Click
  503.         End Select
  504.     End If
  505.     
  506. End Sub
  507. Private Sub Form_Load()
  508.     '初始化树
  509.     Call InitView(Me.TV_PreField, QueryTableSql)
  510.     '初始化网格
  511.     InitGrid Me.vsFG_Choose
  512.     '初始化关系
  513.     InitRelation Me.ImgCmb_Relation
  514. End Sub
  515. Private Sub Form_Unload(Cancel As Integer)
  516.     Set cQuerys = Nothing
  517. End Sub
  518. Private Sub ImgCmb_Field_Click() '填充字段的可能值
  519.     With Me.ImgCmb_Field
  520.         If .SelectedItem Is Nothing Then
  521.             Exit Sub
  522.         End If
  523.         If Trim(sFieldOld) <> Trim(.SelectedItem.Key) Then
  524.             FillImgCmb .SelectedItem.Tag, Me.ImgCmb_Value
  525.             sFieldOld = .SelectedItem.Key
  526.         End If
  527.         Me.ImgCmb_Value.Text = ""
  528.     End With
  529. End Sub
  530. Private Function FillImgCmb(sTag As String, ImgCmb As ImageCombo) '填充ImgCmb,Text=Name ,Tag=Code
  531.     On Error GoTo ErrCtrl
  532.     
  533.     Dim s As String
  534.     Dim sID As String
  535.     Dim sTable As String
  536.     Dim sCode As String
  537.     Dim sName As String
  538.     Dim rs As New ADODB.Recordset
  539.     Dim Item As ComboItem
  540.     
  541.     With ImgCmb
  542.         .ComboItems.Clear
  543.         If Trim(sTag) = "" Then
  544.             Exit Function
  545.         End If
  546.         '取得帮助编码
  547.         GetFieldHelp Me.ImgCmb_Field.SelectedItem.Tag, sID, sTable, sCode, sName
  548.         '判断是否有帮助
  549.         If Trim(sID) = "0" Then
  550.             s = UCase("SELECT #sTable.#sCode AS TCode ,#sTable.#sName AS TName FROM #sTable  ")
  551.         Else
  552.             s = UCase("SELECT #sTable.#sCode AS TCode ,#sTable.#sName AS TName FROM #sTable  WHERE SortID='" & sID & "'")
  553.         End If
  554.         s = Replace(s, UCase("#sTable"), UCase(sTable))
  555.         s = Replace(s, UCase("#sCode"), UCase(sCode))
  556.         s = Replace(s, UCase("#sName"), UCase(sName))
  557.         Set rs = Cw_DataEnvi.DataConnect.Execute(s)
  558.         '如果有帮助,添加可能值
  559.         Do While Not rs.EOF()
  560.             Set Item = .ComboItems.Add(, , Trim(rs!TName & ""))
  561.             Item.Tag = Trim(rs!TCode & "")
  562.             rs.MoveNext
  563.         Loop
  564.         rs.Close
  565.     End With
  566.     Set rs = Nothing
  567.     Set Item = Nothing
  568.     Exit Function
  569. ErrCtrl:
  570.     Set rs = Nothing
  571.     Set Item = Nothing
  572.     Dim smsg As String
  573.     Dim smsgSys As String
  574.     smsg = GetError(Err.Number)
  575.     smsgSys = Err.Number & Err.Description & "!"
  576.     MsgBox IIf(smsg = "", smsgSys, smsg), vbOKOnly + vbCritical
  577. End Function
  578. Private Sub TV_PreField_BeforeLabelEdit(Cancel As Integer)
  579.     Cancel = True
  580. End Sub
  581. Private Function ChooseItem(tv As TreeView, vs As vsFlexGrid, ImgCmb As ImageCombo) '选择字段
  582.     On Error GoTo ErrCtrl
  583.     
  584.     Dim nod As Node
  585.     Dim i As Integer
  586.     Dim Item As ComboItem
  587.     Set nod = tv.SelectedItem
  588.     
  589.     If Not nod.Parent Is Nothing Then
  590.         '添加网格
  591.         i = nod.Parent.Index
  592.         With vs
  593.             .AddItem ""
  594.             .TextMatrix(.Rows - 1, 0) = nod.Parent.Key
  595.             .TextMatrix(.Rows - 1, 1) = nod.Parent.Text
  596.             .TextMatrix(.Rows - 1, 2) = nod.Key
  597.             .TextMatrix(.Rows - 1, 3) = nod.Text
  598.             .TextMatrix(.Rows - 1, 4) = nod.Tag
  599.             .TextMatrix(.Rows - 1, 5) = nod.Parent.Text & "." & nod.Text
  600.         End With
  601.         '添加下拉框
  602.         With ImgCmb
  603.             Set Item = .ComboItems.Add(, nod.Key, nod.Parent.Text & "." & nod.Text)
  604.             Item.Tag = nod.Tag
  605.         End With
  606.         '删除节点
  607.         If nod.Parent.Children = 1 Then
  608.             tv.Nodes.Remove nod.Index
  609.             tv.Nodes.Remove i
  610.         Else
  611.             tv.Nodes.Remove nod.Index
  612.         End If
  613.     End If
  614.     Set nod = Nothing
  615.     Exit Function
  616.     
  617. ErrCtrl:
  618.     Dim smsg As String
  619.     Dim smsgSys As String
  620.     smsg = GetError(Err.Number)
  621.     smsgSys = Err.Number & Err.Description & "!"
  622.     MsgBox IIf(smsg = "", smsgSys, smsg), vbOKOnly + vbCritical
  623. End Function
  624. Private Function RemoveItem(vs As vsFlexGrid, tv As TreeView, ImgCmb As ImageCombo) '删除字段
  625.     On Error GoTo ErrCtrl
  626.     
  627.     Dim nod As Node
  628.     '删除ImgCmb
  629.     With ImgCmb
  630.         .ComboItems.Remove (Trim(vs.TextMatrix(vs.Row, 2)))
  631.         .Text = ""
  632.     End With
  633.     '增加树节点
  634.     With Me.TV_PreField
  635.         
  636.         If Not IsNodeExist(Trim(vs.TextMatrix(vs.Row, 0)), Me.TV_PreField) Then
  637.             Set nod = tv.Nodes.Add("R", tvwChild, Trim(vs.TextMatrix(vs.Row, 0)), Trim(vs.TextMatrix(vs.Row, 1)))
  638.             Set nod = tv.Nodes.Add(Trim(vs.TextMatrix(vs.Row, 0)), tvwChild, Trim(vs.TextMatrix(vs.Row, 2)), Trim(vs.TextMatrix(vs.Row, 3)))
  639.             nod.Tag = Trim(vs.TextMatrix(vs.Row, 4))
  640.         Else
  641.             Set nod = tv.Nodes.Add(Trim(vs.TextMatrix(vs.Row, 0)), tvwChild, Trim(vs.TextMatrix(vs.Row, 2)), Trim(vs.TextMatrix(vs.Row, 3)))
  642.             nod.Tag = Trim(vs.TextMatrix(vs.Row, 4))
  643.         End If
  644.         '删除当前行
  645.         vs.RemoveItem (vs.Row)
  646.     End With
  647.     Exit Function
  648.     
  649. ErrCtrl:
  650.     Dim smsg As String
  651.     Dim smsgSys As String
  652.     smsg = GetError(Err.Number)
  653.     smsgSys = Err.Number & Err.Description & "!"
  654.     MsgBox IIf(smsg = "", smsgSys, smsg), vbOKOnly + vbCritical
  655. End Function
  656. Private Function InitGrid(vs As vsFlexGrid) '初始化网格
  657.     '第1列:表的物理名
  658.     '第2列:表的用户名
  659.     '第3列:字段的物理名
  660.     '第4列:字段的帮助信息
  661.     '第5列:字段的用户名
  662.     On Error GoTo ErrCtrl
  663.     
  664.     Dim i As Integer
  665.     With vs
  666.         .Cols = 6
  667.         For i = 0 To .Cols - 2
  668.             .ColHidden(i) = True
  669.         Next i
  670.         .ColWidth(.Cols - 1) = .Width - 100
  671.     End With
  672.     Exit Function
  673.     
  674. ErrCtrl:
  675.     Dim smsg As String
  676.     Dim smsgSys As String
  677.     smsg = GetError(Err.Number)
  678.     smsgSys = Err.Number & Err.Description & "!"
  679.     MsgBox IIf(smsg = "", smsgSys, smsg), vbOKOnly + vbCritical
  680. End Function
  681. Private Sub TV_PreField_DblClick()
  682.     If Me.TV_PreField.SelectedItem Is Nothing Then
  683.         Exit Sub
  684.     End If
  685.     If Me.TV_PreField.SelectedItem.Children = 0 Then
  686.         ChooseItem Me.TV_PreField, Me.vsFG_Choose, Me.ImgCmb_Field
  687.     End If
  688. End Sub
  689. Private Sub TV_PreField_KeyPress(KeyAscii As Integer)
  690.     If KeyAscii = 13 Then
  691.         Call TV_PreField_DblClick
  692.     End If
  693. End Sub
  694. Private Sub vsFG_Choose_DblClick()
  695.     If Me.vsFG_Choose.Rows > 0 Then
  696.         RemoveItem Me.vsFG_Choose, Me.TV_PreField, Me.ImgCmb_Field
  697.     End If
  698. End Sub
  699. Private Sub vsFG_Choose_KeyPress(KeyAscii As Integer)
  700.     If KeyAscii = 13 Then
  701.         Call vsFG_Choose_DblClick
  702.     End If
  703. End Sub