Newsgroup: it.comp.lang.visual-basic
Titolo: Ordinare una MSHFlexGrid

 detto che io debba fare il fiorista....  [Morgan]  <
Visitate il mio sito:
http://digilander.iol.it/Superpork

 Il mio secondo problema consiste nel fatto che nel
riordinare le righe il comando sort scambia anche la prima
colonna che contiene solo una numerazione progressiva e che
quindi dovrebbe rimanere fissa sempre anche dopo un riordino.
Non c'è modo di fissare il contenuto della prima colonna???
Non lo so. Io ho rinumerato dopo ogni sort. Scusami, ma e` la
prima volta che uso la flexgrid. Di solito lavoro con VB4 ma
ieri ho installato VB6WM per prepararmi a un autunno caldo...
Option Explicit
Private Sub Form_Load( _
)
  Dim intRow As Integer
  Dim intCol As Integer
  Call Randomize
  With Me.MSFlexGrid1
    Let .Rows = 9: Let .Cols = 4
    For intCol = 1 To .Cols - 1
      Let .Col = intCol
      For intRow = 1 To .Rows - 1
        Let .Row = intRow
        Select Case intCol
        Case .Cols - 1
          Let .Text _
            = Format$((#8/31/2000# - #8/1/2000# + 1) _
            * Rnd + #8/1/2000#, "dd/mm/yy")
        Case Else
          Let .Text = Chr$((intRow + Asc("A") - 1))
        End Select
      Next
    Next
    Let .Col = .Cols - 1
    Let .Sort = flexSortNumericAscending
    Call Renum
    Let .Row = 1: Let .Col = 1
  End With
End Sub
Private Sub Renum( _
)
  Dim intRow As Integer
  With Me.MSFlexGrid1
    Let .Col = 0
    For intRow = 1 To .Rows - 1
      Let .Row = intRow
      Let .Text = intRow
    Next
  End With
End Sub
--
Ciao.
Maurizio
--------
?SPQR(C)
 X

 ieri ho installato VB6WM per prepararmi a un autunno caldo...
Ciao Maurizio,
scusatemi se approfitto di questo thread ma....
ti sarei molto grato se potessi farmi avere (anche via mail) le prime
impressioni sul passaggio da VB4 a VB6. (magari anche sull'ADO - se lo usi)
Grazie di cuore. Ciao.
--
Princi, 
princ...@programmer.net
--------------------------------------------------------------------------
"Tutti sanno che una cosa è impossibile da realizzare,
finché arriva uno sprovveduto che non lo sa e la inventa." A.E.

 wrote in message
8mmcrf$c11$3...@nslave1.tin.it...


Newsgroups: microsoft.public.vb.syntax
Subject: Re: sort date in listview
Date: Thu, 10 Feb 2000 15:05:13 -0500
I had the same problem. I ended up putting a hidden column at the end and
sorted on that Column when the one I want sorted was clicked.
Example
If you have 5 columns in the listview create a sixth one and set the width
to 0.
Make sure it is the last column or it could be expanded.
Format all data in the hidden column so it will sort correctly.
"Format(Numeral,"00000000.00") " or Format(Date,"yyyy/mm/dd").
when you click on the column to sort call the hidden column and voila.
I don't know if it is not the proper way but it works for me.

 Capito il problema?
Io il problema l'avevo capito... era lui che non aveva capito
me... :(
L'esempietto qui sotto dovrebbe andare un po' meglio... Ho
aggiunto una colonna (nascosta) con la data in formato
numerico per l'ordinamento.
Option Explicit
Private Sub Form_Load( _
)
  Const c_intRows       As Integer = 9
  Const c_intCols       As Integer = 5
  Const c_inColDate     As Integer = 3
  Const c_inColDateSort As Integer = 4
  '
  Dim intRow  As Integer
  Dim intCol  As Integer
  Dim dtmDate As Date
  Call Randomize
  With Me.MSHFlexGrid1
    Let .Rows = c_intRows: Let .Cols = c_intCols
    Let .ColWidth(c_inColDateSort) = 0
    For intRow = 1 To .Rows - 1
      Let dtmDate _
        = (#8/8/2001# - #8/9/2000# + 1) * Rnd + #8/9/2000#
      Let .Row = intRow
      For intCol = 1 To .Cols - 1
        Let .Col = intCol
        Select Case intCol
        Case c_inColDateSort
          Let .Text = CDbl(dtmDate)
        Case c_inColDate
          Let .Text _
            = Format$(dtmDate, "dd/mm/yyyy")
        Case Else
          Let .Text = Chr$((intRow + Asc("A") - 1))
        End Select
      Next
    Next
    Let .Col = c_inColDateSort
    Let .Sort = flexSortNumericAscending
    Call Renum
    Let .Row = 1: Let .Col = 1
  End With
End Sub
--
Ciao.
Maurizio
--------
Q:  Ho due numeri, solo apparentemente uguali: 2 e 2. Che API
devo usare per ottenere 4?
A1: Semplice! "2^2".
A2: Ho letto su un ng USA che si puo fare anche "2**2". Quale
e` meglio?
A3: Tanto tempo fa, quando programmavo in BoH, facevamo "2*2".
O "2+2". Non ricordo.
Q:  Grazie lo stesso! Ho risolto con un ciclo.
--------
?SPQR(C)
 X