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