Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: clabe69 - 28 Settembre 2012, 18:05:27

Titolo: Gridview con due righe nell'Header
Inserito da: clabe69 - 28 Settembre 2012, 18:05:27
Salve; sapete come si può intestare una gridview con due righe?
Io ho provato così:

Codice: gambas [Seleziona]

  WITH GridView1
    .Columns.Count = 2
    .Columns[0].Text = "Nome"
    .Columns[0].Width = 200
    .Columns[1].Text = "Prezzo\nd'acquisto"
    .Columns[1].Width = 200
  END WITH


Funziona per metà: scrive su due righe ma non ridimensiona l'altezza dell'intestazione.

Grazie.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: vuott - 28 Settembre 2012, 19:33:59
Io ho provato il tuo codice, ma non vedo alcuna riga o colonna.

Per far apparire l'Header della GridView ho dovuto anche inserire la riga:
Codice: gambas [Seleziona]

   .Header = 1



Riguardo alla possibilità di impostare l'altezza dell'Header, non mi sembra sia possibile. Uno stratagemma, però, potrebbe adottarsi mediante l'aggiunta di caratteri escape.
Facciamo in modo che nel tuo esempio la parola "Nome", posta nella prima colonna dell'Header abbia maggiore distanza sia dal limite superiore sia da quello inferiore della cella, nella quale esso è contenuto. Agiremo così:
Codice: gambas [Seleziona]

With GridView1  
  .Columns.Count = 2  
  .Header = 1
       .Columns[0].Text = "\nNome\n"  
  .Columns[0].Expand = True  
  .Columns[1].Text = "Prezzo\nd'acquisto"  
  .Columns[1].Width = 200
 End With



Le uniche alternative alla soluzione con i caratteri escape, se è proprio indispensabile modificare l'altezza dell'Header, mi sembrano  :-\ essere attualmente solo le seguenti:

1) eliminare l'Header e gestire la prima riga in alto come una qualsiasi riga della GrieView, magari imitando il colore dell'Header o attribuendone addirittura un altro. In questo caso per modificare l'altezza di questa prima riga... pseudo-Header si potrà agevolmente usare il metodo Rows[0].Height = ;
2) ...costruirsi da capo una griglia mediante il codice html.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: fsurfing - 28 Settembre 2012, 20:33:28
a me con questo funziona benissimo:
Codice: [Seleziona]
PUBLIC SUB Form_Open()
GridView1.Columns.Count = 2
 GridView1.Columns[0].Text = "pippo\npluto"
 GridView1.Columns[1].text = "ciao"
END
Titolo: Re: Gridview con due righe nell'Header
Inserito da: vuott - 28 Settembre 2012, 20:40:16
a me con questo funziona benissimo:
Codice: [Seleziona]
PUBLIC SUB Form_Open()
GridView1.Columns.Count = 2
 GridView1.Columns[0].Text = "pippo\npluto"
 GridView1.Columns[1].text = "ciao"
END

...forse si spalanca la porta di un nuovo mistero, poiché a me - non ne capisco la ragione - non funziona. Appare la gridview, ma senza alcuna colonna !   :-\ Sono costretto a porre almeno una riga o l'Header.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: fsurfing - 28 Settembre 2012, 21:06:26
stranissimo, ma tu stai usando g2?
cmq a me appare così:
Titolo: Re: Gridview con due righe nell'Header
Inserito da: clabe69 - 28 Settembre 2012, 23:59:56
Citazione
cmq a me appare così:
Coma hai fatto?
Titolo: Re: Gridview con due righe nell'Header
Inserito da: vuott - 29 Settembre 2012, 01:19:54
stranissimo, ma tu stai usando g2?
No, io uso Gambas-3.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: clabe69 - 29 Settembre 2012, 10:03:34
Io uso Gambas 2 e mi fà così:

(http://)
Titolo: Re: Gridview con due righe nell'Header
Inserito da: vuott - 29 Settembre 2012, 14:38:15
Io uso Gambas 2 e mi fà così:
Prova a piazzare un carattere escape \n prima e dopo le parole "Quantità minima", e facci sapere come va.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: clabe69 - 29 Settembre 2012, 16:02:30
Si sposta la scritta più giù, ma l'altezza dell'intestazione rimane sempre quella, ho provato anche a usare invece di \n, gb.newline, ma il risultato non cambia.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: vuott - 29 Settembre 2012, 16:17:33
Si sposta la scritta più giù, ma l'altezza dell'intestazione rimane sempre quella, ho provato anche a usare invece di \n, gb.newline, ma il risultato non cambia.
Forse è dato dal fatto che usi Gambas-2...

Ad ogni modo, scusa, se inserisci anche questa riga:
Codice: gambas [Seleziona]

   .Rows[0].Height = 100

cosa succede ?
Titolo: Re: Gridview con due righe nell'Header
Inserito da: Picavbg - 29 Settembre 2012, 16:19:53
Io uso Gambas3 e il problema che ha clabe69  ce l'ho anch'io. Quello che manca è la possibilità di potere indirizzare la riga header di Griodview. Infatti se voglio modificare l'altezza di una riga di dettaglio qualsiasi, basta scrivere:

Codice: [Seleziona]
 GridView.Rows[x].Height = 52       'x può variare da 0 al n° massimo di riga di dettaglio dichiarato in  [i]GridView.Rows.count = nnn"[/i]

Dovrebbe essere possibile, attraverso la dichiarazione di una proprietà per la riga di testata, richiamandola poi all'occorrenza, come viene indicato qui (http://gambasdoc.org/help/comp/gb/class/property?v3)
ma ora come ora non saprei come riuscirvi.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: clabe69 - 29 Settembre 2012, 17:05:32
Citazione
Ad ogni modo, scusa, se inserisci anche questa riga:
Succede che si alza la riga 0 a 100, ma non l'intestazione.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: vuott - 29 Settembre 2012, 19:24:36
Succede che si alza la riga 0 a 100, ma non l'intestazione.
...e allora non saprei cosa dirti.......
Forse, come ti avevo già accennato sopra, per ora, dato che non va bene neppure con l'escape \n, ti resterebbe di trasformare la prima riga, ossia: .Rows[0], in uno pseudo-Header dandogli il colore che vuoi ed impostando così la sua altezza con la proprietà: .height...  :-\

Ad ogni modo ho posto questo problema dell'altezza del'Header anche nella mailing List Intgernazionale.... vediamo cosa rispondono.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: vuott - 02 Ottobre 2012, 01:05:39
Ad ogni modo ho posto questo problema dell'altezza del'Header anche nella mailing List Intgernazionale.... vediamo cosa rispondono.
...ad oggi non ha ancora risposto nessuno. Ho paura che - come si sospettava - non c'è verso di modificare l'altezza dell'Header mediante un'apposita proprietà...  :-X
Titolo: Re: Gridview con due righe nell'Header
Inserito da: Picavbg - 02 Ottobre 2012, 08:22:29
Secondo me, per capire come funziona la gestione dell'Header di Gridview, bisognerebbe andare a leggere il sorgente di Gambas. Però io non lo conosco affatto. Aspettiamo, chissà se qualcuno ... che vi abbia già sufficiente conoscenza non possa toglirci dall'impiccio.  ;D
 :ciao:
Titolo: Re: Gridview con due righe nell'Header
Inserito da: clabe69 - 02 Ottobre 2012, 09:21:59
Possibile che nessun altro Gamberone ha qualche cosa da scrivere, magari può servire da spunto per qualcun'altro.

Idee, teorie, leggende, qualsiasi cosa può servire.

Questa è una limitazione importante di Gridview, se si riuscisse a risolvere non sarebbe male.

Grazie.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: milio - 02 Ottobre 2012, 11:36:04
In gambas2 l'oggetto GridView e' un oggetto che fa parte dei rispettivi toolkits Gtk e Qt...

In gambas3 e' stato interamente riscritto in linguaggio Gambas, quindi se non esiste un'opzione per aumentare l'altezza delle intestazioni (che tra l'altro funzionano egregiamente anche con ritorni a capo) si puo' sempre farsene una versione personalizzata con i sorgenti...

Il mio consiglio e': usa gambas3! ;)

Possibile che nessun altro Gamberone ha qualche cosa da scrivere, magari può servire da spunto per qualcun'altro.

Idee, teorie, leggende, qualsiasi cosa può servire.

Guarda che non ti hanno mica scritto dei calamari fino ad ora, nhe!  ;D
Titolo: Re: Gridview con due righe nell'Header
Inserito da: vuott - 02 Ottobre 2012, 11:44:00
.... si puo' sempre farsene una versione personalizzata con i sorgenti...
...magari poter avere nella WIKI qualche paginetta esplicativa di come fare...


Guarda che non ti hanno mica scritto dei calamari fino ad ora, nhe!  ;D
...ma un asino sì !
Titolo: Re: Gridview con due righe nell'Header
Inserito da: milio - 02 Ottobre 2012, 11:50:35
@vuott

Mi sembra che ci sia poco da scrivere a riguardo, basta solo copiarsi i sorgenti che si trovano in <tuacartellasorgenti>/comp/src/gb.form/.src/GridView...

Io per il progetto GridBox ho fatto appunto in questo modo...

ps.

Smettila di auto dichiararti un asino! e cambia sto avatar... :)

Titolo: Re: Gridview con due righe nell'Header
Inserito da: vuott - 02 Ottobre 2012, 11:58:04
...basta solo copiarsi i sorgenti che si trovano in <tuacartellasorgenti>/comp/src/gb.form/.src/GridView...
Molto bene, grazie.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: Picavbg - 02 Ottobre 2012, 12:39:42
@vuott
Mi sembra che ci sia poco da scrivere a riguardo, basta solo copiarsi i sorgenti che si trovano in <tuacartellasorgenti>/comp/src/gb.form/.src/GridView...
Io per il progetto GridBox ho fatto appunto in questo modo...

ps.
Smettila di auto dichiararti un asino! e cambia sto avatar... :)

Bravo Milio! Molto ben detto! Approvo pienamente e concordo.
 :ciao:
Titolo: Re: Gridview con due righe nell'Header
Inserito da: Golia - 02 Ottobre 2012, 20:52:40
Citazione
Smettila di auto dichiararti un asino! e cambia sto avatar... Sorriso
Si appunto.. e vedi che le cose tornino come prima o chiamamo gli animalisti..ormai ci eravamo affezionati al gatto  :)
Titolo: Re: Gridview con due righe nell'Header
Inserito da: clabe69 - 03 Ottobre 2012, 09:57:17
Citazione
si puo' sempre farsene una versione personalizzata con i sorgenti...

Questi sorgenti, se opportunamente modificati, possono funzionare anche su Gambas2 ?
Puoi farmeli avere?

Grazie.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: clabe69 - 05 Ottobre 2012, 11:02:48
Salve; c'è altro per lor gamberoni:
Se la Gridview è vuota l'intestazione è su due rige, se inserisco una riga si ridimensiona ad una riga.
Titolo: Re: Gridview con due righe nell'Header
Inserito da: milio - 05 Ottobre 2012, 11:25:38
mmmm.... ma tu stai usando, come componente grafico, gb.gui o gb.gtk?

se si prova ad usare gb.qt3 e facci sapere....
Titolo: Re: Gridview con due righe nell'Header
Inserito da: clabe69 - 05 Ottobre 2012, 11:39:08
Ciao; uso gb.qt

Guarda la foto
Titolo: Re: Gridview con due righe nell'Header
Inserito da: Picavbg - 28 Agosto 2013, 17:02:33
Riprendo questa discussione perchè oggi ho avuto la necessità di scrivere il testo nella riga "Header" di una GridView, su due linee. Visto che non ci riuscivo in alcun modo, ho provato a scrivere il testo di una una delle sue celle inserendovi il carattere ASCII '10':
Codice: gambas [Seleziona]
 GriRaccVoci.Columns[4].text = "Codice del Sottoconto" & Chr(10) & "collegato"  

e, come si può riscontrare dall'immagine alegata, ha funzionato.
 ;D  ;D

La mia prova, eseguita in Gambas-3, è stata ripetuta con la seguente modifica:
Codice: gambas [Seleziona]
GriRaccVoci.Columns[4].text = "Codice del" & Chr(10) & "Sottoconto" & Chr(10) & "collegato"

ed il testo è stato distribuito su 3 linee, con mia grande soddisfazione.

Spero che possa servire!
 :ciao:
Titolo: Re: Gridview con due righe nell'Header
Inserito da: vuott - 03 Settembre 2013, 23:59:44
Non ne comprendo la differenza con il carattere escape \n che avevo fatto nel mio secondo messaggio di questa discussione.   :-\
Titolo: Re: Gridview con due righe nell'Header
Inserito da: Picavbg - 04 Settembre 2013, 10:10:14
Non ne comprendo la differenza con il carattere escape \n che avevo fatto nel mio secondo messaggio di questa discussione.   :-\

Convengo con quanto dici. Solamente che non avevo letto prima la tua risposta con la citazione del carattere escape.  :-\
 :ciao:
Titolo: Re: Gridview con due righe nell'Header
Inserito da: vuott - 04 Settembre 2013, 10:13:35

non avevo letto prima la tua risposta con la citazione del carattere escape.
 :ciao:

...succede anche nelle migliori famiglie !   ;D

     :ciao: