Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: tornu - 20 Giugno 2009, 22:45:23

Titolo: GridView
Inserito da: tornu - 20 Giugno 2009, 22:45:23
Buona sera a tutti,

ho un problema su cui sto combattendo da qualche giorno, ed il mio accanimento sicuramente mi sta impedendo di trovare la soluzione, a questo punto ho deciso di postare.

Ho una GridView che viene popolata secondo la neccessità da dei dati letti da un DB
Codice: [Seleziona]
PUBLIC SUB Button1_Click()

  DIM i AS Integer
  DIM xResult AS Result

  xResult = Conn.db.Exec("SELECT dato1, dato2, dato3 FROM tabella1")

  GridView1.Rows.Count = xResult.Count

  FOR EACH xResult
    i = xResult.Index
   
    GridView1[i, 0].Text = xResult["dato1"]
    GridView1[i, 1].Text = xResult["dato2"]
    GridView1[i, 2].Text = xResult["dato3"]
     
  NEXT
    GridView1.Row = 0
 
 END

 inserendo manualmente i dati da delle TextBox
Codice: [Seleziona]
PUBLIC SUB Button2_Click()
 
  DIM i AS Integer

  GridView1.Rows.Count += 1
  i = GridView1.Rows.Count - 1

  GridView1[i, 0].Text = TextBox1.Text
  GridView1[i, 1].Text = TextBox2.Text
  GridView1[i, 2].Text = TextBox3.Text

END

o utilizzando entrambi le funzioni, ed è in questo caso che si presenta il problema.
Quando inserisco prima dei dati tramite Button2 e poi accodo altri dati con Button1 i dati precedentemente inseriti vengono "sovrascritti" dai dati del DB, se eseguo l'operazione inversa popolando prima la GridView con i dati del DB (Button1) e successivamente inserisco ulteriori dati con Button2 gli accoda senza problemi.    :muro:
Titolo: Re: GridView
Inserito da: fsurfing - 20 Giugno 2009, 22:53:09
la soluzione è molto semplice:
Codice: [Seleziona]
 
PUBLIC SUB Button1_Click()

  DIM i AS Integer
  DIM xResult AS Result

  xResult = Conn.db.Exec("SELECT dato1, dato2, dato3 FROM tabella1")

  GridView1.Rows.Count = xResult.Count

  FOR EACH xResult
    i = xResult.Index
   
    GridView1[i, 0].Text = xResult["dato1"]
    GridView1[i, 1].Text = xResult["dato2"]
    GridView1[i, 2].Text = xResult["dato3"]
      inc i  
  NEXT
    GridView1.Row = 0
 
 END


inc i
'' aumenta il contatore, necessario se si usa for each xresul invece di for i= 0 to xresul.count-1
Titolo: Re: GridView
Inserito da: tornu - 20 Giugno 2009, 23:06:40
Non funziona, i dati inseriti da Button2 continuano ad essere sovrascitti da Button1.
Titolo: Re: GridView
Inserito da: fsurfing - 20 Giugno 2009, 23:10:48
a ok capito


basta che fai cosi credoprova coì:
Codice: [Seleziona]
 
PUBLIC SUB Button1_Click()

  DIM i AS Integer
  DIM xResult AS Result

  xResult = Conn.db.Exec("SELECT dato1, dato2, dato3 FROM tabella1")

i=  GridView1.Rows.Count

  GridView1.Rows.Count = xResult.Count + i


  FOR each xResult
   
   
    GridView1[i, 0].Text = xResult["dato1"]
    GridView1[i, 1].Text = xResult["dato2"]
    GridView1[i, 2].Text = xResult["dato3"]
      inc i  
  NEXT
    GridView1.Row = 0
 
 END
Titolo: Re: GridView
Inserito da: tornu - 20 Giugno 2009, 23:36:09
Funziona, grazie fsurfing.

E' dire che in questo forum qualche "mala lingua" non ti apprezza..... ;-)
Titolo: Re: GridView
Inserito da: tornu - 14 Settembre 2009, 21:16:22
Ho bisogno di impostare la proprietà Mode della GridView da codice e fattibile?

GridView.Mode ????
Titolo: Re: GridView
Inserito da: fsurfing - 14 Settembre 2009, 22:43:26
cavolo questa domanda da te non me l' aspettavo!

Codice: [Seleziona]

GridView1.Mode=select.single
'oppure
gridview1.mode=select.none
'oppure
gridview1.mode=select.multiple


proprio come nella "fornitissima" guida di gambas :)
Titolo: Re: GridView
Inserito da: tornu - 14 Settembre 2009, 22:57:46
:oops:  :oops: mi scuso, la guida stavolta non l'ho proprio consultata.
Chiedo venia.

Grazie
Titolo: Re: GridView
Inserito da: fsurfing - 14 Settembre 2009, 23:08:12
figurati ... stavo scherzando  :2birre: