Autore Topic: Creazione componente: gb.gridbox  (Letto 117031 volte)

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #390 il: 11 Giugno 2011, 04:45:45 »
Nuova release dove ho 'aggiustato' la colonna di tipo Date. Non c'e' bisogno di dichiarare se Date, Time o DateTime in quanto lo riconosce direttamente dalla proprietà Columns[].Format.

Ovviamente e' comunque da testare... fatemi sapere....

premessa, sto testando e potrei sbagliarmi:
1. allineamento delle intestazioni: è previsto? Mi allineano tutte a sinistra
2. campo booleano (con checkbox), quando visualizzo campi di questo tipo con sqlite mi compaiono tutti true e invece c'è qualche false
3. Visualizzazione dei numeri di riga a sinistra: possibile disattivarla?
4. formattazione cella in base al suo valore, non riesco a settarla (es. valore 'Ottima' dovrebbe dare un background verde, 'Da evitare' invece un background rosso)

Codice: [Seleziona]
With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.String
    .Field = "SCELTA"
    .Text = "SCELTA"
    .Name = "scelta"
    .Required = True
    .w = 100
    .Formatting.Count = 2
    .Formatting[0].Comparison = "C(scelta)='Ottima'"
    .Formatting[0].Formatting.Background = Color.Green
    .Formatting[0].Formatting.Foreground = Color.White
    .Formatting[1].Comparison = "C(scelta)='Da evitare'"
    .Formatting[1].Formatting.Background = Color.Red
    .Formatting[1].Formatting.Foreground = Color.White
    .Formatting[0].Formatting.Font.Bold = True
    .Formatting[1].Formatting.Font.Bold = True
  End With  

ti segnalo tutto quello che trovo
« Ultima modifica: 11 Giugno 2011, 08:16:56 da andy60 »

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #391 il: 11 Giugno 2011, 08:13:55 »
Per l'allineamento non ancora

Per il campo formula devi, come in un foglio di calcolo, anteporre un = prima di iniziare la formula
es: Formatting[0].Comparison = "=C(scelta)='Ottima'"

Per il resto dovresti postarmi il tuo codice dove inizializzi la GridBox
« Ultima modifica: 11 Giugno 2011, 08:28:14 da milio »

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #392 il: 12 Giugno 2011, 09:04:21 »
Ti posto il codice della form degli alimenti... dove esiste in alto il fitro sugli alimenti, in base alla tipo di alimento, al gruppo, alla valutazione. In pratica il filtro genera la stringa sql che viene data in pasto al comando GridBox1.LoadData(StringaDiRicerca)

formattazione condizionale, questo codice non mi funziona, errore sicuramente mio:
Codice: [Seleziona]
 Inc Col 
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.String
    .Field = "SCELTA"
    .Text = "SCELTA"
    .Name = "scelta"
    .Required = True
    .w = 100
    .Formatting.Count = 1
    .Formatting[0].Comparison = "=C(scelta)='Ottima'"
    .Formatting[0].Formatting.Background = Color.Green
    .Formatting[0].Formatting.Foreground = Color.White
    .Formatting[0].Formatting.Font.Bold = True
  End With 

La visualizzazione va bene ma quando do' il comando salva mi da' errore

« Ultima modifica: 12 Giugno 2011, 10:10:59 da andy60 »

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #393 il: 12 Giugno 2011, 12:26:55 »
Prova a cambiare la riga della formattazione con questa
  .Formatting[0].Comparison = "=C(scelta) = Ottima"

Per quanto riguarda il salvataggio non capisco, potresti postare il database o un'immagine di come è strutturata la tabella tbSports?

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #394 il: 12 Giugno 2011, 14:45:56 »
Ho visto che la gridbox.tablename è uguale a tbSport mentre nella tua stringa di ricerca fai riferimento alla tabella tbAlimenti

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #395 il: 12 Giugno 2011, 16:21:32 »
Ho visto che la gridbox.tablename è uguale a tbSport mentre nella tua stringa di ricerca fai riferimento alla tabella tbAlimenti

mi hai trovato l'errorino..in effetti avevo fatto copy and paste del codice e non avevo cambiato..thx!!

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #396 il: 12 Giugno 2011, 16:22:28 »
Prova a cambiare la riga della formattazione con questa
  .Formatting[0].Comparison = "=C(scelta) = Ottima"

Per quanto riguarda il salvataggio non capisco, potresti postare il database o un'immagine di come è strutturata la tabella tbSports?


mentre il salvataggio l'ho sistemato...la formattazione condizionale, che renderebbe la griglia molto bella da vedere non va proprio...adesso mi disperoooo
, forse .comparison accetta solo valori numerici? Il campo scelta accetta utilizza solo 3 valori, Ottima, Discreta, Da evitare, si puo' fare un combo con questi tre valori?

Mi spiegate il  .Box.ListCombo.Add, se metto .Box.ListCombo.Add("Ottima"), mi da' errore vuole la key, ma che devo mettere? GRAZIE x la comprensione :rolleyes:

« Ultima modifica: 12 Giugno 2011, 18:09:33 da andy60 »

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #397 il: 12 Giugno 2011, 18:17:40 »
Grazie a Andy ho scoperto un bug sulla formattazione. Effettivamente era come dicevi tu, non accettava valori string. Adesso l'ho corretto ma al momento sono in un hotel senza internet e questo messaggio lo sto mandando da cellulare  :'(
Spero entro stasera di trovare il modo di postare i sorgenti.

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #398 il: 12 Giugno 2011, 19:38:49 »
mi autonomino 'tester' ma non è na' parolacciaaaaaa :2birre:

a) stranezza del campo id, se lo metto per terzo anche con hide lo vedo..
b) comando Me.GridBox1.Update(), l'inserimento di un nuovo valore nel campo testo funzione, azzero il campo testo e salvo dopo l'aggiornamento ritrovo cmq il valore
c) test gambas3 e gridbox ieri al pc della mia compagna con mint virtualizzato, graficamente la griglia mi visualizzava male i dati ma funzionava (cosa faceva? i dati in edit venivano visualizzati 'sotto' la riga da editare.....) per fortuna che uso natty e va tutto ok qua sopra
« Ultima modifica: 13 Giugno 2011, 10:33:41 da andy60 »

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #399 il: 13 Giugno 2011, 22:32:56 »
Ciao Andy
Intanto ti provo a rispondere a qualcosa.

A) prova a mettere la colonna id in mezzo a colonne visibili, cioè non prima e non ultima, a me funziona così.

C) devi aggiornare gambas, ci sono stati dei problemini con le versioni precedenti.

B) non ho capito bene, prova a spiegarmi meglio

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #400 il: 14 Giugno 2011, 05:13:37 »
@golia

Mint: il problema su mint non è importante, lo uso x i casi di gambas-dipendenza quando sono a casa della mia compagna :rotfl:

Mancato salvataggio: per quanto riguarda l'altra questione segnalata, è molto semplice, faccio partire il programma creato, entro nella tabella, modifico una cella in una riga, vado alla riga successiva, premo il bottone salva e succede questo: la cella che avevo modificato mi si evidenzia. Se do' refresh mi ricompare il valore che avevo precedentemente inserito. Per' deve essere un errore del programma, stamattina ho fatto un nuovo test su altro programmetto e funziona.

Campi hidden: mi chiedo poi se esiste la possibilità di inserire in una gridbox collegata ad una tabella sqlite dei campi hidden che servono x effettuare dei calcoli, estranei alla tabella. Devo sicuramente approfondire tutte le possibilità offerte dal componente in relazione ai campi calcolati.

Combo list: il comando .Box.ListCombo.Add  non riesco a farlo andare.

Recordset vuoto: se creo una tabella e non inserisco record e la apro con gridbox il programma mi da' il messaggio bad row index codice  riga 1509 della gridbox.class e si blocca. Il controllo sul numero dei record di una tabella deve essere esterno al codice della tabella?

Dati di una tabella: supponiamo che una tabella abbia i seguenti dati: idnome (seriale), nome(testo), anni(float). Supponiamo anche che una gridbox sia agganciata ad un'altra tabella che abbia tra i campi anche idnome. A questo punto vorrei, selezionando il nome dal combo, che mi fosse visualizzato in un campo della griglia anche il campo anni, è possibile? Allego piccolo esempio.
« Ultima modifica: 14 Giugno 2011, 06:57:44 da andy60 »

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #401 il: 14 Giugno 2011, 08:54:59 »
Mint: credo che se aggiorni gambas3 comunque non dovresti aver problemi

Mancato salvataggio: non mi è mai capitato. Probabilmente cè qualche errore nel tuo codice o nel database

Campi Hiden: Intendi campi di un'altra tabella? si può fare con una query esterna a gridbox, e passargli il valore (almeno credo ;D), mentre colonne hidden non collegate a database che ti servono per calcoli puoi metterene quante vuoi, vedi nell'esempio colonna totale che è solo una colonna di calcolo non legata al database.

Combolist: Hai guardato l'esempio su gridbox? comunque dovrebbe avere un bug legato appunto all'errore che hai segnalato sotto, l'ho già segnalato a Milio

..intanto vado  :ciao:

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #402 il: 14 Giugno 2011, 17:20:04 »
@golia

Mancato salvataggio: sistemato smanettando sul codice

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #403 il: 14 Giugno 2011, 22:33:06 »
Finalmente grazie ad una chiavetta della 3 riesco a postarvi una nuova release che corregge l'errore quando la GridBox e' vuota e adesso la formattazione accetta valori String.
« Ultima modifica: 14 Luglio 2011, 08:14:18 da milio »

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.256
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Creazione componente: gb.gridbox
« Risposta #404 il: 14 Giugno 2011, 23:09:38 »
Finalmente grazie ad una chiavetta della 3 riesco a postarvi una nuova release che corregge l'errore quando la GridBox e' vuota e adesso la formattazione accetta valori String.


sia lodata la chiavetta :-*

grazie di cuore, io sto continuando a sviluppare e prossimamente faro' il punto in modo da poterti aiutare. Per quanto riguarda la formattazione condizionale ora funge anche con le stringhe, unica cosa dovresto controllare perche il font bold viene messo (con 3 condizioni) solo sulla prima condizione, allego png e codice:

 
Codice: [Seleziona]
.Formatting.Count = 3
    .Formatting[0].Comparison = "=C(scelta)='Ottima'"
    .Formatting[0].Formatting.Background = Color.Green
    .Formatting[0].Formatting.Foreground = Color.White
    .Formatting[0].Formatting.Font.Bold = True
    .Formatting[1].Comparison = "=C(scelta)='Da evitare'"
    .Formatting[1].Formatting.Background = Color.red
    .Formatting[1].Formatting.Foreground = Color.White
    .Formatting[1].Formatting.Font.Bold = True
    .Formatting[2].Comparison = "=C(scelta)='Discreta'"
    .Formatting[2].Formatting.Background = Color.DarkGreen
    .Formatting[2].Formatting.Foreground = Color.White
    .Formatting[2].Formatting.Font.Bold = True
« Ultima modifica: 14 Giugno 2011, 23:19:18 da andy60 »