Autore Topic: Result field [risolto]  (Letto 489 volte)

darth14n

  • Visitatore
Result field [risolto]
« il: 10 Agosto 2020, 09:04:39 »
Buongiorno a tutti! Dopo qualche anno di inattività ho ripreso a sviluppare in gambas.
Mi ritrovo però con la guida piuttosto scarna, visto che spesso quando cerco qualcosa mi dice che la pagina non esiste.
Il mio problema è quello di compilare una griglia con un result di DB con il codice sottostante.
Come potete notare, la riga incriminata mi da sempre errore, e non trovo la sintassi corretta per il comando.
Mi potreste aiutare? Grazie!
Codice: [Seleziona]
With dati
      lista_clienti.Clear 'azzera la griglia
      '--------------------------------------------COMPILA I TITOLI DELLA GRIGLIA---------
      campi = .Fields.Count
      lista_clienti.Columns.Count = campi 'colonne della griglia
      If .Index = 0 Then 'scrive i titoli colonna
        For campo = 0 To campi - 1
          lista_clienti.Columns[campo].Text = .Fields[campo].name 
          lista_clienti.Columns[campo].Alignment = Align.Center
        Next
      Endif
      '--------------------------------------------POPOLA LA GRIGLIA----------------------
      campo = 0
      lista_clienti.Rows.Count = .Count 'calcola le righe griglia
      .MoveFirst
      For Each dati                                'cicla nei records
          For campo = 0 To campi - 1                  'cicla nei campi
            lista_clienti[.Index, campo].Text = !Fields[campo] 'questo non funziona!!!!!!!!
          Next
      Next
End With

Alla fine ho risolto modificando la sintassi, sostituendo il "!" con ["nomecampo"]. In questo modo:
Codice: [Seleziona]
      For Each dati                               'cicla nei records
          'numrec = .Index
          For campo = 0 To campi - 1                  'cicla nei campi
            If .Index = 0 Then
              lista_clienti.Columns[campo].Text = .Fields[campo].name 
              lista_clienti.Columns[campo].Alignment = Align.Center
            Endif
            lista_clienti[.Index, campo].Text = .[.Fields[campo].name]
          Next
      Next

Ho anche compattato il codice mettendo nello stesso ciclo FOR NEXT la compilazione dei titoli colonna al primo record.
« Ultima modifica: 10 Agosto 2020, 09:28:41 da g.paolo »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re:Result field [risolto]
« Risposta #1 il: 10 Agosto 2020, 09:45:41 »
Buongiorno a tutti! Dopo qualche anno di inattività ho ripreso a sviluppare in gambas.
...

Buongiorno anche a te, sono contento del tuo ritorno  :2birre:

Se posso permettermi, ti suggerisco di dare un'occhiata al progetto DBSpeedyTest sulla Farm che mostra una maniera più Gambas per popolare la griglia e in particolar modo ti indico l'evento Data.

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

darth14n

  • Visitatore
Re:Result field [risolto]
« Risposta #2 il: 10 Agosto 2020, 10:50:50 »
Ciao Gianluigi, ti ringrazio per la celere risposta! Mo vado a dare un occhio al tuo consiglio.
Buon lavoro!

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.270
  • Ne mors quidem nos iunget
    • Mostra profilo
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

darth14n

  • Visitatore
Re:Result field [risolto]
« Risposta #4 il: 10 Agosto 2020, 13:00:01 »
Molto utili direi! Grazie Vuott.