Gambas-it

Gambas3 => Programmazione => Topic aperto da: allegfede - 22 Giugno 2017, 13:50:51

Titolo: [RISOLTO] GRIDVIEW - spostare le righe su e giu' ed eliminarle
Inserito da: allegfede - 22 Giugno 2017, 13:50:51
a parte copiare il contenuto della riga selezionata nelle celle di quella superiore (se si vuole spostare in su) e trascrivere il vecchio contenuto dove era prima quella che abbiamo spostato, esiste un metodo integrato nell'oggetoo per muovere le righe su e giu'?
Titolo: Re:GRIDVIEW. Esiste metodo integrato per spostare le righe su e giu'?
Inserito da: Gianluigi - 22 Giugno 2017, 16:25:09
Sempre che abbia capito la tua necessità, potresti usare Swap prendendo spunto da questa lezione (http://www.gambas-it.org/wiki/index.php?title=Ordinare_i_valori_di_pi%C3%B9_righe_in_base_ad_una_colonna).

 :ciao:
Titolo: Re:GRIDVIEW. Esiste metodo integrato per spostare le righe su e giu'?
Inserito da: allegfede - 22 Giugno 2017, 18:21:27
ottimo! esattamente quel che cercavo.

questa funzione penso mi tornera' molto utile :D

Codice: [Seleziona]
Public Sub GridView_Media_KeyPress()
Dim iNx As Integer

  If GridView_Media.Row = -1 Then Return

  Select Case Key.Code
    Case Key.Up
      'Debug "up"
      If GridView_Media.Row = 0 Then Return
      For iNx = 0 To GridView_Media.Columns.Max   
        Swap GridView_Media[GridView_Media.Row, iNx].Text, GridView_Media[GridView_Media.Row - 1, iNx].Text   
      Next
      'ricalcola i tempi
     
    Case Key.Down
      'Debug "down"
      If (GridView_Media.Row + 1) = GridView_Media.Rows.Count Then Return
      For iNx = 0 To GridView_Media.Columns.Max   
        Swap GridView_Media[GridView_Media.Row, iNx].Text, GridView_Media[GridView_Media.Row + 1, iNx].Text   
      Next
      'ricalcola i tempi
  End Select
Titolo: Re:[RISOLTO] GRIDVIEW. Esiste metodo integrato per spostare le righe su e giu'?
Inserito da: vuott - 22 Giugno 2017, 19:43:26
Molto interessante.
Ne ho fatto un'apposita pagina della nostra WIKI:
http://www.gambas-it.org/wiki/index.php?title=Spostare_su_e_gi%C3%B9_le_righe_di_una_GridView_con_i_tasti_%22up%22_e_%22down%22
Titolo: Re:[RISOLTO] GRIDVIEW. Esiste metodo integrato per spostare le righe su e giu'?
Inserito da: Gianluigi - 22 Giugno 2017, 19:54:07
 :ok:
Titolo: Re:[RISOLTO] GRIDVIEW. Esiste metodo integrato per spostare le righe su e giu'?
Inserito da: allegfede - 23 Giugno 2017, 11:14:53
 :ok:
Titolo: Re:[RISOLTO] GRIDVIEW - spostare le righe su e giu' ed eliminarle
Inserito da: allegfede - 29 Giugno 2017, 13:00:47
ho aggiunto il metodo per elimiare la singola riga selezionata e aggiornare i contenuti opportunamente:

Codice: [Seleziona]
Public Sub GridView_Media_KeyPress()
Dim iNx As Integer
Dim Righe As Integer

  If GridView_Media.Row = -1 Then Return

  Select Case Key.Code
    Case Key.Up
      'Debug "up"
      If GridView_Media.Row = 0 Then Return
      For iNx = 0 To GridView_Media.Columns.Max   
        Swap GridView_Media[GridView_Media.Row, iNx].Text, GridView_Media[GridView_Media.Row - 1, iNx].Text   
      Next
      'ricalcola i tempi
      ReCalc
    Case Key.Down
      'Debug "down"
      If (GridView_Media.Row + 1) = GridView_Media.Rows.Count Then Return
      For iNx = 0 To GridView_Media.Columns.Max   
        Swap GridView_Media[GridView_Media.Row, iNx].Text, GridView_Media[GridView_Media.Row + 1, iNx].Text   
      Next
      'ricalcola i tempi
      Recalc
    Case Key.Del
      If Message.Question("Are you shure you want to remove:" & gb.crlf & GridView_Media[GridView_Media.Row, 6].Text, "YES", "NO", "CANCEL") <> 1 Then Return
      For righe = GridView_Media.Row To GridView_Media.Rows.Count - 2
        For iNx = 0 To GridView_Media.Columns.Max   
          Swap GridView_Media[righe + 1, iNx].Text, GridView_Media[righe, iNx].Text   
        Next
      Next
      GridView_Media.Rows.Count = GridView_Media.Rows.Count - 1
      Recalc
  End Select

End