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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{D76D7128-4A96-11D3-BD95-D296DC2DD072}#1.0#0"; "VSOCX7.OCX"
  3. Begin VB.Form Order_Frm 
  4.    BorderStyle     =   3  'Fixed Dialog
  5.    Caption         =   "排序"
  6.    ClientHeight    =   5055
  7.    ClientLeft      =   45
  8.    ClientTop       =   345
  9.    ClientWidth     =   3540
  10.    Icon            =   "公用_排序.frx":0000
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   5055
  15.    ScaleWidth      =   3540
  16.    ShowInTaskbar   =   0   'False
  17.    StartUpPosition =   1  '所有者中心
  18.    Begin VB.CommandButton Cmd_Cancel 
  19.       Cancel          =   -1  'True
  20.       Caption         =   "取消(&C)"
  21.       Height          =   300
  22.       Left            =   2355
  23.       TabIndex        =   3
  24.       Top             =   4695
  25.       Width           =   1120
  26.    End
  27.    Begin VB.CommandButton Cmd_Clear 
  28.       Caption         =   "全清(&L)"
  29.       Height          =   300
  30.       Left            =   15
  31.       TabIndex        =   2
  32.       Top             =   4695
  33.       Width           =   1120
  34.    End
  35.    Begin VB.CommandButton Cmd_OK 
  36.       Caption         =   "确定(&O)"
  37.       Default         =   -1  'True
  38.       Height          =   300
  39.       Left            =   1185
  40.       TabIndex        =   1
  41.       Top             =   4695
  42.       Width           =   1120
  43.    End
  44.    Begin VSFlex8Ctl.VSFlexGrid vsFlx_GridData 
  45.       Height          =   4530
  46.       Left            =   60
  47.       TabIndex        =   0
  48.       Top             =   90
  49.       Width           =   3390
  50.       _ExtentX        =   5980
  51.       _ExtentY        =   7990
  52.       Appearance      =   1
  53.       BorderStyle     =   1
  54.       Enabled         =   -1  'True
  55.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  56.          Name            =   "宋体"
  57.          Size            =   9
  58.          Charset         =   134
  59.          Weight          =   400
  60.          Underline       =   0   'False
  61.          Italic          =   0   'False
  62.          Strikethrough   =   0   'False
  63.       EndProperty
  64.       MousePointer    =   0
  65.       BackColor       =   16777215
  66.       ForeColor       =   0
  67.       BackColorFixed  =   -2147483644
  68.       ForeColorFixed  =   -2147483630
  69.       BackColorSel    =   -2147483635
  70.       ForeColorSel    =   -2147483634
  71.       BackColorBkg    =   -2147483636
  72.       BackColorAlternate=   16777215
  73.       GridColor       =   -2147483633
  74.       GridColorFixed  =   -2147483632
  75.       TreeColor       =   -2147483632
  76.       FloodColor      =   16777215
  77.       SheetBorder     =   -2147483642
  78.       FocusRect       =   4
  79.       HighLight       =   1
  80.       AllowSelection  =   -1  'True
  81.       AllowBigSelection=   -1  'True
  82.       AllowUserResizing=   0
  83.       SelectionMode   =   0
  84.       GridLines       =   1
  85.       GridLinesFixed  =   2
  86.       GridLineWidth   =   1
  87.       Rows            =   50
  88.       Cols            =   5
  89.       FixedRows       =   1
  90.       FixedCols       =   3
  91.       RowHeightMin    =   0
  92.       RowHeightMax    =   0
  93.       ColWidthMin     =   0
  94.       ColWidthMax     =   0
  95.       ExtendLastCol   =   0   'False
  96.       FormatString    =   ""
  97.       ScrollTrack     =   0   'False
  98.       ScrollBars      =   3
  99.       ScrollTips      =   0   'False
  100.       MergeCells      =   0
  101.       MergeCompare    =   0
  102.       AutoResize      =   -1  'True
  103.       AutoSizeMode    =   0
  104.       AutoSearch      =   0
  105.       MultiTotals     =   -1  'True
  106.       SubtotalPosition=   1
  107.       OutlineBar      =   0
  108.       OutlineCol      =   0
  109.       Ellipsis        =   0
  110.       ExplorerBar     =   0
  111.       PicturesOver    =   0   'False
  112.       FillStyle       =   0
  113.       RightToLeft     =   0   'False
  114.       PictureType     =   0
  115.       TabBehavior     =   0
  116.       OwnerDraw       =   0
  117.       Editable        =   0   'False
  118.       ShowComboButton =   -1  'True
  119.       WordWrap        =   0   'False
  120.       TextStyle       =   0
  121.       TextStyleFixed  =   0
  122.       OleDragMode     =   0
  123.       OleDropMode     =   0
  124.       DataMode        =   0
  125.       VirtualData     =   -1  'True
  126.    End
  127. End
  128. Attribute VB_Name = "Order_Frm"
  129. Attribute VB_GlobalNameSpace = False
  130. Attribute VB_Creatable = False
  131. Attribute VB_PredeclaredId = True
  132. Attribute VB_Exposed = False
  133. '******************************************************************
  134. '*    模 块 名 称 :排序窗体
  135. '*    功 能 描 述 :实现人事信息查询的排序,生成Order By子句
  136. '*    程序员姓名  :苗鹏
  137. '*    最后修改人  :苗鹏
  138. '*    最后修改时间:2002/01/10
  139. '*    备        注:
  140. '******************************************************************
  141. Public Pxsxhao As Integer                '排序顺序号
  142. Dim NumTemp As Long
  143. Dim Backrow As Long                      '上次操作行
  144. Dim Csczbz As Boolean                    '初始操作标志
  145. Public bOrder As Boolean
  146. Public str_SQLOrderBy As String
  147. Dim int_MaxOrderNum As Integer
  148. Dim arrStr_Order() As String
  149. Private Sub Cmd_Cancel_Click()
  150.     bOrder = False
  151.     Unload Me
  152. End Sub
  153. Private Sub Cmd_Clear_Click()
  154.   Me.vsFlx_GridData.Clear 1
  155.   Pxsxhao = 0
  156.   NumTemp = 0
  157.   Backrow = 0
  158.   Csczbz = False
  159. End Sub
  160. Private Sub Cmd_OK_Click() '生成Order语句
  161.     Dim str_temp As String
  162.     Dim int_OrderCount As Integer
  163.     
  164.     str_temp = ""
  165.     int_OrderCount = -1
  166.     With Me.vsFlx_GridData
  167.         '判断有多少排序字段
  168.         For i = .FixedRows To .Rows - 1
  169.             If Trim(.TextMatrix(i, 4)) <> "" Then
  170.                 int_OrderCount = int_OrderCount + 1
  171.             End If
  172.         Next i
  173.         If int_OrderCount = -1 Then Exit Sub
  174.         '生成数组
  175.         ReDim arrStr_Order(int_OrderCount, 1) As String
  176.         For i = .FixedRows To .Rows - 1
  177.             If Trim(.TextMatrix(i, 4)) <> "" Then
  178.                 j = Val(Trim(.TextMatrix(i, 4))) - 1
  179.                 arrStr_Order(j, 0) = Trim(.TextMatrix(i, 0))
  180.                 If Trim(.TextMatrix(i, 3)) = "升序" Then
  181.                     arrStr_Order(j, 1) = ""
  182.                 Else
  183.                     arrStr_Order(j, 1) = "DESC"
  184.                 End If
  185.             End If
  186.         Next i
  187.     End With
  188.     '生成Order语句
  189.     For i = 0 To UBound(arrStr_Order, 1)
  190.         If Trim(str_temp) <> "" Then str_temp = str_temp + ","
  191.         str_temp = str_temp & arrStr_Order(i, 0) & " " & arrStr_Order(i, 1)
  192.     Next i
  193.     If Trim(str_temp) <> "" Then str_temp = " order by " & str_temp
  194.     Me.str_SQLOrderBy = str_temp
  195.     bOrder = True
  196.     Unload Me
  197. End Sub
  198. Private Sub Form_Load()
  199.     Dim str_TempSql As String
  200.     Dim rs_Temp As New ADODB.Recordset
  201.     '初始化网格及填充字段
  202.     int_MaxOrderNum = 0
  203.     str_TempSql = "SELECT Rtrim(TableName)+'.'+Rtrim(FieldName) as FieldName ,ChName as FieldNameC FROM Rs_Items WHERE (SID=1 or Rs=1) AND FieldName<>'Pic' "
  204.     Set rs_Temp = Cw_DataEnvi.DataConnect.Execute(str_TempSql)
  205.     If rs_Temp.EOF() Then Exit Sub
  206.     With Me.vsFlx_GridData
  207.         i = .FixedRows - 1
  208.         .Rows = rs_Temp.RecordCount + 1
  209.         For j = 0 To .Cols - 1
  210.             .ColAlignment(j) = flexAlignLeftCenter
  211.             .FixedAlignment(i) = flexAlignCenterCenter
  212.         Next j
  213.         For j = .FixedRows To .Rows - 1
  214.             .RowHeight(j) = 300
  215.         Next j
  216.         .ColHidden(0) = True
  217.         .ColHidden(1) = True
  218.         .ColWidth(2) = .Width / 3 - 150
  219.         .ColWidth(3) = .Width / 3 - 150
  220.         .ColWidth(4) = .Width / 3 - 150
  221.         .TextMatrix(i, 2) = "项目"
  222.         .TextMatrix(i, 3) = "排序"
  223.         .TextMatrix(i, 4) = "顺序"
  224.         .RowHeight(.FixedRows - 1) = 400
  225.         Pxsxhao = 0
  226.         Do While Not rs_Temp.EOF()
  227.             i = i + 1
  228.             .TextMatrix(i, 0) = Trim(rs_Temp.Fields("FieldName") & "")
  229.             .TextMatrix(i, 2) = Trim(rs_Temp.Fields("FieldNameC") & "")
  230.             rs_Temp.MoveNext
  231.         Loop
  232.     End With
  233. End Sub
  234. Private Sub Form_Unload(Cancel As Integer)
  235.     '设置排序顺序号
  236.     Pxsxhao = 0
  237. End Sub
  238. Private Sub vsFlx_GridData_DblClick()
  239.                   
  240.     With Me.vsFlx_GridData
  241.     
  242.         '排序最大号
  243.         If Not Backrow = .Row Then
  244.             NumTemp = 0
  245.             Pxsxhao = Pxsxhao + 1
  246.         End If
  247.         
  248.         '添加排序
  249.         If NumTemp = 0 Then
  250.             .TextMatrix(.Row, .Cols - 2) = "升序"
  251.             NumTemp = 1
  252.         ElseIf NumTemp = 1 Then
  253.             .TextMatrix(.Row, .Cols - 2) = "降序"
  254.             NumTemp = 2
  255.         Else
  256.             .TextMatrix(.Row, .Cols - 2) = ""
  257.             NumTemp = 0
  258.         End If
  259.         
  260.         '设置排列顺序
  261.         If Not Csczbz Then           '第一次操作网格
  262.             If Not .TextMatrix(.Row, .Cols - 2) = "" Then    '排序
  263.                  Pxsxhao = 1
  264.                  .TextMatrix(.Row, .Cols - 1) = Pxsxhao
  265.             Else
  266.                  Call Cmd_Clear_Click                              '不排序
  267.             End If
  268.         Else
  269.             If .TextMatrix(.Row, .Cols - 1) = "" Then        '首次设置
  270.                 .TextMatrix(.Row, .Cols - 1) = Pxsxhao
  271.             Else
  272.                 For jsqte = .FixedRows To .Rows - 1                  '更新大于单前排序号
  273.                     If Val(.TextMatrix(jsqte, .Cols - 1)) > Val(.TextMatrix(.Row, .Cols - 1)) Then
  274.                         .TextMatrix(jsqte, .Cols - 1) = Val(.TextMatrix(jsqte, .Cols - 1)) - 1
  275.                     End If
  276.                 Next jsqte
  277.                 If Not .TextMatrix(.Row, .Cols - 2) = "" Then     '重新设置
  278.                     If Backrow = .Row Then
  279.                        .TextMatrix(.Row, .Cols - 1) = Pxsxhao
  280.                     Else
  281.                        Pxsxhao = Pxsxhao - 1
  282.                        .TextMatrix(.Row, .Cols - 1) = Pxsxhao
  283.                     End If
  284.                 Else
  285.                     .TextMatrix(.Row, .Cols - 1) = ""
  286.                     Pxsxhao = Pxsxhao - 1
  287.                     Backrow = .FindRow(Pxsxhao, .FixedRows, .Cols - 1)
  288.                     Exit Sub
  289.                 End If
  290.             End If
  291.         End If
  292.         Backrow = .Row
  293.         Csczbz = True
  294.   End With
  295. End Sub