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