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

企业管理

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{C5DE3F80-3376-11D2-BAA4-04F205C10000}#1.0#0"; "Vsflex6d.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 VSFlex6DAOCtl.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.       _ConvInfo       =   1
  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. Public Pxsxhao As Integer                '排序顺序号
  134. Dim NumTemp As Long
  135. Dim Backrow As Long                      '上次操作行
  136. Dim Csczbz As Boolean                    '初始操作标志
  137. Public bOrder As Boolean
  138. Public str_SQLOrderBy As String
  139. Dim int_MaxOrderNum As Integer
  140. Dim arrStr_Order() As String
  141. Private Sub Cmd_Cancel_Click()
  142.     bOrder = False
  143.     Unload Me
  144. End Sub
  145. Private Sub Cmd_Clear_Click()
  146.   Me.vsFlx_GridData.Clear 1
  147.   Pxsxhao = 0
  148.   NumTemp = 0
  149.   Backrow = 0
  150.   Csczbz = False
  151. End Sub
  152. Private Sub Cmd_OK_Click()
  153.   
  154.   Dim str_temp As String
  155.   Dim int_OrderCount As Integer
  156.   
  157.   str_temp = ""
  158.   int_OrderCount = -1
  159.   With Me.vsFlx_GridData
  160.     For i = .FixedRows To .Rows - 1
  161.       If Trim(.TextMatrix(i, 4)) <> "" Then
  162.         int_OrderCount = int_OrderCount + 1
  163.       End If
  164.     Next i
  165.     If int_OrderCount = -1 Then Exit Sub
  166.     ReDim arrStr_Order(int_OrderCount, 1) As String
  167.     
  168.     For i = .FixedRows To .Rows - 1
  169.       If Trim(.TextMatrix(i, 4)) <> "" Then
  170.         j = Val(Trim(.TextMatrix(i, 4))) - 1
  171.         arrStr_Order(j, 0) = Trim(.TextMatrix(i, 0))
  172.         If Trim(.TextMatrix(i, 3)) = "升序" Then
  173.           arrStr_Order(j, 1) = ""
  174.         Else
  175.           arrStr_Order(j, 1) = "DESC"
  176.         End If
  177.       End If
  178.     Next i
  179.   End With
  180.   For i = 0 To UBound(arrStr_Order, 1)
  181.     If Trim(str_temp) <> "" Then str_temp = str_temp + ","
  182.     str_temp = str_temp & arrStr_Order(i, 0) & " " & arrStr_Order(i, 1)
  183.   Next i
  184.   If Trim(str_temp) <> "" Then str_temp = " order by " & str_temp
  185.   Me.str_SQLOrderBy = str_temp
  186.   bOrder = True
  187.   Unload Me
  188.   
  189. End Sub
  190. Private Sub Form_Load()
  191.   int_MaxOrderNum = 0
  192.   Dim str_TempSql As String
  193.   Dim rs_Temp As New ADODB.Recordset
  194.   
  195.   str_TempSql = "select Rtrim(TableName)+'.'+Rtrim(FieldName) as FieldName ,ChName as FieldNameC from Rs_Items where (SID=1 or Rs=1) and FieldName<>'Pic' "
  196.   Set rs_Temp = Cw_DataEnvi.DataConnect.Execute(str_TempSql)
  197.   If rs_Temp.EOF() Then Exit Sub
  198.   
  199.   With Me.vsFlx_GridData
  200.     i = .FixedRows - 1
  201.     .Rows = rs_Temp.RecordCount + 1
  202.     
  203.     
  204.     For j = 0 To .Cols - 1
  205.       .ColAlignment(j) = flexAlignLeftCenter
  206.       .FixedAlignment(i) = flexAlignCenterCenter
  207.     Next j
  208.     For j = .FixedRows To .Rows - 1
  209.       .RowHeight(j) = 300
  210.     Next j
  211.     
  212.     .ColHidden(0) = True
  213.     .ColHidden(1) = True
  214.     .ColWidth(2) = .Width / 3 - 150
  215.     .ColWidth(3) = .Width / 3 - 150
  216.     .ColWidth(4) = .Width / 3 - 150
  217.     .TextMatrix(i, 2) = "项目"
  218.     .TextMatrix(i, 3) = "排序"
  219.     .TextMatrix(i, 4) = "顺序"
  220.     .RowHeight(.FixedRows - 1) = 400
  221.     Pxsxhao = 0
  222.     Do While Not rs_Temp.EOF()
  223.       i = i + 1
  224.       .TextMatrix(i, 0) = Trim(rs_Temp.Fields("FieldName") & "")
  225.       .TextMatrix(i, 2) = Trim(rs_Temp.Fields("FieldNameC") & "")
  226.       rs_Temp.MoveNext
  227.     Loop
  228.   End With
  229. End Sub
  230. Private Sub Form_Unload(Cancel As Integer)
  231. Pxsxhao = 0
  232. End Sub
  233. Private Sub vsFlx_GridData_DblClick()
  234.                   
  235.   With Me.vsFlx_GridData
  236.     
  237.     '排序最大号
  238.     If Not Backrow = .Row Then
  239.        NumTemp = 0
  240.        Pxsxhao = Pxsxhao + 1
  241.     End If
  242.     
  243.     '添加排序
  244.     If NumTemp = 0 Then
  245.        .TextMatrix(.Row, .Cols - 2) = "升序"
  246.        NumTemp = 1
  247.     ElseIf NumTemp = 1 Then
  248.        .TextMatrix(.Row, .Cols - 2) = "降序"
  249.        NumTemp = 2
  250.     Else
  251.        .TextMatrix(.Row, .Cols - 2) = ""
  252.        NumTemp = 0
  253.     End If
  254.     
  255.     '设置排列顺序
  256.     If Not Csczbz Then           '第一次操作网格
  257.        If Not .TextMatrix(.Row, .Cols - 2) = "" Then    '排序
  258.           Pxsxhao = 1
  259.           .TextMatrix(.Row, .Cols - 1) = Pxsxhao
  260.        Else
  261.            Call Cmd_Clear_Click                              '不排序
  262.        End If
  263.     Else
  264.        If .TextMatrix(.Row, .Cols - 1) = "" Then        '首次设置
  265.           .TextMatrix(.Row, .Cols - 1) = Pxsxhao
  266.        Else
  267.           For jsqte = .FixedRows To .Rows - 1                  '更新大于单前排序号
  268.             If Val(.TextMatrix(jsqte, .Cols - 1)) > Val(.TextMatrix(.Row, .Cols - 1)) Then
  269.                .TextMatrix(jsqte, .Cols - 1) = Val(.TextMatrix(jsqte, .Cols - 1)) - 1
  270.             End If
  271.           Next jsqte
  272.           
  273.           If Not .TextMatrix(.Row, .Cols - 2) = "" Then     '重新设置
  274.              If Backrow = .Row Then
  275.                 .TextMatrix(.Row, .Cols - 1) = Pxsxhao
  276.              Else
  277.                 Pxsxhao = Pxsxhao - 1
  278.                 .TextMatrix(.Row, .Cols - 1) = Pxsxhao
  279.              End If
  280.              
  281.           Else
  282.              .TextMatrix(.Row, .Cols - 1) = ""
  283.               
  284.                 Pxsxhao = Pxsxhao - 1
  285.                         
  286.              Backrow = .FindRow(Pxsxhao, .FixedRows, .Cols - 1)
  287.              Exit Sub
  288.           End If
  289.        End If
  290.     End If
  291.     
  292.     Backrow = .Row
  293.     Csczbz = True
  294.   End With
  295. End Sub