Gambas-it

Programmazione => Progetti degli utenti => Topic aperto da: milio - 25 Marzo 2010, 19:11:56

Titolo: Creazione componente: gb.gridbox
Inserito da: milio - 25 Marzo 2010, 19:11:56
Da un'idea del nostro Golia, siamo lieti di aprire questa nuova discussione per la creazione di un componente in gambas.

Il componente si chiamerà GridBox e avrà la funzione di 'aiutare' (si spera :) ) la lettura-modifica-scrittura di record nei database.

Per adessso la GridBox funziona, diciamo bene, solo in modalità ReadOnly.

Ps. Assieme al progetto ho allegato un db sqlite3 già 'confezionato' per il beta testing.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 26 Marzo 2010, 00:51:36
Più lo guardo e più interessante lo trovo
Adesso ci vuole questa funzione
Codice: [Seleziona]
.Columns[2].Type = Grid.combobox
  :D
Ormai che ci hai lanciati.. :P
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 26 Marzo 2010, 09:36:11
Più lo guardo e più interessante lo trovo
Adesso ci vuole questa funzione
Codice: [Seleziona]
.Columns[2].Type = Grid.combobox
  :D
Ormai che ci hai lanciati.. :P



he he... pazienza... pazienza...
arriveremo sicuramente anche a quello.

Ieri mi sono fissato sul campo formula.
Come avevo strutturato il codice permettevo i calcoli solo su colonne field...
Poi questa mattina mi è venuta l'idea e.... SI.. PUO'... FARE!!!!
Adesso si possono richiamare nelle formule anche colonne.formula e la chiamata GridBox[row,column].Value restituisce il valore senza la formattazione.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 26 Marzo 2010, 14:41:06
Qualora vogliate dare una pagina web ufficiale al componente potete dirmelo e vi preparo una pagina sul mio sito su cui poi potete caricare i sorgenti....
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 26 Marzo 2010, 23:10:18
Stà diventando uno strumento potentissimo!!
I calcoli vengono fatti con una semplicità estrema senza dover ricorrere a query.
Milio..che dire..aspettatiamo nuove versioni :D

@Ceskho
Buona l'idea, deciderà Milio cosa fare.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 26 Marzo 2010, 23:28:55
@Golia

...la notte porta consiglio... ;)

@Cesko

Ti ringranzio per l'interessamento, e' una buona idea.... (addirittura una pagina web!!  ??? )
Preferirei pero', se possibile, fare un 'qualcosa' sul sito di gambas-it... mi pare anche giusto, il progetto e' nato qui...
Con qualcosa intendo magari una sezione per 'nuovi componenti' con annessa pagina sul wiki per le relative guide...
Sarebbe anche carino poter sfruttare tale sezione come repository (bisognera' poi scegliere quali distribuzioni adottare*) così da poter facilmente installare i componenti aggiuntivi creati...

* So che a te farà arrabbiare ma io uso Kubuntu  :P :P :P
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 27 Marzo 2010, 00:19:00
@Cesko

Ti ringranzio per l'interessamento, e' una buona idea.... (addirittura una pagina web!!  ??? )
Preferirei pero', se possibile, fare un 'qualcosa' sul sito di gambas-it... mi pare anche giusto, il progetto e' nato qui...
Con qualcosa intendo magari una sezione per 'nuovi componenti' con annessa pagina sul wiki per le relative guide...
Sarebbe anche carino poter sfruttare tale sezione come repository (bisognera' poi scegliere quali distribuzioni adottare*) così da poter facilmente installare i componenti aggiuntivi creati...

* So che a te farà arrabbiare ma io uso Kubuntu  :P :P :P

Un repository sarebbe troppo dispendioso poichè richiede una sezione per ogni distro e di ogni sezione bisogna mantenere tutti rilasci....

* E cosa aspetti a formattare???
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Marzo 2010, 00:26:13

Un repository sarebbe troppo dispendioso poichè richiede una sezione per ogni distro e di ogni sezione bisogna mantenere tutti rilasci....

* E cosa aspetti a formattare???

Uh... forse hai ragione, pero' lo trovo comunque mooolto comodo... per esempio in ditta abbiamo allestito un pc per questo. e devo dire che... bhe non devo aggiungere nient'altro un repository sappiamo tutti quello che fa ;)

* Neanche morto!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 27 Marzo 2010, 00:32:05
Per fare c'ho che vuoi fare tu si può comprare uno spazio web....così non graviamo sulle spalle di Leo...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Marzo 2010, 00:35:24
Io ho uno spazio web che potrebbe fare al caso... devo solo verificare alcune condizioni.
Vi terro' informati....
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Marzo 2010, 01:02:22
Volevo aggiungere una proprieta' tipo 'formattazione condizionata'.

per il codice ho gia' tutto in mente... ma non mi viene un nome 'serio' da dare alla proprietà ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 27 Marzo 2010, 01:08:11
Volevo aggiungere una proprieta' tipo 'formattazione condizionata'.

per il codice ho gia' tutto in mente... ma non mi viene un nome 'serio' da dare alla proprietà ;)

Penso che Format o CFormat possa andare bene...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Marzo 2010, 01:16:30
Format l'ho gia' usato come proprieta' per formattare numeri, date all'interno della colonna...
CFormat... mi ricorda tanto format c: ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Will32 - 27 Marzo 2010, 09:08:45
LuxFormat

Piace  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Marzo 2010, 12:51:34
Per adesso l'ho chiamato .Formatting :)

Con questa versione ho aggiunto appunto una specie di formattazione condizionata...
Per adesso funziona solo in mod ReadOnly (devo ancora integrare i refresh all'inserimento di nuovi dati)

ps. il numero di versione e' saltato dalla 0 alla 2 per poter installare il componente in gambas e mantenere (se lo si usa in un progetto) risolte le dipendenze...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Marzo 2010, 20:52:55
In questa versione ho ritoccato il refresh della griglia che ora e' piu' fluida e soprattutto corretta...
Ho riguardato anche lo spostamento del backtab che faceva un po' le bizze... :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 27 Marzo 2010, 23:28:30
Ciao, ormai ci si può fare di tutto ;D
Come ti permetti a dire che il mio listino è caro!!! ;) scherzo :P :P
Però il mio tab e backtab continua a non andare.. :(
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Marzo 2010, 23:36:20
a proposito di tab e backatb... dove e quando lo usi?
lo usi (o vorresti usare) quando ti sposti tra le celle o quando devi editare piu' celle?

Io ho costruito il componente in modo che se stai editando ti sposti da una cella all'altra con il tab senza dover selezionare la prossima cella editabile... mentre per quanto riguarda lo spostamento tra celle lo faccio solo con le frecce e pgdown-pgup
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 28 Marzo 2010, 17:18:29
Eccomi.
Ho capito, tu intendi usare il tab e backtab per gli elementi del form. Per questo a me non andava ;D
Io pensavo di usarlo come le frecce a dx e sx, forse perchè abituato con i fogli di calc. Ok va bene è solo questioni di abitudine con le frecce è ok, così col tab ci si può spostare tra i comandi. Non avevo capito.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 28 Marzo 2010, 17:19:24
Scusa non ho capito "Editare più celle" ? si può?
Si possono anche selezionare 4/5 righe ed eliminarle per esempio?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 28 Marzo 2010, 18:40:22
Scusa non ho capito "Editare più celle" ? si può?
Si possono anche selezionare 4/5 righe ed eliminarle per esempio?

Uhnn e' un'idea... si potrebbe anche fare....
adesso sto lavorando sull'integrita' dei dati editati, con oggetti come textbox e valuebox che si attivano in base a che tipo di datatype viene dato alla colonna...

spetta che ti allego i sorgenti che a spiegarmi non sono tanto capace :)

Se guardi il codice del form listino vedrai che ci sono delle proprieta' nuove per le colonne....
E adesso editando un valore in una cella editabile ( ??? ) viene visualizzato il valore corretto e formattato nella cella (con conseguente aggiornamento delle colonne.formula)

giuntina dell'ultima ora ;)
ho finito il controllo dei dati inseriti... per i valori data bisognerebbe creare un oggetto nuovo perche' il valuebox di gambas settato con .type a Date non e' che mi piaccia tanto ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: leo72 - 29 Marzo 2010, 12:04:12
Scusate se mi inserisco solo ora nella discussione.

A me l'idea di aprire delle sezioni interne a gambas-it per ospitare i progetti degli utenti piace e molto.
Il massimo sarebbero dei domini di 2° livello (nome_progetto.gambas-it.org) ma ho timore che il mio hosting li faccia pagare.
Nulla toglie però di fare delle sotto cartelle (gambas-it.org/nome_progetto) in cui ospitare il progetto.

Ci studio sopra...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 29 Marzo 2010, 14:54:13
Ciao Milio, scusa se non mi sono fatto vivo ma con i piccoletti ho passato un weekend da paura :D ...altro che riposarsi >:(
Stasera provo
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 29 Marzo 2010, 15:25:49
@Leo

Sarebbe una gran bella cosa... fai tu che sai che io di siti ne capisco ben poco ;)

@Golia

No preocupa... intanto sono andato avanti... stasera butto giu' un altro po' di codice... stiamo per vedere la luce in fondo al tunnel  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 30 Marzo 2010, 23:06:15
Ciao Milio
Stavo per scriverti che non avevo capito cosa significasse
Codice: [Seleziona]
.Formatting.Count = 2
Penso di aver capito, il 2 stà per le 2 condizioni che sono sotto, la 0 e la 1. :D

Volevo chiederti se con l'uso di Formatting si può fare un giochetto che ho fatto nel mio programma :P
Nei record dettagli spunto se un prezzo è già scontato, poi con 1 query faccio il totale prezzo dei record da scontare e con un'altra i record già al netto di sconto, praticamente 2 totali che poi sommo. Mi sembra di intuire che con questa "funzione" ci sei molto vicino.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 30 Marzo 2010, 23:43:38
il formatting equivale ad una specie di formattazione condizionata come quella di excel...
quindi il risultato della formula nella formattazione condiziona solamente colori e font della cella.

Per il discorso di 'spuntare' un prezzo lo possiamo fare con una column di tipo check (e' gia' in cantiere ;) ) le somme invece vengono già fatte con il campo formula....
Se tu volessi diciamo un totale della colonna, come credo tu abbia fatto nel tuo programma, allora diciamo che i dati inseriti nella griglia non devono essere tanti perche' in questo caso io devo per forza 'caricare' tutti i dati in un botto solo e non come sto facendo adesso con l'evento grid_data che mi carica in griglia solo le righe che io visualizzo...
non so se mi sono spiegato, comunque ad un 'totale colonna' ci avevo gia' pensato :)

Adesso mi sono intestardito nel creare l'oggetto databox che non e' altro che una textbox che accetta caratteri numerici e -/ come separatori e un button che visualizza una datechooser per selezionare una data... ti allego il progetto di quest'ultima... fammi sapere che ne pensi
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 31 Marzo 2010, 02:33:40
Il databox alla fine l'ho fatto solo con la textbox, ho accantonato il progetto con il tasto perche' mi dava dei problemi con i focus. In futuro si vedra'...

@Golia
Ho aggiunto nel riconoscimento della formula la funzione SE(<espressione>;se vero;se falso) in modo da fare il 'giochetto' che chiedevi tu...
la prossima volta che allego i sorgenti, alleggerisco un po il database per motivi di spazio e rifaro' una griglia di esempio che faccia vedere le funzioni fin qui implementate...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 01 Aprile 2010, 23:47:42
Ciao Milio,
Ho provato la funzione SE, ottima funziona.
Nella colonna 5, quella del prezzo con il check se ci clicco mi si pianta e mi dice "Too many arguments".
Nella colonna 4 quella della data non riesco a inserire niente
Ho anche visto l'opzione  ".Box.Typing = Grid.UpperCase" ho provato anche con LowerCase ma non cambia niente.
Non so, per l'errore non è che mi manca qualche pacchetto? non capisco
Ciao buon lavoro
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Aprile 2010, 22:21:02
la colonna con la check per adesso e' solo in lettura
la colonna 4 basta che digiti un numero oppure dai f2 per inserire la data...

l'opzione box.UpperCase serve per digitare tutti i caratteri in maiuscolo, LowerCase in minuscolo (e' abilitato sulla colonna del codice articolo)

Come dicevo nel post precedente, devo rifare il form di test e anche il database andrebbe fatto con tabelle un po' piu' 'ricche' di campi per gestire tutti gli esempi della griglia... se hai magari un db gia' confezionato da prestarmi con un po' di dati, mi eviteresti un po' di lavoro :)

ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 02 Aprile 2010, 23:22:43
Ciao milio
prima di tutto ti faccio i miei complimenti per il lavoro che stai facendo, veramente eccezionale.

Ho scaricato l'ultima versione che hai postato è stò facendo dei test in quanto il componente mi interessa tanto è secondo me ha enormi potenzialità.

Ho riscontrato lo stesso errore che ha fatto presente Golia,  nella colonna 5 quella del prezzo con il check se ci clicco il programma si blocca e genera l'errore "Too many arguments".

Nella colonna quattro premendo F2 (come hai suggerito tu) per inserire una data, non capisco in che formato va inserita, ho fatto varie prove ma non "memorizza" ne date ne numeri.

Per adesso mi fermo qui e continuo a provare.
Ti rinnovo i complimenti che meriti veramente.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 03 Aprile 2010, 01:01:46
Il problema sta nel fatto che il prototipo della funzione descritta che viene richiamata quando si clicca sulla colonna prezzo dovrebbe essere questo:

Codice: [Seleziona]
PRIVATE SUB ControlloCheck(Row AS Integer, Column AS Integer)

mentre in realtà lo chiami così:

ControlloCheck(GrdBox.Row, GrdBox.Column, TRUE)

Ho evidenziato TRUE poichè tu lo inserisci come parametro ma in realtà la funzione, per come l'hai costruita, non dovrebbe riceverlo....
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 03 Aprile 2010, 14:56:05
@Milio
Appena trovo il tempo ti preparo un db ricco di campi, mi invento qualcosa. Contento di essere utile ;D

@Ceskho + Tornu
Sono felice che siete interessati a questo progetto che ritengo stupendo.
Penso che se lo vede Benoit si lecca i baffi  :P :P ..se ce li ha!  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 03 Aprile 2010, 15:28:36
@ Golia

Scherzi...io qui devo essere presente da per tutto sennò Leo mi toglie lo stipendio di 2000€...

A parte gli scherzi...penso che il progetto possa essere davvero il trampolino di lancio per un nuovo componente "made in Italy"...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 03 Aprile 2010, 22:11:15
In che formato vuoi il db? Ti va bene un file csv visto che hai già la funzione per importarlo?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Aprile 2010, 23:24:36
Usti che complimenti che abbiamo ricevuto oggi.... grazie a tutti per l'interessamento....

L'errore sul click della check l'ho gia' risolta, e' che in quella versione funzionava solo in readonly...

@Golia
Se mi allegni il db in sqlite e' meglio, cosi' lo utilizzo da subito... sono un po' pigro in questo periodo :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 04 Aprile 2010, 01:03:44
Ok vedo di prepararlo
Ciao e buona pasqua a te e famiglia  :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 04 Aprile 2010, 01:06:44
Grazie.. Anche a te e alla tua :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 07 Aprile 2010, 17:46:03
Nuova versione della nostra gridbox...

Ho aggiunto la colonna tipo ComboBox e corretto alcuni errori di focus...
Ho alleggerito il db per motivi di spazio... in attesa che il nostro Golia mi posti il suo ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 07 Aprile 2010, 21:52:05
 :)Ciao, porta pazienza...stasera mi metto, e guardo anche le novità ;)
Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 09 Aprile 2010, 00:31:13
Ecco finalmente l'ho preparato ;D
Ho fatto una tabella di esempio dettagli, i campi sono

iddettaglio
quantita
codice
descrizione
colore
unit  ' stà per unità di misura, può essere: quantità, metri lineari / quadri etcc
prezzo
x ' misura per moltiplicare il prezzo per metri lineari / quadrati
y ' misura per moltiplicare il prezzo per metri quadrati
iva
maggiorazione
sconto
fornitore

Spero possa andare bene, puoi usare combobox per unit e fornitore, il ceck per calcolare l'iva oppure no.. vedi te
Ho messo dentro una ventina di articoli se sono pochi fammi sapere che aggiungo, come per il db se non và bene rifaccio..mi sono creato un programma apposta ;D
quindi la prossima volta faccio prima ;)
Ciao buon lavoro
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 13 Aprile 2010, 19:08:18
Eccomi... il DB va bene... bisognera' creare delle tabelle per fare dei 'documenti' (tipo fatture o bolle) per testare la gridbox...

Nel frattempo sono andato un po' avanti.. :)
- ho aggiunto dei metodi per settare la gridbox
- ho riguardato i vari fucus degli oggetti in griglia che facevano un po' le bizze
- nuova classe per settare i colori
- nuova classe per settare i 'tasti veloci' per le funzioni principali della gridbox
- ho sviluppato il metodo update per il salvataggio dei record modificati (per quelli inseriti devo ancora lavorarci)
- ho fatto una bozza di 'tutorial' che vorrei che tu esaminassi se puo' andare bene
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 13 Aprile 2010, 21:20:48
Bene, metto a letto i piccini e poi guardo.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: dex - 13 Aprile 2010, 22:42:06
complimenti milio

altro che giovane e pieno di bug, il progetto è già in una fase avanzata e si può gia integrare nei propri programmi.
secondo me gli mancano pochi aggiustamenti ed è pronto per il grande lancio.
resto in attesa di nuovi sviluppi
 
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 13 Aprile 2010, 23:01:03
he he... vedo che hai 'visitato' il tutorial...  ;D

Diciamo di si, siamo già in fase avanzata, soprattutto per quanto riguarda la sola visualizzazione dei record, ma la strada e' ancora lunga...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 14 Aprile 2010, 04:58:50
Quà il lavoraccio te lo stai facendo tutto da solo :)
Bella guida, ancora complimenti bravo proprio.
Dovrai fare una guida per il "metodo Milio"  ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 16 Aprile 2010, 23:02:47
Ciao Milio
Ho fatto un pò di prove,
Volevo provare "Grid.ComboBox" , ma non sò come caricare i dati..
Ho provato anche "ME.GridBox1.NewRecord()" mi crea la riga nuova però poi non la salva.
Non sarebbe meglio, in fase di inserimento, che ci fosse sempre una riga vuota sotto?
Penso comunque che queste cose ho le hai già fatte o sono in cantiere giusto? ;D

Non so proprio come funzioni poi il comonente? Cioè come si farà a importarlo poi in un progetto? :-[

Ciao, buon lavoro
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 16 Aprile 2010, 23:17:44
he he... per importare il componente in un progetto dovresti importarti tutte le classi create, oppure devi crearti il pacchetto di installazione e installartelo, in modo da avere il componente nella toolbar di dell'ide di gambas... pero' e' ancora prematura quest'ultima opzione perche' il progetto non e' ancora stabile e in continuo cambiamento...
per quanto riguarda il NewRecord ti posto l'ultima versione con la possibilita' di salvare i record nuovi...
Grid.ComboBox si carica tramite GridBox.Columns[<colonna>].box.ListCombo che accetta come valore una Collection (sappi pero' che la proprieta' .box e' ancora una bozza e sicuramente la cambiero')
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 16 Aprile 2010, 23:28:56
Ha, ho fatto anche in modo di poter inserire una nuova riga tra le righe... prova a premere F3 posizionandoti sulla griglia...
L'unica cosa e' che appena salvi (ovviamente) la riga creata prende l'ordine della query che viene passata per il caricamento dei dati in griglia...
E' in cantiere la possibilita' di creare un ordine (settando opportunamente anche la tabella dove verranno salvati i dati con un campo di 'riordino') in modo da mantenere le posizioni delle righe...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 17 Aprile 2010, 00:13:23
Nel gestionale che uso in ditta, ogni documento e' formato da minimo tre tabelle: una di testa, una di righe e una di riepilogo (o dati aggiuntivi).
Per quanto riguarda la parte delle righe, per l'ordine dato nel documento utilizza un campo denominato 'Riga' dove e' salvato un numero progressivo intero.
Quando vado ad inserire una riga tra le righe, ai record sottostanti vengono eseguiti degli Update per incrementare il numero di Riga... io questo lo volevo evitare mettendo un campo di riordino di tipo Float, all'inserimento di una riga andavo a dare il valore di riordino con una media tra i valori di riordino dei due record confinanti... che ne pensi, puo' essere una buona idea?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 17 Aprile 2010, 15:16:33
Non so, questo problema l'ho girato in molti modi anche quando mi avevo fatto il gestionale con access.
Secondo me la maniera più giusta per non creare confusione è proprio quella di spostare "fisicamente" i dati sotto:

Mettiamo che ho 10 righe, voglio inserire una riga tra la 6 e la 7
- creo in fondo una nuova riga (riga 11)
- copio tutti i dati di tutti i campi della 10 sulla 11
- della 9 sulla 10
- della 8 sulla 9
- della 7 sulla 8
- cancello i dati della 7 lasciando i campi pronti per inserimento dati.

in questa maniera puoi mantenere l'id crescente e anche il campo riga (naturalmente per questo campo quando lo sposti devi fare +1)
Caso mai ci ragioniamo ancora ;) questa è solo una soluzione
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Picavbg - 17 Aprile 2010, 23:21:00
Quando vado ad inserire una riga tra le righe, ai record sottostanti vengono eseguiti degli Update per incrementare il numero di Riga... io questo lo volevo evitare mettendo un campo di riordino di tipo Float, all'inserimento di una riga andavo a dare il valore di riordino con una media tra i valori di riordino dei due record confinanti... che ne pensi, puo' essere una buona idea?
Scusate l'intromissione, ma, siccome la curiosità supera l'ignoranza, vorrei capire come funzionerebbe un "valore di riordino". Io ho sicuramente capito male, perchè, aggiungendo un ulteriore colonna di tipo  "progressivo di riordino", come può essere valido nel tempo, senza riordinare mai il contenuto della tabella?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 18 Aprile 2010, 16:15:30
..Adesso sono in tilt :)
Non ho capito bene la colonna di riordino..
Comunque l'esempio che ho fatto io funziona anche senza campo numeratore se si mette in ordine per id, viene creato un id nuovo e spostati tutti i record precedenti fino alla riga scelta. Per spostati intendo copiare il contenuto dal record precedente.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Picavbg - 18 Aprile 2010, 18:39:35
..Adesso sono in tilt :)
Non ho capito bene la colonna di riordino..
Comunque l'esempio che ho fatto io funziona anche senza campo numeratore se si mette in ordine per id, viene creato un id nuovo e spostati tutti i record precedenti fino alla riga scelta. Per spostati intendo copiare il contenuto dal record precedente.
Mi dispiace avere creato confusione, ma mi riferivo alla proposta di milio:
Citazione
mettendo un campo di riordino di tipo Float, all'inserimento di una riga andavo a dare il valore di riordino con una media tra i valori di riordino dei due record confinanti
Non ho capito tale utilizzazione, nè come possa funzionare. Se posso capire il meccanismo, magari potrò essere in grado di darvi una mano ??? :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 18 Aprile 2010, 21:26:41
scusami, io non avevo capito :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 19 Aprile 2010, 01:07:30
la mia intenzione e' banalissima :)

Faro' ora un esempio che vedo io tutti i giorni sul posto di lavoro:

Documento bolletta.
E' composto da tre tabelle: BollaTesta, BollaRighe, BollaRif.
BolleTesta contiene i campi relativi al codice cliente, varie opzioni di bolla (se stampata, se fatturata, ecc...), numero bolla e IDBolla
BollaRighe contiene le righe di merce e quelle descrittive.
BollaRif contiene i riferimenti ai documenti di fatturazione e i movimenti generati dal controllo in magazzino.

Il nostro esempio cade sulla tabella BolleRighe
i campi cono i seguenti (ovviamente sono molti di piu', ma taglio corto :) ):
ID (Serial PrimaryKey) - IDBolla (Integer) - Riga (Float) - TipoRiga (Integer) - Codice (String) - Descrizione (String) - ecc... ecc....

Inserisco 3 record...
ID  IDBolla  Riga   TipoRiga   Codice   Descrizione
1   1        1      0          ABC      Tovaglia Colorata
2   1        2      0          ACB      Tovagliolo Colorato
3   1        3      0          CBA      Coprimacchia Colorato


Fin qui tutto bene... Nel frattempo si sono fatte altre 30 bolle da 5 righe l'una quindi sono state aggiunte 150 record e ci troveremo in questa situazione:
ID  IDBolla  Riga   TipoRiga   Codice   Descrizione
1   1        1      0          ABC      Tovaglia Colorata
2   1        2      0          ACB      Tovagliolo Colorato
3   1        3      0          CBA      Coprimacchia Colorato
...
...
149 31       1      0          ABC      Tovaglia Colorata
150 31       2      0          ACB      Tovagliolo Colorato
151 31       3      0          CBA      Coprimacchia Colorato
152 31       4      0          XCD      Tovaglia 150x150
153 31       5      0          ASA      Coprimacchia 100x100


Adesso mettiamo il caso che il cliente della prima bolla mi chiama e mi fa aggiungere della merce. Voglio anche far presente alla spedizione, con una riga descrittiva messa in evidenza sulla prima riga della bolla, che e' stata appunto aggiunta della merce... tu mi dirai "ma perche' la riga descrittiva non la metti per ultima e buonanotte al secchio?" e io ti rispondo "Perche' a quest'ora di notte, con mia moglie che mi da del malato di mente al solo accendere il pc a quest'ora, non mi veniva in mente un altro esempio valido per farti capire cosa intendo io per campo di riordino" :)

Aggiungo i nuovi record in aggiunta alla prima bolla:
ID  IDBolla  Riga   TipoRiga   Codice   Descrizione
154 1        0.5    1                   Il cliente vuole altra merce
155 1        4      0          ASA      Coprimacchia 100x100


Richiamando i dati nel report (e anche nella GridBox) con una query con ORDER BY Riga, avremo sempre l'ordine giusto dei record senza star li a fare UPDATE al Campo Riga per i record sottostanti o, peggio ancora, non avendo il campo riga per il riordino, a fare l'UPDATE al campo ID.

Spero di essermi spiegato bene... sono appena reduce da una cena di parenti, e il vino sta ancora in circolo  :P :P ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Picavbg - 19 Aprile 2010, 09:49:47
@milio:
Citazione
Aggiungo i nuovi record in aggiunta alla prima bolla:
ID  IDBolla  Riga   TipoRiga   Codice   Descrizione
154 1        0.5    1                   Il cliente vuole altra merce
155 1        4      0          ASA      Coprimacchia 100x100

Richiamando i dati nel report (e anche nella GridBox) con una query con ORDER BY Riga, avremo sempre l'ordine giusto dei record senza star li a fare UPDATE al Campo Riga per i record sottostanti o, peggio ancora, non avendo il campo riga per il riordino, a fare l'UPDATE al campo ID.
Benissimo, però ciò comporta ogni volta un'indagine sul numero di riga da comporre per l'inserimento in tabella. O forse il caso che hai descritto nell'esempio è l'unico che si possa manifestare? Non hai poi bisogno di distinguere i due gruppi di richieste?
Sempre, prendendedo spunto dall'esempio, dopo l'aggiunta, non si capisce quale sia la merce richiesta la prima volta e quale sia invece quella aggiunta.
Io non ho esperienza nel tuo settore, ma se fosse d'aiuto una similie distinzione, la tua riga di attenzione con la nota "Il cliente vuole altra merce", potrebbe benissimo essere aggiunta nella sequenza naturale delle righe, colorata in maniera diversa od evidenziata con un colore di sfondo idoneo a farla risaltare,  e con un numero di riga che sia il primo del nuovo gruppo di righe. Risolveresti anche il problema dell'indagine sul  numero di riga da inserire, perchè il programma saprebbe riconoscere il numero da attribuire automaticamente, attraverso la lettura delle righe già esistenti per la bolla in questione.
Ciao.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 19 Aprile 2010, 10:25:24

Benissimo, però ciò comporta ogni volta un'indagine sul numero di riga da comporre per l'inserimento in tabella.

Certo me e' sicuramente più rapido che non andare a fare un update ad ogni riga successiva a quella inserita...

Non hai poi bisogno di distinguere i due gruppi di richieste?
Sempre, prendendedo spunto dall'esempio, dopo l'aggiunta, non si capisce quale sia la merce richiesta la prima volta e quale sia invece quella aggiunta.
Io non ho esperienza nel tuo settore, ma se fosse d'aiuto una similie distinzione, la tua riga di attenzione con la nota "Il cliente vuole altra merce", potrebbe benissimo essere aggiunta nella sequenza naturale delle righe, colorata in maniera diversa od evidenziata con un colore di sfondo idoneo a farla risaltare,  e con un numero di riga che sia il primo del nuovo gruppo di righe. Risolveresti anche il problema dell'indagine sul  numero di riga da inserire, perchè il programma saprebbe riconoscere il numero da attribuire automaticamente, attraverso la lettura delle righe già esistenti per la bolla in questione.
Ciao.

Se hai letto tutto il mio post, quello riportato sopra era solo un esempio di come poter mantenere un ordine delle righe inserite successivamente alla creazione del documento. E' logico che io non vado di certo a scrivere alle mie colleghe di magazzino, sulla stessa bolla, che il cliente ha bisogno di nuova merce, ma creerò una nuova bolletta...

Potremmo fare anche un esempio più logico e mirato, ma la sostanza non cambierebbe... ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 19 Aprile 2010, 22:15:11
Avevo fatto la stessa cosa con access, poi ho cambiato, non ricordo il perchè..
Può porsi il problema se devi inserire più record? tipo più di 10?
Mi sembra molto più pulito un risultato del genere:
ID   IDBolla  Riga   TipoRiga   Codice   Descrizione
1    1        1      1                   Il cliente vuole altra merce
2    1        2      0          ABC      Tovaglia Colorata
3    1        3      0          ACB      Tovagliolo Colorato
154 1        4      0          CBA      Coprimacchia Colorato
155 1        5      0          ASA      Coprimacchia 100x100

Puoi ordinare sia per id che per riga, e non sei obbligato ad avere il campo riga
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 20 Aprile 2010, 13:36:38
Può porsi il problema se devi inserire più record? tipo più di 10?

No perché sarebbe sempre la media tra i valori confinanti alla riga inserita

Mi sembra molto più pulito un risultato del genere:
ID   IDBolla  Riga   TipoRiga   Codice   Descrizione
1    1        1      1                   Il cliente vuole altra merce
2    1        2      0          ABC      Tovaglia Colorata
3    1        3      0          ACB      Tovagliolo Colorato
154 1        4      0          CBA      Coprimacchia Colorato
155 1        5      0          ASA      Coprimacchia 100x100

Puoi ordinare sia per id che per riga, e non sei obbligato ad avere il campo riga

Ho fatto una cosa (anche perché è vero che avere un numero intero al posto di un float è piu' elegante):
ho inserito una nuova proprietà alla GridBox che si chiama .UpdateReording dove è TRUE se si utilizza il metodo di riordino con numeri interi, FALSE se si utilizza il metodo con numeri di tipo Float... a voi la scelta :)
Per quanto riguarda fare il riordino sul campo id, lo escludo gia' da subito anche perchè tu immagina l'esempio della bolla che avevo fatto qualche post sopra, e come succede quotidianamente dove lavoro io, vengano fatte 200 e piu' bolle al giorno con una media di (presa in questo momento sul db del server della ditta) 1500 record...
Tu pensa andare a fare una variazione ad una bolla che e' stata fatta 3-4 giorni prima! Dovresti fare un update di 4500 record per inserirne uno, quando invece hai un campo apposito con al massimo 5-10 update da fare....

Invio sorgenti per test ;)

Ps. c'e' un form in piu' del solito che si chiama frmDati. Non vi funzionera' perche' l'ho usato con un collegamento a db mysql qui in ditta, e serve a visualizzare i dati di guida dei camion durante le consegne... volevo solo far presente che con poche righe di codice e in pochissimo tempo (meno di 5 min) si puo' ottenere un risultato come nell'immagine allegata...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 20 Aprile 2010, 23:16:11
Ciao Milio,
Citazione
Tu pensa andare a fare una variazione ad una bolla che e' stata fatta 3-4 giorni prima! Dovresti fare un update di 4500 record per inserirne uno, quando invece hai un campo apposito con al massimo 5-10 update da fare....
Nel sistema che ho detto io non vado a toccare i record delle altre bolle, ma solo della bolla che inserisco il nuovo record.. , ma penso di non capire il tuo sistema ???.
Comunque secondo me va benissimo il modo che hai utilizzato :D

Citazione
..poche righe di codice e in pochissimo tempo (meno di 5 min)
questo vale solo per te :P io devo fare tutto il tragitto dei camion a piedi per arrivarci  :D :D :D
Ciao Milio, guardo il nuovo griedit
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 20 Aprile 2010, 23:47:14
.FieldReordering = "riga"
Questo funziona anche se non c'è riga nella tabella?

Ho provato a inserire righe con F3, ottimo con tutti e 2 i sistemi.
Ho provato a inserire nuovi record, non salva il prezzo al primo colpo, lo salva solo quando fà update
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 20 Aprile 2010, 23:52:33
il campo riga, anche se chiamato in altro modo, ci deve essere in tabellla

controllo l'insert... ti faccio sapere
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 21 Aprile 2010, 08:50:37
Ho trovato l'errore :(

Purtroppo devo fare una modifica mica da poco...
Com'era strutturato il codice fino alla penultima versione, permettevo solo la lettura di GridBox[Row,Column].Value all'esterno del componente... le ultime modifiche che ho fatto avevano appunto l'obiettivo di permettere la scrittura del valore della cella, ma evidentemente ho combinato un mezzo casino :)

Intanto, se vuoi testare la griglia, devi eliminare la sub:
Codice: [Seleziona]
PUBLIC SUB GridBox1_PosChange()

  ME.TextBox1.Text = GridBox1[ME.GridBox1.Row, ME.GridBox1.Column].Value

END

contenuta nel form FTestOrdine...

Mi metto subito al lavoro: ho la fortuna di dover sviluppare questo componente anche sul posto di lavoro perché e' diventato appetibile anche per mio capo ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 21 Aprile 2010, 14:11:46
Bene, risolto il problema (spero :) ) ...
praticamente erano i campi formula che mandavano in tilt il tutto...
ho dovuto creare un metodo 'speciale' interno alla classe simile al metodo _get di Gambas (per intenderci e' il metodo con cui vengono richiamate le celle della GridBox: GridBox[Row as Integer, Column as Integer] as Cell) in modo che il valore della cella che viene richiamato dalle formule, venga gestito separatamente.

allego sorgenti

ps. per motivi di omonimia tra pacchetti qui in azienda, sono costretto a cambiare il nome del progetto (temporaneamente) in gridedit.
Quando il componente sara' pronto, lo richiameremo di nuovo GridBox e sarà disponibile anche il pacchetto .deb sul mio repo ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Will32 - 23 Aprile 2010, 18:43:10
Allora, a che punto siamo ??  :P
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 23 Aprile 2010, 22:04:15
bha siamo ancora lontani ma qualcosa e' stato fatto ;)

mi sono preso due giorni di ferie e le ho dedicate ai lavori di casa... mercoledi' stavo studiando (come suggerito da golia) un sistema per avere la griglia 'sempre editabile' e avere una riga vuota in fondo per l'eventuale inserimento in 'serie' dei record...
devo ancora mettere in condizione di poter eliminare i record (eventualmente anche quelli appena inseriti ma non ancora salvati) e poi dovro' riguardarmi un attimino il tutto per vedere se ci sono migliorie da fare...
Fatto questo penso che ci siamo :)

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 26 Aprile 2010, 07:44:53
Ho trovato il modo per rendere la griglia 'sempre editabile' e ho appunto aggiunto una proprietà GridBox.AlwaysEditable (non mi veniva in mente altro nome :) ) di tipo boolean dove se TRUE ad ogni spostamento del mouse/tastiera si attiva l'oggetto corrispondente al tipo di dati per l'editing del record.

Adesso sto lavorando per avere sempre una riga vuota per l'inserimento di un nuovo record...
Avevo intenzione di impostare quali campi necessitano l'obbligo di inserire un dato per poter generare una nuova riga vuota... voi che ne dite?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 26 Aprile 2010, 10:49:55

Avevo intenzione di impostare quali campi necessitano l'obbligo di inserire un dato per poter generare una nuova riga vuota... voi che ne dite?


Potresti creare un campo index o roba simile...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 26 Aprile 2010, 12:01:05
Potresti creare un campo index o roba simile...

In che senso ?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 26 Aprile 2010, 12:24:20
Potresti creare un campo index o roba simile...

In che senso ?

No no...scusa..avevo capito male il tuo messaggio....io direi che il solo campo codice dovrebbe bastare....
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 26 Aprile 2010, 15:01:27
Nuova release:

Come detto sopra, ho aggiunto la proprietà GridBox.AlwaysEditable per rendere la gridbox sempre editabile sia con il click del mouse che con le frecce da tastiera.
Ho aggiunto la possibilità di cancellare un record, con relativo calcolo sulla colonna di riordino.

E' disponibile il mio repository personale per l'istallazione del pacchetto (solo derivate ubuntu):

deb http://milio.appix.net/gambas/ ubuntu/

Dopo l'installazione, per utilizzare il componente basta selezionarlo dal menù:

Progetto --> Proprietà --> Componenti --> gb.gridedit

e lo troverete nella toolbox di gambas alla voce 'Gambas-it.org' ;)



Ps. Fatemi sapere se il repo funziona  ;D

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 26 Aprile 2010, 15:06:15
ha, dimenticavo  :D , il pacchetto si chiama gambas2-gb-gridedit
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Aprile 2010, 08:04:00
Aggiunto proprietà GridBox.AutoNew per l'inserimento automatico di un nuovo record...
Per quanto riguarda il controllo sulla creazione di una nuova riga ho pensato di farla gestire direttamente all'utente tramite un evento tipo 'GridBox_BeforeNewRecord' o qualcosa di simile...

Mi è venuta in mente una cosa nel frattempo: introdurre un metodo di ricerca per la GridBox.. che ne dite? può essere utile?

Intanto allego i nuovi sorgenti (aggiornato anche il repo... nessuno l'ha provato? :( )
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 27 Aprile 2010, 09:57:26
Ciao Milio,
Scusami non ho più potuto guardare il progetto.
Spero nelle prossime sere.
L'idea della ricerca è buona, può essere sempre utile
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 27 Aprile 2010, 14:57:45
ehi Milo vuoi un consiglio sciocco da una persona sciocca? Man mano che scrivi codice e implementi funzioni scrivi uno pseudo manuale...così chi vuole usare il tuo componente saprà cosa fare e come farlo.....puoi usare il nostro wiki così saremo ben lieti di aiutarti...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 27 Aprile 2010, 19:02:07
Milio come devo fare per installare il componente da repository? Per queste cose sono una capra ???
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Aprile 2010, 19:15:54
che distro hai?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 27 Aprile 2010, 21:15:17
9.04 jaunty
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Aprile 2010, 21:30:12
bene

apri un terminale e digita:

sudo gedit /etc/apt/sources.list

vai in fondo al file e in una riga nuova iserisci:

deb http://milio.appix.net/gambas/ ubuntu/

salva e chiudi. Sempre da terminale digita:

sudo apt-get update

e poi dai

sudo apt-get install gambas2-gb-gridedit

fammi sapere ciao ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 27 Aprile 2010, 21:37:55
Perfetto adesso ho il componente :D
Adesso faccio le prove ;)
Ciao grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Aprile 2010, 21:46:45
bene allora funziona  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 27 Aprile 2010, 23:39:35
Ciao Milio
Ho provato a creare un nuovo progetto con il componente.
Ho copiato FtestOrdine e CConnection dal tuo.
Non parte e trova l'errore quà
Codice: [Seleziona]
GridBox1 = NEW GridEdit(ME.Panel1) AS "GridBox1"
forse perchè giustamente non trova la classe GridEdit...
..ho paura che mi dovrai fare un esempio con il componente attivo ;D

Inoltre volevo chiederti, per connettersi al database c'è bisogno di CConnection o si può fare anche diversamente?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 28 Aprile 2010, 05:50:27
allora...
Mi hai detto che l'installazione del pacchetto gambas2-gb-gridedit e' andata a buon fine, giusto?
Bene, per prima cosa (non hai specificato se l'hai fatto, ma da quello che mi hai detto penso di no ;) ) devi andare in Progetto --> Proprietà --> Componenti dal menù nell'ide di gambas e selezioni i componenti gb.gridedit e gb .db (richiesto da gb.gridedit)
A questo punto ti ritroverai nella toolbox (quella dove vai a selezionare gli oggetti da inserire in un form, per intenderci ;) ) una nuova sezione con il nome di 'Gambas-it.org'.
Bene, seleziona l'oggetto GridEdit e buttalo in un form o in un panel , fai tu...

A questo punto la tua GridEdit e' già istanziata e non avrai bisogno di inserire la riga di codice GridEdit1 = NEW GridEdit(ME)
Per quanto riguarda la proprietà GridEdit.Connection accetta una qualsiasi Connection, quindi puoi fare cosi':

PRIVATE CCon as NEW Connection

PUBLIC SUB Form_Open()
 
  WITH CCon
    .Type = "mysql"
    .Host = "localhost"
    .Port = "3306"
    .Name = "miodb"
  END WITH

  GridEdit1.Connection = CCon

END


oppure direttamente cosi':


PUBLIC SUB Form_Open()
 
  WITH GridEdit1.Connection
    .Type = "mysql"
    .Host = "localhost"
    .Port = "3306"
    .Name = "miodb"
  END WITH

END


Io sul posto di lavoro faccio riferimento sempre agli stessi db e quindi per non ripetere sempre lo stesso codice (e ovviamente per non fare errori di password o peggio se cambio nome/indirizzo ip al server db), mi preparo delle classi derivate da Connection e ne faccio un componente che installo in tutti i client. Cosi' se devo fare un aggioramento alla connection, mi basta creare una nuova release del pacchetto del componente e fare l'aggiornamento sui vari client.
A proposito, quando uscira' una nuova versione della GridEdit (che sara' poi GridBox :) ) non dovrai far altro che dare da terminale:

sudo apt-get update

e

sudo apt-get dist-upgrade

quest'ultimo comando fa l'upgrade di tutti i pacchetti che necessitano di aggiornamento.
In alternativa puoi benissimo usare il tuo installatore grafico di pacchetti, ricordandoti pero' di fargli fare l'aggiornamento dei repository prima di cercare nuovi upgrade...

fammi sapere...  :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 28 Aprile 2010, 14:02:26
Oggi ho provato anch'io la GridBox su un'applicazione che visualizza un registro dei corrispettivi: rispetto alla prima versione che avevo fatto (che voi non avete visto, forse solo Golia quando gli e' venuto l'appetito di GridBox ;) ) c'e' un abisso in fatto di velocità di caricamento dati.

Direi che ci siamo quasi... l'unica cosa che manca ancora sono gli eventi...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 28 Aprile 2010, 21:37:01
Mi stò già divertendo :D :D
Funziona, adesso devo provare un pò tutte le funzionalità ;D ;D che bello!!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 28 Aprile 2010, 21:45:52
he he he
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 28 Aprile 2010, 22:48:59
Ciao Milio
Mi sono già piantato...e non capisco dove sbaglio
Ho provato a farmi una griglia(ho modificato la tua..), la visualizzazione è ok, però quando vado a modificare il database mi dice "Unknown symbol 'GridEdit1' In class 'FMain' "
Ti allego la mia prova..

Poi ho notato che
Codice: [Seleziona]
.AlwaysEditable = TRUE
funziona in maniera alternato, c'è un motivo?
.AutoNew serve per la famosa riga vuota sotto?

@Ceskho
Codice: [Seleziona]
Man mano che scrivi codice e implementi funzioni scrivi uno pseudo manuale...così chi vuole usare il tuo componente saprà cosa fare e come farlo.....puoi usare il nostro wiki così saremo ben lieti di aiutarti...
Mi studio per bene il componente e poi la guida la faccio io, magari ci scappa anche un articolo su Il resto del pinguino ;) , sò già il titolo..."Le magie di Milio"  ;) ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 29 Aprile 2010, 05:08:26
Ciao Milio
Mi sono già piantato...e non capisco dove sbaglio
Ho provato a farmi una griglia(ho modificato la tua..), la visualizzazione è ok, però quando vado a modificare il database mi dice "Unknown symbol 'GridEdit1' In class 'FMain' "

Perché  se richiami l'oggetto del form in questa maniera: ME.GridEdit1. .... devi andare in Progetto --> Proprietà --> Opzioni e abilitare 'i controlli del form sono public'

Poi ho notato che
Codice: [Seleziona]
.AlwaysEditable = TRUE
funziona in maniera alternato, c'è un motivo?

In che senso 'alternato' ?

.AutoNew serve per la famosa riga vuota sotto?

esatto... basta impostarla a TRUE

Mi studio per bene il componente e poi la guida la faccio io

Mi faresti un gran favore, non mi e' mai piaciuto fare guide... ;)

magari ci scappa anche un articolo su Il resto del pinguino ;) , sò già il titolo..."Le magie di Milio"  ;) ;)

Sei sempre il solito esagerato  :P :P :P
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 30 Aprile 2010, 00:46:13
Ciao Milio,

Citazione
.AlwaysEditable = TRUE

funziona in maniera alternato, c'è un motivo?

In che senso 'alternato' ?

Provanto con .AlwaysEditable = TRUE e mi posiziono in una cella è editabile, mi sposto in giù con la freccia e non lo è (come se fosse .AlwaysEditable = FALSE), continuo andare giù e lo è e dopo no. Praticamente uno spostamento si e uno no.

Codice: [Seleziona]
.AutoNew = TRUE
Non succede niente.. true o false non cambia niente. forse devo attivare qualcos'altro?

Mi stò creando degli esempi, mi scriveresti 2 righe per "combobox" e "Check"?

La guida la faccio molto volentieri, spero di capire bene e riuscire a trasmettere. Mi ci vorrà un pò di tempo...quello è sempre poco ::)

Caso mai se hai un pò di tempo mi faresti un riassunto delle funzioni? tipo:

.ReadOnly solo lettura o no
.KeyActivity attiva tasti o no
.....

Ciao, buona notte :)


Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 30 Aprile 2010, 00:47:43
@ golia

Ti consiglio di iniziare la guida sl wiki così posiamo aiutarti tutti....va bene?
Ci terrei a partecipare...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 30 Aprile 2010, 10:20:34
@ Golia

Non riesco proprio a replicare l'errore... :(
Forse perche' nel frattempo ho aggiornato il codice e non mi sono accorto del bug...
Prova ad aggiornare il componente con sudo apt-get dist-upgrade che ho messo su una versione nuova con corretti alcuni bug
Per quanto riguarda gli esempi adesso mi metto al lavoro, mentre per una piccola guida sintetica vedro' cosa posso fare...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 01 Maggio 2010, 11:22:43
H aggiornato il componente, continua a essere editabile uno spostamento si e uno no.

@Ceskho
Grazie dell'aiuto, appena posso comincio.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 01 Maggio 2010, 20:42:51
mi puoi postare il tuo programma che provo...
il primo spostamento lo fai con il mouse o con le frecce?
ti sposti orizzontalmente o verticalmente?

non riesco proprio a vedere l'errore... a me funziona tutto regolarmente :(
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 02 Maggio 2010, 10:08:35
Scusa il ritardo..
Me lo fa sia col mouse che con le frecce, e in qualsiasi direzione.
ecco la mia prova.
Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Maggio 2010, 14:18:06
 ??? il mistero si infittisce...
ho provato a scaricare il tuo esempio, ma a me continua a funzionare regolarmente...
non so che dire...

ho provato in tutte le maniere, ma non riesco proprio a replicare l'errore...

mi sposto con le frecce, tab, mouse ma la griglia rimane sempre editabile...
ho provato anche a inserire dei dati all'interno delle celle e spostarmi, ma anche in questo caso la cella successiva rimane attiva per la modifica... che ci sia un qualche programma esterno che ti 'cattura' gli eventi?

hai provato a spostarti solo con il mouse o con tab e backtab?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Maggio 2010, 14:28:08
mmmm... mi e' venuto un dubbio... hai detto che usi una ubuntu giusto?

quindi hai gnome come desktop manager...

devo provare su una macchina virtuale.... ti faccio sapere
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 02 Maggio 2010, 15:23:26
Si ho gnome
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 02 Maggio 2010, 15:29:49
Ho notato anche che perde il focus con le gtk.
Nella prova che ti ho mandato ho usato le qt
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Maggio 2010, 16:50:34
si ho provato anch'io con le gtk e devo dire che e' un disastro...

il mio problema e' che sia in ufficio che a casa uso kubuntu quindi le gtk non le uso... vedro' cosa posso fare...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 02 Maggio 2010, 17:12:58
si ho provato anch'io con le gtk e devo dire che e' un disastro...

il mio problema e' che sia in ufficio che a casa uso kubuntu quindi le gtk non le uso... vedro' cosa posso fare...

Non pensarci più di tanto...continua lo sviluppo solo con le qt....è una guerra persa in partenza...:-)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 02 Maggio 2010, 20:51:46
Anche secondo me, mantieni le qt altrimenti si diventa matti
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Maggio 2010, 14:06:42
@Golia

Prova a testare sulla tua distro le modifiche che ho fatto...
Per adesso scaricati il sorgente... per il pacchetto provvedo domani in ufficio ad aggiornarlo... fammi sapere che son diventato matto (due settimane di lavoro non valgono la fatica di rimanere tre giorni chiusi in casa a fare il baby-sitter con due marmocchi scatenati ;) )

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 05 Maggio 2010, 17:50:59
Citazione
due settimane di lavoro non valgono la fatica di rimanere tre giorni chiusi in casa a fare il baby-sitter con due marmocchi scatenati Occhiolino
Come ti capisco!  :) il mio più grande ha 3 anni e la piccola 1, a volte non capisco come fà mia moglie a passare tante ore da sola :D
Stasera provo, ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Pixel - 05 Maggio 2010, 17:53:02
OT
Citazione
due settimane di lavoro non valgono la fatica di rimanere tre giorni chiusi in casa a fare il baby-sitter con due marmocchi scatenati Occhiolino
Come ti capisco!  :) il mio più grande ha 3 anni e la piccola 1, a volte non capisco come fà mia moglie a passare tante ore da sola :D
Stasera provo, ciao
OT

Ehm..ehm.. stasera provi a passare tante ore da solo con i tuoi figli?
Certo che fra tutti siamo messi bene.. più che il forum di Gambas sembriamo il forum di Genitori-che  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: leo72 - 05 Maggio 2010, 18:12:00
SOS Tata... :o
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 05 Maggio 2010, 21:56:38
 :D :D Aggiungi una sezione al forum Leo! :P :P
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 05 Maggio 2010, 22:24:17
@Milio
Ho provato in ufficio stasera, avevo dato un'occhiata veloce però AlwaysEditable funziona perfettamente.
Stò provando a casa però quando eseguo il programma, si pianta "Il programma si è bloccato inaspettatamente con un segnale #11".
Non capisco, le distribuzioni sono le stesse e i programmi installati anche. Unica cosa che non ho in ufficio è il tuo componente. Non sò se può dipendere da quello.
In ufficio ho provato a vedere (sempre in velocità) AutoNew, mi sembra che non faccia nulla. Però mi viene il sospetto di non aver capito cosa deve fare. Io mi aspettavo la riga vuota sotto pronta per inserire un nuovo record, mi sbaglio?
Appena ho un pò di tempo mi aggiorno con Lucid, e metto anche in dual boot Kubuntu così posso vedere le eventuali differenze tra i desktop.
Ciao fammi sapere
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Maggio 2010, 22:46:43
per il problema che il prog si pianta prova a fare:

Progetto --> Ridisegna

e poi

Strumenti --> Aggiorna tutte le form

può darsi che hai decompresso i sorgenti in una cartella dove risiedeva una vecchia versione e ultimamente ho eliminato qualche form e classi inutili...

Per quanto riguarda AutoNew e' ancora da vedere come deve 'reagire alla chiamata'.
Per adesso se vai in editazione e sei sull'ultima cella editabile, spostandoti con il tab (o con le frecce se sei in AlwaysEditable) si crea una riga nuova in automatico...
Se hai qualche suggerimento da darmi per questa proprietà, dimmi che ti ascolto volentieri ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 05 Maggio 2010, 23:00:09
Niente da fare continua a bloccarsi...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Maggio 2010, 23:00:54
hai provato a scaricare e scompattare in una cartella 'pulita' ?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 05 Maggio 2010, 23:06:24
Si ma niente, non capisco. Ho provato "gb.gridedit-2.0.33" una delle ultime che avevo scaricato e funziona. Questa non va.. però in ufficio mi è andata. Quì a casa uso Gambas 2.20 e in ufficio adesso che ci penso non credo di aver aggiornato alla 2.20...non saprei
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Maggio 2010, 23:10:21
mmm... tu hai compilato la tua versione di gambas o l'hai installata da qualche repo?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 05 Maggio 2010, 23:30:09
L'ho compilata, mentre se in ufficio non ho la 2.20, allora è installata con il gestore dei pacchetti che dovrebbe essere la 2.13 mi sembra
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Maggio 2010, 23:38:06
io ho la 2.20.2...
provare magari ad allineare le versioni.
ti suggerisco anche un repository dove poter installare direttamente i pacchetti:
guarda questo link http://www.gambas-it.org/smf/index.php?topic=630.0
ormai dovresti essere un esperto nell'aggiungere repo nella sources.list ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Maggio 2010, 00:08:27
Si ;)
Ok provo, ti faccio sapere.
Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Maggio 2010, 17:08:00
Stasera sistemo il Gambas a casa.
Qui in ufficio ho sempre 2.20 e va tutto ok, funziona bene tutto  :D

AutoNew:
Va bene così, adesso ho capito. Crea una nuova riga al momento che vado avanti se mi trovo nell'ultima cella a dx.
Però secondo me sarebbe più veloce per l'inserimento, che la riga nuova venisse creata al momento che comincio a scrivere qualcosa nell'ultima. Per esempio io quando mi scrivo a "mano" (non inserito da listino) un preventivo, vado a scrivere prima tutte le descrizioni, poi vado ad aggiungere il prezzo. In questa maniera resto sempre nella colonna descrizione e mi sposto in giù con la freccia creando continuamente nuovi record, poi con il listino cartaceo in mano vado a sistemare i prezzi. Forse sarà l'abitudine ma mi sembra più veloce.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Maggio 2010, 19:08:25
Aspetta prima di aggiornare, che forse (anzi era) un errore mio...  :P
ti allego nuovi sorgenti
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Maggio 2010, 23:31:25
Tutto ok Milio ;D, funziona anche a casa.
Per autonew va già bene cosi, vedi te se può essere utile come ti ho detto nel post precedente.
Quando puoi fammi 2 righe di codice per combo e check.
Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 07 Maggio 2010, 02:42:08
@ Golia

Mi sono permesso di modificare la pagina che avevi creato sull'installazione di GridBox....vedi se ti va bene cosa ho fatto così puoi sempre modificare
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 07 Maggio 2010, 11:19:04
Grazie del prezioso aiuto Ceskho  :)
Un pò alla volta vedo di continuare a scrivere la guida, tu seguimi sempre ok? ;D Anzi...se vuoi scrivere qualcosa..fa solo piacere
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 11 Maggio 2010, 18:09:58
Hi Milio!!
Volevo chiederti se il progetto gridbox sarà solo con Gambas3 o entrambi.
Ciao, vedo di cominciare la guida nel wiki
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 11 Maggio 2010, 20:33:52
ma diciamo che per adesso sono per tutte e due...
il porting per gambas3 e' riuscito alla perfezione.
Se vuoi ti allego i sorgenti ;)

Con la programmazione del componente sono comunque al palo, mi sto coccolando un po' con gambas3 in questo periodo ;)

appena capisco come in gambas3 riesca a fare un pacchetto per la gridbox aggiornero' il mio repo

ciao

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 12 Maggio 2010, 00:26:03
Scaricherò dai repo quando hai fatto, mi stò "coccolando" anch'io G3 anche se stò trovando qualche difficoltà >:(
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 17 Maggio 2010, 23:04:08
Ciao Milio,
Eccomi quà con alcune cose da chiederti ;D

Intanto volevo sapere se dopo aver eliminato delle righe, e prima di salvare, dunque finchè sono rosse, è possibile fare "retromarcia", cioè deselezionare la riga.

In un esempio che stò facendo vorrei che in un textbox sia sempre visibile l'id del record. Ho fatto così:
Codice: [Seleziona]
PUBLIC SUB GridEdit1_PosChange()
  ME.TextBox1.Text = GridEdit1[ME.GridEdit1.Row, 0].Value
END
Però con questo sistema sono obbligato a vedere nella griglia la colonna id. E' possibile nasconderla o si può fare in un altro sistema?

In caso che si deva copiare una riga da un altro form, come accade per esempio con inserimento dati da un listino, è giusta questa procedura teorica?
   Salvo; apro il form listino e seleziono le descrizioni da copiare; con una query creo un record nuovo e inserisco le descrizioni copiate; torno nel form gridbox e ricarico.

..intanto basta :D Ciao grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 18 Maggio 2010, 03:04:03
eccoci :)

Ciao Milio,
Eccomi quà con alcune cose da chiederti ;D

Intanto volevo sapere se dopo aver eliminato delle righe, e prima di salvare, dunque finchè sono rosse, è possibile fare "retromarcia", cioè deselezionare la riga.

mmm... per il momento no. Dovrei implementare un metodo .Reset() che faccia in modo da eliminare tutte le modifiche che sono state fatte prima di salvare...

In un esempio che stò facendo vorrei che in un textbox sia sempre visibile l'id del record. Ho fatto così:
Codice: [Seleziona]
PUBLIC SUB GridEdit1_PosChange()
  ME.TextBox1.Text = GridEdit1[ME.GridEdit1.Row, 0].Value
END
Però con questo sistema sono obbligato a vedere nella griglia la colonna id. E' possibile nasconderla o si può fare in un altro sistema?

Il codice e' giusto... basta che fai ME.GridEdit1.SetHidden([0]) oppure ME.GridBox1.Columns[0].Hide = TRUE e voila'...

In caso che si deva copiare una riga da un altro form, come accade per esempio con inserimento dati da un listino, è giusta questa procedura teorica?
   Salvo; apro il form listino e seleziono le descrizioni da copiare; con una query creo un record nuovo e inserisco le descrizioni copiate; torno nel form gridbox e ricarico.

..intanto basta :D Ciao grazie

Si, per 'ricaricare' pero' o aspetti che ti metta il metodo ME.GridEdit1.Reset() oppure gli ridai in pasto la query con ME.GridEdit1.LoadData(<tua query>) (che tra l'altro puo' servire anche per il primo punto per eliminare le modifiche ;) )

ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 18 Maggio 2010, 13:24:39
Ok stasera provo dargli in pasto la query dal listino ;D
Il resto provato, tutto ok grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 18 Maggio 2010, 13:59:50
Aggiorna il componente perche' c'era un bug al ricaricamento della query...

Ho aggiunto anche GridEdit.Reset()

ti lascio anche i sorgenti...

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 18 Maggio 2010, 14:59:56
Ti allego anche i sorgenti per gambas3 ;)

Ho rimesso il nome originale del componente... GridBox :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 19 Maggio 2010, 00:32:35
Perfetto, gli ho dato in pasto la query e funziona egregiamente,  :D
Citazione
ME.GridBox1.LoadData("insert into...
poi per ricaricare la griglia
Citazione
ME.GridBox1.LoadData("select...

Ho provato
Codice: [Seleziona]
ME.GridBox1.Reset()
Ok  ;)

Come si fà da questi sorgenti creare il modulo per poterlo usare in altri progetti?

Ciao milio grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 19 Maggio 2010, 06:30:32
Intendi dire x gambas3?

Basta creare un eseguibile del componente (in questo caso della nostra GridBox)...

Crei un nuovo progetto (o ne carichi uno già iniziato)... vai in Progetto --> Proprietà --> Librerie (che a me si chiama Libraries...bho)
selezioni Add... cerchi l'eseguibile e poi dai Ok.

Allora arrivati a questo punto non so se al componente manca qualcosa o è a gambas3 che non funziona bene...
Comunque a 'naso' ho pensato che una volta caricata la libreria bastasse andare a selezionare nella sezione Componenti, la libreria appena caricata...
Purtroppo mi viene sempre fuori un messaggio che mi dice che il componente selezionato non funziona...
L'unico modo per farlo andare e' di non selezionare il componente, tenersi la libreria e istanziare l'oggetto da codice...
Altra cosa che ho notato e' che quando scrivi es:

PUBLIC GridBox1 AS

in teoria dovresti trovarti GridBox all'interno della lista dei 'suggerimenti', ma non e' cosi'.
Comunque sia una volta istanziato l'oggetto...

PUBLIC GridBox1 AS GridBox

PUBLIC SUB _new()

  GridBox1 = NEW GridBox(ME.Panel1)


e inizi a settare la griglia...

 With GridBox1
    .Expand = TRUE
    ....


vedrai che i 'suggerimenti' delle sue proprietà e metodi funzionano
Spero di essere stato chiaro nella spiegazione :)

Ciao e buona giornata! ;)

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 19 Maggio 2010, 11:09:08
Ho capito, stasera provo. :D
E per gambas2 mi sembra di capire che bisogna copiare fisicamente i file o c'è un altro sistema?
Ciao buona giornata anche a te

edit:
No, c'è un altro sistema perchè tu lo hai già fatto ;D ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 19 Maggio 2010, 11:42:19
per gambas2 devi installare il .deb dal mio repo oppure ti scarichi i sorgenti, crei il pacchetto e te lo installi...

 ??? Ma non l'avevi gia' installato?  ???


 :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 19 Maggio 2010, 13:25:07
si certo ;D
Pensavo che i sorgenti che hai postato quì fossero più aggiornati.
Tra kubuntu e gambas3 ho un pò di confusione ::) però mi piace :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 19 Maggio 2010, 22:52:26
Stò provando il metodo normale (non il metodo milio ;D)..petta ..ce la devo fare ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 19 Maggio 2010, 23:21:02
Come sei messo?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 19 Maggio 2010, 23:23:03
male
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 19 Maggio 2010, 23:28:35
in che senso ? cosa non riesci a fare?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 19 Maggio 2010, 23:33:22
Aspetta che adesso qualcosa comincia andare :D
Se sbatto un pò la testa poi mi ricordo di più ;)
Non preocc, dopo ti mando il pacchetto che me lo finisci ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 19 Maggio 2010, 23:37:39
Non riesco a fare andare AlwaysEditable e autonew.. :(

tra 10 min ti mando il pacco
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 19 Maggio 2010, 23:39:39
10 min???  :o ... ma hai visto l'ora???  :P

Scherzi a parte, se tra dieci min esatti non posti, vado veramente a dormire... :)
e se non mi sveglio nel cuore della notte per un attacco di acidita' di stomaco, lo vedo domani mattina.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 20 Maggio 2010, 00:03:52
Tranquillo non mi aspettare :D
Ho fatto quasi tutto ;D ;D
l'unica cosa che al momento non mi va è nascondere la colonna,
Codice: [Seleziona]
  WITH GridEdit1.Columns[0]
    .Hide = TRUE
    .Type = Grid.Type.Field
    .Field = "iddettaglio"
    .DataType = Grid.DataType.Serial
    .Text = "ID"
    .w = 40
  END WITH

Per il momento non ti posto niente, mi rivedo meglio il tutto e preparo per un esempio col combobox.
Ho pensato di fare l'esempio col metodo classico perchè mi sembra più intuibile per una guida, però se metti a confronto le sole 10 righe dell'altro metodo...

Ciao buona notte
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 20 Maggio 2010, 06:18:50
Codice: [Seleziona]
WITH GridEdit1.Columns[0]
    .Hide = TRUE
    .Type = Grid.Type.Field
    .Field = "iddettaglio"
    .DataType = Grid.DataType.Serial
    .Text = "ID"
    .w = 40
  END WITH

Da questo codice ho capito che c'e' un bug :)

prova a togliere .w = 40

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 20 Maggio 2010, 11:22:46
Allora mi aggiorno...

Ho corretto il bug nella versione su gambas2 (aggiornato il repo ;) )
Adesso se hai una colonna settata con .Hide = TRUE anche se dopo gli modifichi la larghezza rimane sempre nascosta.

Per gambas3 ho segnalato un comportamento anomalo nella sezione bug

ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 20 Maggio 2010, 20:34:56
..bug o no sono stato un pollo a dare la larghezza a una colonna che non voglio vedere :) ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 20 Maggio 2010, 20:42:12
 :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 22 Maggio 2010, 00:55:10
Ciao Milio,
Ti allego il mio esempio così ci dai un'occhiata, ho aggiunto una tabella al database per poter fare l'esempio combobox. La tabella si chiama “colori”  e il campo con i dati da riempire la combo è “colore”. Comunque capirai guardando l'esempio, ho destinato anche una colonna per check.
Se mi fai un piacere a farmi questi esempi..

Hai per caso già previsto una funzione per fare la somma totale di una colonna?

Ciao grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 22 Maggio 2010, 10:15:17
Per gli esempi guardero' stasera....


Per fare le somme delle colonne e' una cosa che mi son sempre detto di fare, ma non so come...
Apparentemente e' semplice: parto dalla prima riga e 'conto' fino all'ultima... poi nell'ultima cella ci metto il risultato....
Ma questa procedura mi rallenterebbe la visualizzazione dei dati...
Mi spiego... Come e' strutturata adesso la griglia, quando gli dai in pasto la query, il componente 'disegna' le righe (con i rispettivi record) effettivamente visualizzate a video.
Se io richiamo una cella che non e' visualizzata, la griglia deve comunque prima 'disegnarsela' prima di passarmi il valore.
Quindi capirai che se io devo fare un totale della colonna, e per forza di cose mi servono i valori di ogni singola cella, mi dovra' prima disegnare l'intera griglia con la conseguenza di un rallentamento nel richiamo di una query.
Siccome il database fa prima a calcolare un totale con la query 'SELECT Count(campo) AS Totale1 FROM Tabella WHERE ....;' pensavo di elaborare la query data in pasto alla griglia, facendo in modo di fare le somme dei campi che si vogliono visualizzare mantenendo intatta la sezione del WHERE.

Cosa dici si puo' fare?

E' ovvio che questo problema e' rivolto ad una tabella 'consistente'... se i record visualizzati sono solo, diciamo, un centinaio allora non c'e' motivo di farsi tanti giri di testa :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 22 Maggio 2010, 10:29:24
Io non farei il totale nella griglia ma in un textbox messo sotto. Sarebbe facile con una semplice query.. ma sarebbe bello che il totale fosse visibile anche prima di salvare. Con il totale in un textbox diventa più semplice fare altre operazioni sul totale, tipo iva, sconto etcc.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 22 Maggio 2010, 10:34:19
bhe il mio era solo un esempio :)

Si puo' fare una cosa di questo genere:

  TextBox1.Text = Format(GridBox1.Columns[3].TotalValue,"$,0.00")

oppure direttamente riprendendo il format della colonna con:

  TextBox1.Text = GridBox1.Columns[3].TotalText

Che dici ?

Facciamo ste due proprieta' in piu'?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 22 Maggio 2010, 10:38:57
Mi sembra più semplice e molto funzionale

edit: però ti confesso che tuo post precedente non l'ho capito del tutto :D
a volte (tante) non ti stò dietro  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 22 Maggio 2010, 11:16:32
:)

Magari una volta che proverai queste due proprieta' nuove con una tabella di 20000 rec, capirai che cosa intendevo dire ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 22 Maggio 2010, 11:40:47
he he.. più o meno ho capito :)

dove sbaglio per fare la colonna "data"?
Codice: [Seleziona]
  WITH GridEdit1.Columns[10]
    .Hide = FALSE
    .Type = Grid.DataType.Date
    .Field = "data"
    .Text = "data"
    ' .DefaultValue = "0"
    .Format = "dd-mm-yyyy"
    .w = 80
  END WITH
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 22 Maggio 2010, 11:53:14
che errore ti da?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 22 Maggio 2010, 16:09:59
"Type mismatch: wanted Float, got string instead"

Il campo nella tabella in sqlite è di tipo "date"

Allora ho provato a collegarmi al un db mysql..e quà mi sono piantato..di brutto :(
Ho creato un db nuovo, ho collegato il db così
modulo Conn
Codice: [Seleziona]
PUBLIC $CCon AS NEW Connection

PUBLIC SUB connmydb()
 
  WITH $CCon
    .Type = "mysql"
    .Host = "localhost"
    .Login = "root"
    .Port = "3306"
    .Name = "prova" 
    .Password = "miapassw" 
   
     
  END WITH

END

nel form

Codice: [Seleziona]
PUBLIC SUB _new()

Conn.connmydb()

    WITH GridEdit1
    .Expand = TRUE
    .Connection = Conn.$CCon
    .AutoDataType = TRUE
    .FieldKey = ["iddettaglio"]
    .Columns.Count = 6
    .TableName = "dettagli"
    .LoadData("select * from dettagli ORDER BY iddettaglio")
    END WITH



  WITH GridEdit1.Columns[0]
    .Hide = FALSE
    .Type = Grid.Type.Field
    .Field = "iddettaglio"
    .DataType = Grid.DataType.Serial
    .Text = "ID"
    .w = 40
  END WITH



  WITH GridEdit1.Columns[1]
    .Hide = FALSE
    .Type = Grid.Type.Field
    .Field = "codice"
    .Text = "Codice"
    .DefaultValue = "cod20"
    .w = 80   
  END WITH
 
  WITH GridEdit1.Columns[2]
    .Hide = FALSE
    .Type = Grid.Type.Field
    .Field = "descrizione"
    .Text = "Descrizione"
    .w = 300   
  END WITH   
 
  WITH GridEdit1.Columns[3]
    .Hide = FALSE
    .Type = Grid.Type.Field
    .Field = "quantita"
    .Text = "quantita"
    .Alignment = 2
    .w = 80
  END WITH   


  WITH GridEdit1.Columns[4]
    .Hide = FALSE
    .Type = Grid.Type.Field
    .Field = "prezzo"
    .Text = "Prezzo"
    .DefaultValue = "0"
    .Format = "$,0.00"
    .Alignment = 2
    .w = 80
  END WITH 
 
  WITH GridEdit1.Columns[5]
    .Hide = FALSE
    .Type = Grid.Type.Field
    .Field = "numeratore"
    .Text = "riga"
    .w = 40   
  END WITH
   
    WITH GridEdit1   
    .FieldReordering = "numeratore" ' campo numerico di riordine = float o decimal   
    .UpdateReording = TRUE ' false non riordina e mette es. 10.5 , true riordina il campo FieldReordering
    .AlwaysEditable = TRUE ' sempre editabile
    .KeyActivity = TRUE ' attiva funzione key
    .ReadOnly = FALSE ' solo lettura
    .AutoNew = TRUE '
    END WITH

END

Il collegamento funziona , ho provato a fare:
Codice: [Seleziona]
PUBLIC SUB ToggleButton1_Click()
  DIM sql AS String
  sql = "insert into dettagli (codice, descrizione, prezzo, numeratore ) values ('29', 'gigi', '0', '1')"
  conn.$CCon.EXEC(sql)
END
e mi inserisce il primo record. Se apro il form la grid me lo visualizza e anche mi permette di scrivere altre righe, però non salvare o aggiornare il primo record. L'errore è del tipo "query failed..."

Devo staccare un pò e riguardarmi il tutto a freddo ;D adesso sono in tilt
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 22 Maggio 2010, 18:05:34
mmm bho... dovresti postarmi il tuo prog e far in modo che mi possa ricreare le tabelle mysql sul mio pc...

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 22 Maggio 2010, 18:20:06
Stasera provo a casa, adesso sono in ufficio con ubuntu, a casa ho kubuntu.
Voglio anche vedere di non aver fatto qualche castroneria, per non farti perdere tempo per nulla ;)
Intanto buon fine settimana, ciao :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 22 Maggio 2010, 18:22:12
anche a te ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 22 Maggio 2010, 23:07:39
Non riesco a capire dov'è l'errore...
Ti allego il progetto, ho fatto in modo che si crea il database da solo, devi solo controllare il modulo CONN per type host etcc.
Ho provato ancora la colonna data, sempre con sqlite, e non va. Sicuramente sbaglio a scriverla.
Ci aggiorneremo la settimana prossima, non voglio farti diventare matto il week.   ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 24 Maggio 2010, 13:10:26
Plaudo all'iniziativa.

Sarebbe bello avere anche un gb.midi !  ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 24 Maggio 2010, 16:24:29
@ Golia

Ho scaricato il tuo esempio e effettivamente con mysql non funzia... devo studiarmi come fargli fare le query multiple... magari tu sai come fare?

@ vuott

hehe... se mi chiedi qualcosa su sql e database ti posso dare una mano, ma midi...  :-X
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 24 Maggio 2010, 16:56:27
 :( mi spiace no.
Tu che databse usi?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 24 Maggio 2010, 17:00:13
uso:
postgresql
sqlite
ms-sql server (via odbc per linux)
e anche mysql

quest'ultimo pero' lo usiamo solo per immagazzinare dati della produzione, quindi facciamo solo query di selezione per le statistiche...

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 24 Maggio 2010, 17:02:19
Comunque sia fino adesso con la gridbox ho solo usato db sqlite per la lettura/scrittura...

Si dovra' vedere ogni singolo 'caso' ed eventualmente fare delle query ad hoc per ogni db.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 24 Maggio 2010, 17:16:20
 :( quanto lavoro!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 24 Maggio 2010, 20:19:55
A dimenticavo l'odiato Firebird :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 24 Maggio 2010, 22:59:47
Se hai un pochino di tempo mi fai l'esempio combo e check sul programma che ti ho mandato con sqlite? Così intanto mi preparo un pò di guida, almeno mi sento un pò utile ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 24 Maggio 2010, 23:22:52
Scusa ma stasera son cotto :)

Domani nel primo pomeriggio mi tengo libero per l'esempio... promesso  :P
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 24 Maggio 2010, 23:38:54
Tranquillo, niente fretta :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 25 Maggio 2010, 14:35:47
Per la colonna tipo combobox devo ancora lavorarci: se trovo un dato nella griglia che non esiste nella lista della combobox mi si inchioda tutto.
Ti ho fatto l'esempio per checkbox... anche questo va rivisto perche' quando la griglia e' sempre editabile non rispetta i movimenti fatti con le frecce, ma solo il movimento fatto con il tab...

mi spiace non essere troppo presente al progetto, ma in questo periodo sono poco in ufficio e a casa non ho piu' tanto tempo per dedicarmici...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 25 Maggio 2010, 16:50:04
Devi scusarmi, pensavo che combo e check fossero già fatti..
Non volevo metterti fretta :)
Stasera guardo, ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 25 Maggio 2010, 17:15:46
Provato, ok basta sistemare lo spostamento con le frecce.

Fa con calma, quando hai tempo, io intanto penso a come devo scrivere la guida ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 26 Maggio 2010, 16:22:45
allora... ho messo in condizioni la GridBox di usare mysql... provalo...

per l'oggetto checkbox devo rivederlo un attimino che cosi' com'e' non mi piace tanto...

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 26 Maggio 2010, 17:05:52
Ho notato che con mysql il campo di tipo DECIMAL viene interpretato da gambas come string...
Dovresti cambiare il campo da DECIMAL in DOUBLE...
Almeno, se non capita solo a me...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 26 Maggio 2010, 22:08:42
Grazie Milio,
Adesso provo subito ;D
Per cambiare il campo da DECIMAL in DOUBLE nessun problema, neanche con i dati dentro. Ho appena provato :)
Ti faccio sapere, grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 26 Maggio 2010, 22:54:53
OK, funziona ;D ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 26 Maggio 2010, 23:03:32
bene allora si va avanti :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 31 Maggio 2010, 22:09:03
Sbaglio o hai sistemato Check?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 31 Maggio 2010, 22:25:30
si...

oggi ho modificato alcune form in un'applicazione che faceva uso della mia prima versione di GridBox...
penso che arrivati a questo punto del progetto sia il modo migliore di fare aggiustamenti e ritocchi al codice: usare il componente ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 31 Maggio 2010, 22:43:32
e si :D
Io aspetto il combobox e poi aggiorno il mio gestionale ;D
..e devo fare la guida ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 31 Maggio 2010, 22:52:40
Dove sbaglio a fare le condizioni in questo codice?
Citazione
  WITH ME.GridBox1.Columns[9].Formatting[0]
    .Comparison = "=C[5] = 0"
    .Formatting.BackColor = &HFF0000&
    .Formatting.ForeColor = &HFFFFFF&
    .Formatting.Text = "CARO"
    .Formatting.Alignement = Align.Center
  END WITH
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 31 Maggio 2010, 22:55:12
Che errore ti da?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 31 Maggio 2010, 23:24:29
Out of bouds

ti faccio vedere tutto il codice che forse sbaglio da qualche parte

Codice: [Seleziona]
[color=blue][font=Verdana]PUBLIC SUB _new()

Conn.connmydb()

    WITH GridEdit1
    .Expand = TRUE
    .Connection = Conn.$CCon
    .AutoDataType = TRUE
    .FieldKey = ["iddettaglio"]
    .Columns.Count = 10
    .TableName = "dettagli"
    .LoadData("select * from dettagli ORDER BY x")
'     .Formatting.Count = 1
    END WITH



  WITH GridEdit1.Columns[0]
    .Hide = TRUE
    .Type = Grid.Type.Field
    .Field = "iddettaglio"
    .DataType = Grid.DataType.Serial
    .Text = "ID"
    .w = 40
  END WITH

  WITH GridEdit1.Columns[1]
    .Hide = FALSE
    .Type = Grid.Type.Field
    .Field = "x"
    .Text = "riga"
    .w = 40    
  END WITH

  WITH GridEdit1.Columns[2]
    .Hide = FALSE
    .Type = Grid.Type.Field
    .Field = "codice"
    .Text = "Codice"
    .DefaultValue = "cod20"
    .w = 80    
  END WITH
  
  WITH GridEdit1.Columns[3]
    .Hide = FALSE
    .Type = Grid.Type.Field
    .Field = "descrizione"
    .Text = "Descrizione"
    .w = 300    
  END WITH  
  
  WITH GridEdit1.Columns[4]
    .Hide = FALSE
    .Type = Grid.Type.Field
     ' .DataType = ComboBox
    .Field = "colore"
    .Text = "Colore"
    .Box.ListCombo.Add(1, "gigi")
    .Alignment = 3
    .w = 80
  END WITH    

  WITH GridEdit1.Columns[5]
    .Hide = FALSE
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.Boolean
    .Field = "unit"
    .Text = "Check"
    .Box.ValueCheck = 1
    .Box.ValueUncheck = 0
    .DefaultValue = "0"
    .w = 40
  END WITH

  WITH GridEdit1.Columns[6]
    .Hide = FALSE
    .Type = Grid.Type.Field
    .Field = "prezzounit"
    .Text = "Prezzo"
    .DefaultValue = "0"
    .Format = "$,0.00"
    .Alignment = 2
    .w = 80
  END WITH  
  
  WITH GridEdit1.Columns[7]
    .Hide = FALSE
    .Type = Grid.Type.Formula
    .Text = "Prezzo * 2"
    .Formula = "=C[6]+C[6]"
    .Format = "$,0.00"
    .Alignment = 2
    .w = 80
  END WITH    

  WITH GridEdit1.Columns[8]
    .Hide = FALSE
    .Type = Grid.Type.Formula
    .Text = "se 0"
    .Formula = "=SE(C[5]=0;C[7];0)"
    .ReadOnly = TRUE
    .Format = "$,0.00"
    .Alignment = 2
    .w = 80
  END WITH  
      
  WITH GridEdit1.Columns[9]
    .Hide = FALSE
    .Type = Grid.Type.Formula
    .Text = "se -1"
    .Formula = "=SE(C[5]=0;0;C[7])"
    .ReadOnly = TRUE
    .Format = "$,0.00"
    .Alignment = 2
    .w = 80  
    

  END WITH

  WITH ME.GridEdit1.Columns[9].Formatting[0]
    .Comparison = "=C[5] = 0"
    .Formatting.BackColor = &HFF0000&
    .Formatting.ForeColor = &HFFFFFF&
    .Formatting.Text = "CARO"
    .Formatting.Alignement = Align.Center
  END WITH

    WITH GridEdit1
'     .SetHidden([0, 1])
    
    .FieldReordering = "x" ' campo numerico di riordine = float o decimal    
    .UpdateReording = TRUE ' false non riordina e mette es. 10.5 , true riordina il campo FieldReordering
    .AlwaysEditable = TRUE ' sempre editabile
    .KeyActivity = TRUE ' attiva funzione key
    .ReadOnly = FALSE ' solo lettura
    .AutoNew = TRUE '
    END WITH

END[/font][/color]
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 01 Giugno 2010, 05:39:37
ti manca prima de settaggio del formatting ME.GridEdit1.Columns[9].Formatting.Count = 1
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 01 Giugno 2010, 08:45:34
Grazie, ora funziona ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 01 Giugno 2010, 16:39:40
Ciao Milio
Ho visto un aggiornamento oggi.
Novità? :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 01 Giugno 2010, 18:25:41
Aggiustamenti, ritocchi... Ritocchi e ancora aggiustamenti ;)

ho cambiato il metodo GridBox.Reset(): prima mi faceva un 'Refresh' della griglia. Ora mi 'ripulisce' la griglia

ho aggiunto gli eventi ColumnClick(Column AS Integer) e ColumnRow(Column AS Integer) perche' ne avevo necessita' in un form....
Praticamente sono sole le 'copie' degli eventi gestiti da una semplice GridView... Mi serviva soprattutto l'evento ColumnClick per fare un ordinamento dei dati nella griglia...

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 01 Giugno 2010, 23:41:08
Ciao milio
Citazione
ho cambiato il metodo GridBox.Reset(): prima mi faceva un 'Refresh' della griglia. Ora mi 'ripulisce' la griglia
Praticamente adesso per fare il Refresh:
Citazione
ME.GridEdit1.Reset()
ME.GridEdit1.LoadData(sql)

Citazione
ColumnClick(Column AS Integer) e ColumnRow(Column AS Integer)
Possono sempre far comodo, devo ricordarmi di inserirli nella guida :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 01 Giugno 2010, 23:58:35

Praticamente adesso per fare il Refresh:
ME.GridEdit1.Reset()
ME.GridEdit1.LoadData(sql)

no basta GridEdit1.Refresh()  ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 02 Giugno 2010, 00:05:09
ah ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 05 Giugno 2010, 23:46:51
Ciao a tutti.
Il progetto di Milio è davvero a un buon punto, e invito tutti gli utenti che lavorano con database a darci un'occhiata.
Troverete uno strumento molto potente, di facile utilizzo nella stesura codice, anche molto concentrato volendo usare il metodo Milio al posto del metodo tradizionale. Vi assicuro che con una quarantina di righe di codice create una griglia con lettura e inserimento dati in vari formati, e con comandi di gestione già pronti. Allego un esempio, con i 2 metodi, il metodo tradizionale (di facile apprendimento) e il metodo Milio (molto sintetico).
Lo troverete anche molto pratico e veloce nell'inserimento dati per quanto riguarda l'utente finale.
Nell'esempio c'è già un database sqlite con qualche record già scritto.
Sono sicuro che dopo aver visionato l'esempio non potrete fare a meno di usarlo ;)

..così magari qualcuno mi aiuterà a fare la guida :P
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Giugno 2010, 02:20:42
Mi stai facendo pubblicita' adesso? :)


l'esempio che hai fatto va benissimo.. il problema e' che devi avere il componente installato, altrimenti non funziona
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Giugno 2010, 10:40:11
Ho tralasciato il particolare più importante  :D
La guida per l'installazione del componente la trovate quì http://www.gambas-it.org/wiki/index.php/Installazione (http://www.gambas-it.org/wiki/index.php/Installazione)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 09 Giugno 2010, 23:33:03
Ciao Milio, come va?

Ho rifatto qualche form nel mio progetto che uso al lavoro, e per adesso mi sembra vada tutto benissimo ;D
Penso che per aumentare ulteriormente la velocità di inserimento dati, si dovrebbe creare una nuova riga (dall'ultima riga) premendo la freccia giù anche se non sei nell'ultima colonna. Come funziona adesso per creare la nuova riga bisogna per forza passare per l'ultima colonna editabile.
Non che sia indispensabile.. però a mio parere avrebbe una prestazione più veloce  :D

Ciao, tienimi aggiornato per gli aggiornamenti ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 10 Giugno 2010, 21:10:35
Ciao golia...

Per questa e prossima settimana niente aggiornamenti :)
sono al mare con la famiglia...

Ci sentiamo quando rientro

Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 10 Giugno 2010, 22:32:44
Il riposo del guerriero ;)
Buona vacanza, ciao :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 19 Giugno 2010, 11:12:35
 :( :( purtroppo siamo tornati dalle ferie  :( :(


Ciao Milio, come va?

Ho rifatto qualche form nel mio progetto che uso al lavoro, e per adesso mi sembra vada tutto benissimo ;D
Penso che per aumentare ulteriormente la velocità di inserimento dati, si dovrebbe creare una nuova riga (dall'ultima riga) premendo la freccia giù anche se non sei nell'ultima colonna. Come funziona adesso per creare la nuova riga bisogna per forza passare per l'ultima colonna editabile.
Non che sia indispensabile.. però a mio parere avrebbe una prestazione più veloce  :D

Ciao, tienimi aggiornato per gli aggiornamenti ;D

Per creare una nuova riga si puo' anche impostare la proprieta' GridBox.KeyGrid.KeyInsertNew = key.quellochevuoi in modo che in qualsiasi punto della griglia ti trovi vai a generare una nuova riga...
Adesso e' impostato sul Key.F6

Per quanto riguarda la tua idea penso che si possa fare...
Lunedi' inizio un nuovo progetto che comprende l'inserimento di dati in griglia... allora vedro' quale sistema adottare...

Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 19 Giugno 2010, 13:34:41
Ciao Milio, ben tornato.
Intanto io ho provato un pò il componenete :D, lo sto adattando al mio progetto con molta facilità ;D

Ho trovato un errore, penso sia nel codice che ho scritto io.
Si vede anche nell'ultimo esempio che avevo postato quà.
Nell'esempio ho evidenziato i 2 sistemi di scrittura codice.
Nel sistema tradizionale, mi si blocca spostandomi con le freccie o col tab, quando passo sopra al Check. Però attenzione, solo in una riga nuova non ancora salvata.
Nel sistema milio funziona a meraviglia, quindi penso di non aver scritto correttamente il codice.

Mi farai sapere, tranquillo non c'è fretta, ...si torna a lavuraa! :P :P 
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 25 Giugno 2010, 23:06:53
Ho trovato l'errore...naturalmente mio :D
Nel metodo tradizionale avevo aggiunto per la colonna check:
Citazione
.DefaultValue = "0"
Che non serviva a niente oltretutto...

Rettifico:
Citazione
.DefaultValue = 0
e serve
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 26 Giugno 2010, 00:56:38
Eccomi ancora..
Hai per caso fatto una funzione per la somma di una colonna?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 27 Giugno 2010, 00:40:53
Citazione
Per creare una nuova riga si puo' anche impostare la proprieta' GridBox.KeyGrid.KeyInsertNew = key.quellochevuoi in modo che in qualsiasi punto della griglia ti trovi vai a generare una nuova riga...
Adesso e' impostato sul Key.F6

Velocissimo così, perfetto va benissimo così grazie

ti correggo ;) il codice è questo
Citazione
GridBox.KeyGrid.KeyNew = key.quellochevuoi

Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 28 Giugno 2010, 22:33:13
Ciao Milio,
Ho un problema. Ho creato un form per inserimento dettagli, con gridbox, questa funziona benissimo, ma avendo la necessità di inserire dei codici salvati in un listino, vado aprire un altro form dove filtro il dettaglio da dare in pasto alla query. Apro il form normalmente senza chiudere il form con gridbox, quando lo chiudo e quindi rientro nel form gridbox questo si pianta. L'errore che mi segnala è "Invalid object". Da cosa può dipendere?
Ciao grazie

edit:

Aspetta forse ho risolto ;D ;D
Mi connettevo al db così: MODMain.Connect()
Sia con gridbox che con l'altro form.
Ho provato a fare una funzione solo per gridbox, cioè cosi: MODMain.Connectgrid() mentre l'altro form con il vecchio MODMain.Connect()
E funziona tutto a meraviglia, almeno sembra :D :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Luglio 2010, 17:16:48
Ciao Milio, so che in questo momento sei preso, intanto scrivo perchè non venga dimenticato ;)

dex ha scritto:
Citazione
come mai a me gridedit mi blocca gambas?
dopo aver installato il componente gambas2-gb-gridedit gambas non si avvia e mi da questo errore:
Codice:
ERROR: #27: Cannot load component 'gb.qt': cannot find library file

uso ubuntu 9.10 e gambas 2.19 compilato da sorgenti


Si potrebbe creare un pacchetto deb di gridbox?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Luglio 2010, 18:53:12
il pacchetto deb e' quello che viene installato dal mio repo...
sinceramente non ho mai installato la gridbox su di un sistema in cui ci sia installata una versione compilata a mano di gambas....
e comunque ti posso assicurare che con gambas 2.19 scaricato da repo ufficiali di ubuntu, la gridbox funzica a meraviglia   ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Luglio 2010, 22:42:55
Si, funziona anche a me.
Mi spiace che Dex non l'ha potuto provare.

Forse è proprio là l'inghippo. Mi sembra di ricordare che quando ho installato lucid mi sia capitato la stessa cosa, però avevo dato la colpa a Gambas3, poi ho installato dai repo di ubuntu.

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: dex - 07 Luglio 2010, 01:58:11
il pacchetto deb e' quello che viene installato dal mio repo...
sinceramente non ho mai installato la gridbox su di un sistema in cui ci sia installata una versione compilata a mano di gambas....
e comunque ti posso assicurare che con gambas 2.19 scaricato da repo ufficiali di ubuntu, la gridbox funzica a meraviglia   ;)
Con gambas compilato và in errore perché installando gridbox si tira dietro dei pacchetti deb della 2.13 dai repo.

Devo provare ad installare la 2.19 dai deb, dove posso trovarla?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 07 Luglio 2010, 07:37:33
Se hai ancora ubuntu 9.10 troverai gambas alla versione 2.20.2 nel seguente repo:

deb http://ppa.launchpad.net/fidojones/ppa/ubuntu karmic main

Se nel frattempo hai aggiornato la tua distro alla 10.04, nei repo ufficiali trovi gambas 2.19.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: dex - 07 Luglio 2010, 23:41:04
fatto e funziona o almeno adesso il componente è attivo.
adesso sarà un problema cominciare a capire come usarlo.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 08 Luglio 2010, 20:50:20
Ciao, finalmente sei arrivato  ;)
Puoi inserire gridedit in un form come una noramle gridview. Lo trovi nel toolbox nella linguetta Gambas-it.org.

Per il codice guarda questo esempio, e facile vedrai.
Ti ricordo che nel database c'è bisogno di un campo per ordinare i record, nell'esempio il campo è "x"

facci sapere
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 04 Agosto 2010, 18:22:46
Ciao a tutti...

Riprendo il progetto in quanto son tornato di nuovo in ufficio a far pasticci :)

Ho una cosa da chiedervi:
so che non siamo tanti ad usare questo componente (vero Golia? ;) ) e in questo momento mi vien difficile a star dietro alle cose ordinarie, figurati ad un componente nato cosi' per gioco...
La mia domanda e' questa: se continuassi il progetto solo per Gambas3?
Io lo sto usando a manetta, e per quello che mi serve va molto bene...
Ho ripreso in mano il progetto del componente riguardando un attimo il codice, ma mi vien difficile tener aggiornate le due versioni :(
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 05 Agosto 2010, 11:13:08
Ciao ben tornato :-*
Per me continuare con Gambas 3 è ok, anch'io stò pensando di rifarmi il gestionale da zero con G3.
Però devo chiederti un favore personale, perchè Gridedit non mi funziona bene in un form, solo in uno (naturalmente il più importante :'(). Ho provato in mille modi, con mysql, con sqlite..non capisco dove è l'errore. Se mi puoi aiutare stò ricreando un progetto con solo quel form incriminato e creazione del database come il mio.
L'errore è questo: scrivo normalmente, mi sposto benissimo con le frecce, tutto ok. Quando salvo (ME.GridEdit1.Update()) o annullo le operazioni (ME.GridEdit1.Refresh()) nelle celle dei numeri non posso spostarmi con le frecce, se passo nella cella del prezzo azzera il contenuto.
Ti chiedo di farmi l'ultimo sforzo con G2 ;)
Ciao, buon lavoro
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Agosto 2010, 13:26:48
Appena puoi postami il tutto che provo...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 05 Agosto 2010, 14:35:02
Ecco quà.
Ho provato a fare 2 form, entrambi non vanno bene. non ci capisco più niente :rolleyes:
Se mi apro l'esempio che ho fatto quì nel 3d funziona egregiamente.
I casini li comincia a fare una volta che si salva.
Nell'esempio il database si crea da solo in mysql, basta che apri il modulo MODmain e metti la tua password host etcc.
Devo chiederti un'altra cosa, come si gestisce un "primo" record? nel senso che io ho una tabella preventivi e una tabella dettagli, se faccio un nuovo preventivo, quando apro il form di gridedit naturalmente non trova dettagli, allora intanto avevo fatto una query all'avvio del form che se non trova record ne crea uno.c'è un altro sistema? Comunque vedi tutto nell'esempio.
Ciao grazie mille
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Agosto 2010, 10:59:20
Ho scaricato il tuo esempio...

In effetti non avevo mai provato la grid con una tabella 'vergine' :)
Vedo di mettere a posto...
Ho fatto in modo che non sia obbligatorio avere un campo di 'riordino'

Per il resto ci aggiorniamo ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 11:03:19
Ok grazie,
Succede anche a te che dopo salvato va in tilt?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Agosto 2010, 15:20:09
Allora... ho visto perche' 'va in tilt'...
Nel db che mi hai passato, ho visto che hai messo dei campi INT() e dei campi DECIMAL()
Non so perche' ma quando metti la proprieta' GridEdit.AutoDataType = TRUE questi due tipi di campo le riconosce come String
Correggendo sulla tabella con INT() --> INTEGER e DECIMAL() --> DOUBLE il problema non si pone.
Adesso si riesce a fare anche il primo record in una tabella 'vergine' ;)
Tra un 10 min aggiorno il repo

Fammi sapere.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 15:29:19
Grazie, intanto provo ad aggiornare il database
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 15:53:03
Grande Milio !! :ok:
Funziona bene adesso.
Ho notato che i campi INTEGER danno ancora qualche problemino, tipo una volta salvato non permette gli spostamenti con le frecce in su e in giù, ho cambiato anche quelli con DOUBLE e mia pare sia tutto ok  :ok: :ok:
Milio devo mandarti un camion di birre :2birre: :2birre:

Tra poco provo ad aggiornare il componente, devo fare qualcosa sul codice per il primo record?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 06 Agosto 2010, 15:59:47
Ho marcato la discussione come importante in modo tale che risalti e sia sempre presente per chi naviga in questa sezione. Spero di aver fatto cosa gradita a chi sviluppa e chi usa questo componente.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 16:02:00
Grazie Ceskho :-*,
speriamo che qualcuno finalente provi questo fantastico componente
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Agosto 2010, 16:31:17
WOW  :o siamo stati promossi  ;D

Grazie Chesko....

@Golia

Per lo spostamento con le frecce vedo di far qualcosa...
Hai per caso aggiornato dal repo? Non riesco a capire se l'aggiornamento e' andato a buon fine oppure no...
Per le birre son sempre a disposizione  :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 16:33:44
Ho provato, non aggiorna.
Con i campi di tipo double non ci sono problemi, per g2 può restare così
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Agosto 2010, 16:34:46
Azz... devo aver fatto qualche casino  :rolleyes:

Vedo di aggiustare il tutto per stasera...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 16:36:24
Tranquillo..fammi sapere quando provare
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Agosto 2010, 16:42:33
 :evil: Harrg...

Ancora quel bug sulla creazione dei pacchetti in gambas...
Mi chiama il pacchetto gambas-gb-gridedit invece che gambas2-gb-gridedit

5 min....
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Agosto 2010, 16:49:21
 :ok:  Ok prova adesso....  :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 16:56:23
ok, scaricato :ok:
Cosa devo fare nel codice per il primo record?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 17:01:09
Visto  ;D non serve niente, basta ME.GridEdit1.NewRecord()  :ok:
Grande, adesso è una bomba!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Agosto 2010, 17:02:10
ok a posto allora  8)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 17:15:56
L'ultima cosa,
Per installare il componente per G3 è sufficente così?

sudo apt-get install gambas3-gb-gridedit

Ciao grazie di tutto

edit:
no..così no
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Agosto 2010, 17:27:33
Magari fosse gia' cosi' :)

Per integrarlo con Gambas3 devi fare:

Progetto --> Proprieta' --> Libraries --> Add
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Agosto 2010, 17:30:17
e ci metti il file (naturalmente scompattato) che ti allego
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 17:31:36
Ho capito, allora ci vuole il componente nel disco
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 17:32:02
Ok adesso provo, grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Agosto 2010, 17:32:54
L'unica cosa e' che non ti ritroverai la gridbox nella toolbox :(

Dovrai istanziarti la grid da codice...

Codice: vb [Seleziona]
Public GridBox1 As GridBox

Public Sub _new()

  GridBox1 = New GridBox(Me.Panel1)

End
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2010, 17:41:39
Ti stavo giusto chiedendo dove fosse ;D
Ok provo stasera  :coder:,
grazie ancora alla prox
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 08 Agosto 2010, 23:15:58
Stò provando GridBox con G3 ma non so farlo andare :-\
Potresti mettere le mani in questo esempio? ;)
Ciao grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 09 Agosto 2010, 09:27:31
Si effettivamente qualcosina e' cambiato, soprattutto nel settaggio delle varie colonne con il metodo 'milio' :)

Ti ho scritto degli appunti all'interno del codice che mi hai postato...

Dovro' fare anche delle modifiche sull'oggetto check, perche' ho visto che non risponde ai 'tasti freccia'
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 09 Agosto 2010, 10:52:11
Grazie milio, funziona.
Ho notato che oltre al problema del check non fà il suo dovere neanche questo:
Codice: gambas [Seleziona]
.Columns["codice"].DefaultValue = "20"

neanche così
Codice: gambas [Seleziona]
.Columns[2].DefaultValue = "20"
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 09 Agosto 2010, 11:11:26
mmm controllo....  :coder:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 09 Agosto 2010, 13:34:35
Prova un po'... il problema da te riscontrato era solo sull'inserimento di un nuovo record come ultima riga, ma se provavi 'tra le righe' funzionava... comunque adess a le a post.

Per la check non riesco a capire perche' funzionano tutti i tasti tranne il key.down che mi fa perdere il focus alla griglia... mah...  :hard:

comunque ci aggiorniamo...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 09 Agosto 2010, 14:46:43
Adesso va bene :ok:
E' quasi ferragosto, lascia che il componente si riposi ;)
Magari qualche utente tornato dalle vacanze potrebbe venir voglia di guardarlo :(
Ciao Milio, alla prox

P.S. Se qualcuno volesse veramente darci un'occhiata, oltre che scaricare il pacchetto postato da milio prima, ha bisogno del database sqlite (che ho postato sotto) da mettere nella cartella nascosta ".dbGridBox".
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 10 Agosto 2010, 09:07:25
Beato te che vai in ferie.... io ci sono gia' stato...

Il componente comunque va avanti in questi giorni.
I prossimi passi saranno:

    selezione di piu' righe per eventuali cancellazioni multiple/modifiche equivalenti
    riga per i totali (come mi avevi gia' richiesto tempo fa ;) )

Quest'ultima pensavo di farla separata dalla griglia in modo da averla sempre in primo piano...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 10 Agosto 2010, 12:08:32
Stupendo!   :D
Secondo me il totale va fatto in un textbox, tipo textbox1.text= .gridbox.sum[3]  ;D credo sia cosi :).. in modo che dopo si possa fare anche altre operazioni dopo, tipo affiancare la casella iva (un esempio come altri) textboxiva.text = textbox1.text * 20% (adesso non mi viene la formula ;)).
Ciao Milio, fino a sabato sono al lavoro, finalmente poi stacco anch'io  :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 10 Agosto 2010, 17:45:03
Io avevo in mente un'altra cosa... guarda l'esempio che ti posto e dimmi cosa ne pensi

E' solo un esempio, ma il risultato grafico non cambia (o almeno e' quello che voglio rappresentare poi con la gridbox)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 10 Agosto 2010, 22:22:39
Si va bene anche così. Ti chiedo alcune cose che ho pensato guardando la griglia
1: sarà possibile aggiungere testi nella cella del totale: tipo "Totale parziale: €20,00" ?
2: la cella che sarà sotto una colonna di "descrizione" dovrà essere vuota (penso sia scontato  ;D)
3: come si gestirà ad esempio totale e totale ivato? in questo modo mi sembra di capire che ci vogliono per forza le proprie colonne perchè non si possono fare calcoli tra risultati

P.S. hai fatto tu le frecce per ingrandire la griglia o è Gambas 3? :)
Per adesso basta, il resto lo scopriremo solo vivendo :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 10 Agosto 2010, 22:31:16
Dimenticavo, funziona il combobox?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 11 Agosto 2010, 10:07:55
Si forse hai ragione tu... e' meglio lasciare " all'utilizzatore finale " ( :rotfl: ) il compito di rappresentare come meglio crede i totali.
Possiamo magari aggiungere delle proprieta' alle colonne tipo .Media oppure .Somma in modo di avere in qualsiasi momento il calcolo esatto dell'intera colonna anche dopo aggiunto/modificato i dati in griglia...

Per quanto riguarda la combobox mi sembra di aver gia' fatto qualcosina (anche perche' nel codice vedo dei riferimenti al campo di tipo combo)
Essendo che e' un po' che non ci metto le mani sopra, mi sembra di aver preso in mano un progetto scritto da qualcun'altro :)
Ti faccio sapere...

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 11 Agosto 2010, 11:51:48
Concordo :ok:
Lo so è difficile riprendere in mano un progetto del genere..praticamente devi studiartelo di nuovo :-\

P.S. in questi giorni che mia sorella è in ferie, stò usando la griglia proprio come utilizzatore finale, inserendo dati per preventivi etcc.
E' proprio quello che volevo, si ha una buona velocità di inserimento dati, poi usando la tastiera per nuovo, salva, inserimento tra righe, spostamento con freccie e tab, il tutto senza mettere mano al mouse è una cosa fantastica, ti vien voglia di scrivere di più  ;D
Il tutto in maniera stabile senza crash.
Grazie per aver fatto questo
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 11 Agosto 2010, 13:38:28
GridBox:

5.000 righe di codice
25 Classi
1 Componente

e non e' ancora finito! Pero' ne e' valsa la pena...  :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 11 Agosto 2010, 14:41:49
GridBox:

5.000 righe di codice
25 Classi
1 Componente

e non e' ancora finito! Pero' ne e' valsa la pena...  :2birre:

Prima o poi dovrai fermarti e rivdere il codice...sicuramente c'è sempre qualcosa da migliorare... ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 11 Agosto 2010, 15:18:14
 :2birre: bravo  :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 11 Agosto 2010, 17:37:55
Allora...

Ho aggiunto una proprieta' GridBox.Columns[].Replace di tipo String[][] in modo da eseguire dei Replace$() al testo della cella.
Mi e' tornato utile per eliminare i ritorni a capo che mi ritrovo ogni tanto in qualche ragione sociale della tabella clienti del nostro gestionale.

Ho guardato un attimino anche il Combobox... prova anche tu per eventuali bug...(vedro' di far funzionare anche su v. G2)
Non so se hai notato, ma ho creato una 'regola' con la proprieta' Formatting della Columns[0] in modo da avere il numero di righe corrispondente come testo e allo stesso tempo poter inserire un'immagine se uno dei valori delle Columns[] 1 e 2  sono vuote. Se ti puo' servire... dovrebbe funzionare anche con la versione di Gambas2

Ha mi stavo per dimenticare che devi eliminare il database provariordino.db per far si che si aggiorni il database per provare la combobox
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 11 Agosto 2010, 22:59:10
Visto e provato tutto :)
-Provato il .replace, può tornare molto utile
-il combobox mi sembra funzionare bene, ho anche visto che premendo la lettera filtra in automatico, e premendola 2 volte passa al valore sucessivo, es. "b" esce "bianco", premo ancora "b" esce "blu"
-Avevo notato proprio ieri il simbolo che usciva a sx :) . Certo che può essere utile, si mette subito in evidenza all'utente che ha fatto qualcosa di sbagliato! perfetto!

Se non ci perdi tanto tempo fai l'aggiornamento del combobox in G2, non si sa mai che a qualcuna possa servire :(, poi io direi che con G2 puoi chiudere :ok:

Quando presenterai il componente a Benoit? Ormai direi che ci siamo
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 23 Settembre 2010, 16:50:32
@Golia

 :danger: Work in progress...

vedi allegato ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 23 Settembre 2010, 17:24:58
Ciao Milio!
Sono contento rileggerti su questo 3d  ;)
Molto bene, immagino che le nuove implementazioni riguardino G3, e sono contento sia così.
Mi piace il totale sotto, e penso che vada bene in molti casi, ma non tutti, vedi l'immagine allegata.
Ieri sera mi ero proposto di andare avanti col wiki di questo componente, ma più di cambiare il titolo non ho fatto  :( la piccolina stà facendo i dentini e non dorme  :evil: sicchè tutti in piedi  :hard:)
Quando potrò (oltre al wiki :P) comincerò a rifarmi il progetto con G3 così ti testo il mio componente preferito ;D. L'ho già provato, ma volevo chiederti la procedura per installarlo come su G2 ( se è possibile)
Ciao  :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 23 Settembre 2010, 17:28:46
http://www.gambas-it.org/smf/index.php?topic=1373.30

guarda ultimi messaggi della pagina...

Ci sono passato anch'io con il piccolino, so cosa si prova  :(

ci sentiamo piu' tardi per installazione... ciao  ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 23 Settembre 2010, 18:30:44
Vi seguo ma non avevo visto gli ultimi post, stasera provo l'installer  ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 23 Settembre 2010, 21:43:55
Provato, una bomba!
Si può fare una libreria di componenti da qualche parte... ti superi ogni volta :)
Stavo per installare il componente gb.gridbox ma mi è venuto un dubbio. Se installo un componente: per aggiornarlo basta fare la stessa procedura, gli scrive sopra?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 23 Settembre 2010, 21:50:06
Si, riscrive sopra... l'unica cosa e' che se fai delle modifiche al componente devi, prima di usare il prog di installazione, ricompilare l'eseguibile gambas.
Devo ancora fare la parte per la 'disinstallazione' del componente...  :coder: non si sa mai...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 24 Settembre 2010, 23:06:13
Ciao Milio, stò provando a scrivere qualcosa nel wiki.
Per quanto riguarda GridBox di Gambas2 devo chiamarlo GridEdit o GridBox?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 24 Settembre 2010, 23:54:11
Secondo me dovresti fare la guida per la sola versione di Gambas3. Ormai il progetto sulla 2 l'ho abbandonato  :skull:...
Di conseguenza la chiameremo Gridbox.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Settembre 2010, 11:50:35
Sto usando la GridBox per un programmino qui in ufficio, e mi e' sorto questo problema:
devo fare una Query su database diversi... Uno e' su mysql e l'altro su postgres... il problema e' che c'e' dimezzo un Join tra le due tabelle interrogate.  :hard:
Allora, parlando con un mio amico in chat, mi ha suggerito di creare una tabella temporanea su postgres, inserirgli dentro i dati della query mysql e successivamente fare le join...

A questo punto mi si e' accesa la lampadina...  :coder: e se facessimo in modo che la GridBox possa fare join con tabelle su diversi db in automatico? non sarebbe una gran figata?
A me tornerebbe utilissimo... che dici?
Si potrebbe utilizzare un db Sqlite temporaneo per la creazione e join tra le tabelle interrogate su diversi db...

Puo' essere una buona idea, o sono io che vaneggio?  :poke:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 28 Settembre 2010, 12:10:25
Ho completato e testato (nel limite del mio utilizzo) i nuovi metodi della GridBox...

Ho creato la Proprietà GridBox.DataMining As Boolean la quale abilita il metodo di Data Mining ( http://it.wikipedia.org/wiki/Data_mining oppure Data warehouse http://it.wikipedia.org/wiki/Data_warehouse ma il nome DataMining suona meglio ;) )

Il metodo GridBox.LoadTmpData(TmpConnection As Connection, Query As String, TmpTableName As String) crea una tabella in un db sqlite temporaneo, e ci inserisce il risultato della Query passata.
Dopodiché si usa il solito metodo GridBox.LoadData(Query As String) per fare le Join tra tabelle temporanee che contengono i dati tra diversi db.

La Proprietà GridBox.DataMining esclude la Proprietà GridBox.Connection in quanto la Connessione assegnata alla GridBox viene generata all'interno dell'oggetto stesso.

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 28 Settembre 2010, 22:34:01
Citazione
Secondo me dovresti fare la guida per la sola versione di Gambas3. Ormai il progetto sulla 2 l'ho abbandonato  ...
Di conseguenza la chiameremo Gridbox
Ok, mi rivedo un l'esempio che mi avevi fatto :2birre:
Citazione
A questo punto mi si e' accesa la lampadina...   
Ormai è un dato di fatto, le tue lampadine vanno sempre accese e ci si fà anche un bel lampadario  ;)

Ho scaricato l'ultima versione,
Citazione
l'unica cosa e' che se fai delle modifiche al componente devi, prima di usare il prog di installazione, ricompilare l'eseguibile gambas.
Scusa ma come si fà a ricompilare l'eseguibile di gambas?
Ciao grazie :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 28 Settembre 2010, 23:39:56
Ho in mente tante di quelle cose... ti allego una bozza di progetto in G3....

Citazione
Scusa ma come si fà a ricompilare l'eseguibile di gambas?

Si scusa mi sono espresso male, volevo dire ricreare l'eseguibile del componente :-[
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 29 Settembre 2010, 16:35:31
Ho aggiunto la Proprietà GridBox.Columns[].Name
Serve a identificare nelle formule la colonna indipendentemente dalla sua posizione
Mi sono rotto le p...e di riscrivere formule solo perche' mi ero dimenticato di aggiungere una colonna :)

es.


Codice: gambas [Seleziona]
  With Me.GridBox1.Columns[5]
    .Name = "prz"
    .Format = "$,0.00"
    .Type = Grid.Type.Field
    .Field = "prezzo"
  End With

  With Me.GridBox1.Columns[6]
    .Type = Grid.Type.Formula
    .Format = "#,0"
    .Formula = "=C[prz] / 1.2"
  End With

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 29 Settembre 2010, 16:47:41
Ha, la proprietà non è indispensabile settarla perche' prende di default il numero di colonna.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 29 Settembre 2010, 17:35:12
Nuova release...

Ho reso superfluo il dichiarare Me.GridBox.Columns.Count = <numero colonne> per impostare il numero di colonne nella griglia.

al momento di richiamare la colonna con il metodo Me.GridBox.Columns[<numero colonna>] vengono automaticamente create ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 29 Settembre 2010, 23:32:51
..stai galoppando  ;D

Ho provato ha installare il componente gb.spreadsheet (immagino foglio elettronico..mi prudono già i polpastrelli :rotfl:). No riesco a caricarlo, penso perchè non ho più aggiornato Gambas3, ti farò sapere.

Citazione
GridBox.Columns[].Name
Stai semplificando quello che era già semplice, fantastico! Se guardiamo un pò al futuro quà si rischia di creare un'aplicazione userfriendly tipo msaccess.. :2birre:

Ho installato gb.gridbox che al contrario di gb.spreadsheet non ha avuto problemi.
Ti faccio sapere (anzi dovrò chiederti tante cose ;) ) che provo a rimettere insieme l'esempio.
Ciao Milio, grande! :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 30 Settembre 2010, 20:33:49
Ho dato un sniffatina a gb.spreadsheet  ;D
Adesso sei in concorrenza con Office  :ok:
Interessante, se penso (e sono sicuro che lo hai già pensato) che in qualche maniera collegherai le colonne a un db tramite comoda gui con possibilità di filtri query e funzioni..che bomba!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 30 Settembre 2010, 20:50:42
Diciamo che per adesso e' solo un'idea... volevo provare ad utilizzare una griglia fatta con una drawingarea per riuscire a disegnare i bordi alle celle, che è quello che manca alla griglia di gambas.... magari se facessimo una richiesta a benoit... mi eviterebbe notti insonni a  :coder: e  :hatecomputer:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 30 Settembre 2010, 23:37:58
Ho provato a sistemare il solito esempio con G3, penso che le modifiche di gridbox siano state tante..
Ti allego l'esempio mi dai una sistemata perchè non riesco a farlo andare..naturalmente quando hai tempo  :)
E se ti avanza tempo.. :-[ mi aggiungi qualche esempio delle ultime novità?
Ciao grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 30 Settembre 2010, 23:47:39
Il solo motivo per cui non ti funzionava l'esempio era perche' non avevi l'ultima versione corretta che io naturalmente mi sono dimenticato di allegare  :-[
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 30 Settembre 2010, 23:52:53
Ho aperto adesso il tuo esempio e volevo parlarti del metodo 'milio'

Sicuramente e' il modo più rapido di settare la griglia (l'avevo creato apposta ;) ), ma mi è capitato sovente di dover ripassarci sopra per modificare i numeri delle colonne, solo perche' volovo aggiungerne delle altre... quindi il mio consiglio e' di utilizzare il metodo tradizionale, in virtù anche delle nuove proprietà aggiunte...
se mi dai una mezz'oretta ti posto un esempio delle nuove funzioni...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 01 Ottobre 2010, 00:06:08
Concordo, anche se è proprio fico vedere un form attrezzato di tutto con solo 10 righe di codice  ;D
Grazie, fa pure con calma anche perchè adesso.. :sleepy:
Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 01 Ottobre 2010, 01:06:03
Avendo oggi testato la GridBox in 'sola lettura' ho dovuto modificare un po' di codice per il salvataggio dei record...
Adesso dovrebbe essere a posto..

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 02 Ottobre 2010, 00:06:48
Visto e stò sniffando provando il tutto  ;D

Ho provato a fare una colonna combobox..dove sbaglio?
Codice: gambas [Seleziona]

   With GridBox1.Columns[Col]
     .Hide = False
     .Type = Grid.Type.ComboBox
     .Box.ListCombo = .ReturnCollection("SELECT id, descrizione FROM colori ORDER BY descrizione;")
     .Field = "colore"
     .Text = "Colore"
     .Alignment = 3
     .w = 80
   End With


e per i comandi è forse cambiata la sintassi?
Codice: gambas [Seleziona]

Public Sub btnuovo_Click()
  Me.GridBox1.NewRecord()
End
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Ottobre 2010, 14:00:05
mmm non sembra ci siano errori... adesso accendo l'altro portatile e ti dico...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Ottobre 2010, 14:57:56
Allora....

dove hai scritto:

Codice: gambas [Seleziona]
   .Box.ListCombo = .ReturnCollection("SELECT id, descrizione FROM colori ORDER BY descrizione;")  


il metodo ReturnCollection() è di proprietà dell'oggetto GridBox.
Quindi va scritto:

Codice: gambas [Seleziona]
   .Box.ListCombo = GridBox1.ReturnCollection("SELECT id, descrizione FROM colori ORDER BY descrizione;")  


Sinceramente non mi ricordavo neanche di aver scritto quel metodo :)

Per quanto riguarda

Codice: gambas [Seleziona]
Public Sub btnuovo_Click()  
  Me.GridBox1.NewRecord()  
End  


controlla nelle proprietà del progetto che sia abilitato, nelle opzioni, 'i controlli del form sono "public"'

Il tutto comunque mi ha portato a vedere una serie di errori che per adesso ho tacconato con un bel Try... domani in ufficio devo scoprire la natura di questi errori che presumibilmente sono dati dalle funzioni di controlle delle formule e della formattazione condizionata...

Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Ottobre 2010, 14:58:56
opss.. ti allego anche i sorgenti funzionanti...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 03 Ottobre 2010, 16:44:48
Ciao Milio,
con i controlli public va tutto ok :ok:

ReturnCollection non va non sembra "esistere", ho qualche dubbio di non aggiornare bene il componente.
Mi puoi spiegare i passaggi che devo fare per aggiornarlo? Grazie per la pazienza :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Ottobre 2010, 16:50:47
hai letto il mio precedente post?

RturnCollection() fa parte dell'oggetto GridBox e non di GridBox.Columns

il codice che avevi postato era compreso in With GridBox.Columns[Col] ... ... End With quindi faceva riferimento alla colonna del gridbox e non alla gridbox ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 03 Ottobre 2010, 19:14:38
Non avevo letto bene :-[
Però non riesco a farlo andare neanche nella proprietà di Gridbox1..  :'(
scrivo così:
Codice: gambas [Seleziona]

    With GridBox1
    .Expand = True
    .Connection = $CCon
    .AutoDataType = True
    .FieldKey = ["iddettaglio"]
    .TableName = "dettagli"
    .LoadData("select * from dettagli ORDER BY x")
   
    .box.ListCombo = GridBox1.ReturnCollection("SELECT id, descrizione FROM colori ORDER BY descrizione;")
   
    .FieldReordering = "x" ' campo numerico di riordine = float o decimal   
    .UpdateReording = True ' false non riordina e mette es. 10.5 , true riordina il campo FieldReordering
    .AlwaysEditable = True ' sempre editabile
    .KeyActivity = True ' attiva funzione key
    .ReadOnly = False ' solo lettura
    .AutoNew = True '
    End With
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Ottobre 2010, 21:45:28
verifica anche che i campi id e descrizione esistano veramente nel db....
il sorgente che avevo scaricato erano scritti in un'altra maniera ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 03 Ottobre 2010, 23:06:47
Si esistono, ho cambiato il db non è lo stesso che avevi scaricato.
Ti riallego i sorgenti
Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Ottobre 2010, 23:18:06
Ho visto finalmente do sta' il problema :)

 .box.ListCombo e' dell'oggetto Columns e non di GridBox

ti ho allegato i sorgenti funzionanti, vedi le modifiche che ho fatto se ti sono chiare e fammi sapere ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 03 Ottobre 2010, 23:42:30
 :ok: Funziona
Faccio prove e poi ti faccio sapere..magari domani, adesso  :sleepy:
Ciao grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 04 Ottobre 2010, 16:45:10
Eccomi quà, alcune domande  ;D

Combobox:
Codice: gambas [Seleziona]
.Columns["colore"].box.ListCombo = GridBox1.ReturnCollection("SELECT id, descrizione FROM colori ORDER BY descrizione;")

nel caso si volesse solo inserire il testo e non l'ID (esempio solo descrizione) è possibile farlo? Ho provato cambiando il campo colore in varchar e scrivendo la query
Citazione
SELECT descrizione FROM colori ORDER BY descrizione;
ma non funziona.
Inoltre è possibile popolare la combo con dati non provenienti da database? tipo ("pippo","pluto","paperino").

Mi sono accorto che modificando i dati, la riga non si colora sempre di giallo, a volte solo la cella modificata diventa blu. Però funziona tutto bene.

Se fai prove nell'esempio che ci siamo scambiato, correggi la proprietà default della colonna Check perchè avevo sbagliato a scriverla:
Da così
Codice: gambas [Seleziona]
.DefaultValue = "1"

A così
Codice: gambas [Seleziona]
.DefaultValue = 1

 ;D
Ciao grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 04 Ottobre 2010, 21:03:13
Per quanto riguarda il colore prova a caricarti l'ultima versione (che ti allego adesso) probabile che abbia combinato qualche cosa nelle altre perche' a me funziona tutto bene... ;D
la proprietà GridBox.Columns[].box.ListCombo e' di tipo Collection, quindi vuole per forza una chiave e un valore, una chiave che andra' salvato nel db e un valore che serve come descrizione alle righe della combo.
quindi potresti fare anche cosi':
SELECT descrizione, descrizione FROM colori ORDER BY descrizione;
In questo caso chiave e valore sono uguali, a patto pero' che le chiavi siano tutte diverse.

Per immettere valori 'a manina' basta che la popoli come faresti per una semplice collection, e cioè:

GridBox.Columns[].box.ListCombo.Add(Valore,Chiave)

ciau
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Ottobre 2010, 00:11:59
 :ok: tutto ok  :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 11 Ottobre 2010, 19:19:58
Son finalmente riuscito a replicare l'errore riguardante il colore sulla modifica di una riga...
Speriamo che con la correzione non ne vengano fuori altre :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 11 Ottobre 2010, 23:07:24
Provato, funziona correttamente  :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 12 Ottobre 2010, 17:31:45
Sto lavorando per inserire anche il componente searchbox ( http://www.gambas-it.org/smf/index.php?topic=1362.0 ) che avevo fatto qualche settimana fa per fsurfing.
Il componente realizza delle ricerche all'interno di una collection e ritorna un output in stile combobox, dove poter scegliere successivamente la stringa ricercata.
Questo puo' essere utile, per esempio, in un gestionale per creare un ordine o una fattura e si hanno una patela di articoli tra cui scegliere...

L'oggetto searchbox, una volta trovato la stringa ricercata, ritorna una chiave che puo' essere, citando l'esempio appena fatto, il codice dell'articolo.
Gli daro' anche una proprietà dove indico su quale colonna dovra' essere inserita in automatico la chiave.

Se avete suggerimenti.... ;)

Alla prossima
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 12 Ottobre 2010, 23:18:22
Se ho capito bene lo fai andare in sintonia con gridbox, fantastico!
Secondo me oltre che passare la chiave, dovrebbe proprio copiare i campi interessati, tipo descrizione codice e prezzo copiarli proprio fisicamente in modo da poterli editare in gridbox poi. Appena ho tempo dò un'occhiata a searchbox  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 12 Ottobre 2010, 23:28:08
Per descrizione e codice basta gia di suo quello che ho gia' fatto... potrei implementare un qualcosa che si porti dietro altri dati legati alla chiave... si potrebbe essere una buona idea...  :ok:
ci aggiorniamo
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 14 Ottobre 2010, 12:42:14
Ho implementato l'oggetto search box con successo... l'unico problema riguarda i dati legati alla chiave, che risulta un po' troppo macchinosa la procedura per caricare i dati e individuare in quali campi andranno scritti, perciò ho deciso di lasciare gestire questo punto all'utente utilizzatore che, con l'ausilio di un Evento generato dal search box, gestirà lui come crede l'inserimento dei dati corrispondenti alla chiave trovata....

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 14 Ottobre 2010, 14:42:46
Ok, ci siamo...  8) Ho fatto anche un esempio di utilizzo del SearchBox

Ho anche corretto parecchi bug che ho riscontrato nell'inserimento di un nuovo record... speruma bin :)

Per scaricare i soprgenti, da terminale, digitare:
wget http://milio.appix.net/components/gb.gridbox-2.99.21.tar.gz
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 14 Ottobre 2010, 14:48:09
@ Golia

Se non ti fa niente vorrei iniziare a fare una guida per descrivere le varie proprietà e metodi del componente... ho visto che hai iniziato a fare un esempio di utilizzo della GridBox, ma forse, anzi servirà sicuramente una guida che spieghi che cosa fa ogni singola proprietà/metodo del componente... Persino io mi sto dimenticando che cosa si puo' fare con la GridBox :)
Aspetto tua autorizzazione ;)

Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 14 Ottobre 2010, 18:57:38
He.... va bene autorizzato :P

(Questo per chi legge)
In realtà avevo promesso che la facevo io :-[ ma è proprio dura...(figuriamoci milio a creare il componente..)
------

Niente in contrario, anzi :) anche perchè non riuscirei a fare meglio, non conosco (o non ho capito) tutte le proprietà.
Io ci penso al wiki per spiegare l'esempio base, e all'altra cosa che ti ho detto ( :ot: segreto di stato)  ;D
Allora grazie ancora milio  :ok:
 :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 15 Ottobre 2010, 22:59:31
Ho provato l'esempio con SearchBox.
E' ancora meglio di come me l'avevo immaginato  :o
Non ho parole, bravo Milio
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 29 Ottobre 2010, 22:40:12
In questa versione ho corretto un errore venuto a crearsi con le ultime modifiche, riguardante il salvataggio dei dati su db MySql.
Posto qui i sorgenti in quanto il mio spazio webdav non e' raggiungibile :(


Edit:
webdav ok


Per scaricare i soprgenti, da terminale, digitare:
wget http://milio.appix.net/components/gb.gridbox-2.99.22.tar.gz
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 29 Ottobre 2010, 22:53:29
Ottimo!  :)

L'Update() dei records di DB MySQL è perfettamente funzionante!  :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 29 Ottobre 2010, 22:56:03
Ok bene... fammi sapere se trovi dell'altro bug :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 30 Ottobre 2010, 00:01:37
Provato con mysql, tutto ok :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 30 Ottobre 2010, 00:36:54
Trovato un piccolo Bug,

quando viene nascosta una colonna (.hide = true) ma contemporaneamente viene specificato il suo nome (.text = "nome_colonna"), questo viene inserito a metà tra le due colonne adiacenti a quella nascosta... Quindi l'intestazione rimane visibile (e può andare a sovrapporsi alle altre).

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 30 Ottobre 2010, 10:16:15
Ho fatto qualche prova, e non riesco a replicare il tuo errore perseo. magari prova a postare il tuo codice
A me però succede un'altra cosa, nell'esempio ho i pulsanti per salva, elimina etcc. e anche il pulsante esci che non centra niente con gridbox. Sembra che la griglia si "assorbe" tutto il focus
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 30 Ottobre 2010, 12:24:12
Allego lo screenshot... dove si legge il codice e si vede l'eseguibile, inerente il piccolo bug dell'intestazione.

Nell'esempio si vede nell'header la scritta "Azioni" della colonna nascosta "azioni", posizionata tra le due colonne adiacenti.
Ho anche nascosto la prima colonna, "id", dove ho disabilitato (a mò di commento) anche la proprietà .Text = "ID". Infatti su quella colonna nascosta l'intestazione non compare, ma solo perché non è specificata (altrimenti si vedrebbe nell'header, la "D", di "ID" mozzata a metà...).
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 30 Ottobre 2010, 15:10:57
Prova a togliere la proprietà .w nella colonna che non vuoi vedere , oppure impostarla a .w = 0
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 30 Ottobre 2010, 15:31:44
petta che guardando il tuo screenshot mi sembra di aver capito dov'è il problema. Tu usi ubuntu e quindi gnome.. il componente non è tanto testato per gnome. Io uso Kubuntu e infatti il tuo errore non lo replicavo.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 30 Ottobre 2010, 15:42:43
Quindi, Golia, potrebbe dipendere da Gnome...

Intanto ho osservato un altro piccolo bug...

Se imposto .w = 0 --> non cambia nulla, l'intestazione è sempre visibile. Ma la cosa strana è che se invece ometto direttamente la proprietà .w, ricompare l'intera colonna (anche se la proprietà .Hide è sempre settata su True).

Sinceramente per i miei scopi questi piccoli bugs non creano assolutamente disturbi, però spero siano indicazioni utili per il perfezionamento di questo meraviglioso componente.  :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 30 Ottobre 2010, 15:52:40
Si parlava di testarlo su gnome, ho anche installato in dual boot ubuntu per provare, però bisogna sentire Milio, è lui il guru  ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 30 Ottobre 2010, 17:37:56
Di nuovo "Null Object" su MySQL...

Se provo ad eliminare uno o più record, con il comando

Codice: gambas [Seleziona]
griglia.DeleteRecord(griglia.Row)


mi evidenzia le righe di rosa... ma poi quando lancio l'Update() mi restituisce l'errore "Null Object".
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 30 Ottobre 2010, 21:24:28
Sicuramente con le gtk ci sono molti problemi, anche gli stessi componenti interni si comportano in maniera diversa tra gtk e qt... la versione per gtk e' una di quelle cose che 'ho messo in programma', pero' prima volevo finire bene il componente con qt, anche perche' le mie applicazioni girano tutte sotto kde...

per l'errore su Mysql sicuramente e' lo stesso che ho riscontrato con l'update... stasera vedo di correggere anche quello...

@Golia

Vuoi dire che se metto una GridBox all'interno di un form, non lascia prendere il focus agli altri oggetti del medesimo form?  :o
Non avevo mai notato questo 'cannibalismo' di eventi :) verifico e ti faccio sapere...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 30 Ottobre 2010, 22:03:28
Corretto bug sulla cancellazione del record in mysql





Per scaricare i soprgenti, da terminale, digitare:
wget http://milio.appix.net/components/gb.gridbox-2.99.23.tar.gz
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 30 Ottobre 2010, 23:09:30
@ Golia

Credo di aver individuato il problema... adesso l'ho corretto, pero' se si toglie il focus da un oggetto della gridbox e da quest'ultimo si stava modificando un dato, il focus ritornerà a quell'oggetto se la griglia e' sempre editabile, oppure alla Gridbox.
Devo capire anche quest'ultimo errore, anche se non e' poi cosi' importante perche' si suppone che se l'utilizzatore sta modificando dei dati difficilmente toglie il focus dalla Gridbox...





Per scaricare i soprgenti, da terminale, digitare:
wget http://milio.appix.net/components/gb.gridbox-2.99.24.tar.gz
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 31 Ottobre 2010, 00:03:30
Ottimo Milio!

Adesso il DeleteRecord funziona anche con MySQL.  ;)

Intanto che completiate la release per Kde, io continuo a vigilare sugli strani comportamenti su Gnome...  ;)
Non so se dipende sempre da Gnome, ma vi posto questi. Ho notato che:

a) per editare una cella devo fare doppio-click su di essa... Però la riga e la cella non si evidenziano. Semplicemente il cursore lampeggia dentro la cella. Se nella cella c'è già del contenuto viene evidenziato tutto.

b) se mentre sto editando una cella faccio un solo click su un'altra mi si evidenzia quest'ultima... ma la cella editabile è sempre la prima.

c) se con il cursore non sono dentro nessuna cella ma ne evidenzio una, e clicco su "invio" apparentemente non succede nulla. Se successivamente clicco un carattere, il contenuto della cella scompare e viene visualizzato il carattere che ho digito, automaticamente in Maiuscolo... Il cursore però torna all'inizio del carattere, con il risultato che quando continuo a digitare il primo carattere (maiuscolo) è sempre l'ultimo. Se ad esempio mi posiziono su una cella e digito "perseo" --> mi scrive "P" maiuscola --> ed i successivi caratteri vengono inseriti prima della "P"... Alla fine dopo aver digitato "perseo" ottengo "erseoP".

d) quando mi sposto tra le celle con le frecce, se una colonna è .hide, concettualmente viene comunque evidenziata. In realtà non si vede perché è nascosta, però per saltare da una colonna visibile ad un'altra visibile che in mezzo hanno quella nascosta devo cliccare la freccia due volte... quindi suppongo che quella nascosta è come se prendesse comunque il focus...
Infatti ho provato a cliccare su "invio" quando il focus è su quella nascosta... e scrivendo si inseriscono comunque i valori (l'operazione non si vede, però ho fatto l'Update() del record ed ho visto che il valore era stato inserito nel database...)


Altra cosa importante... Molti di questi comportamenti anomali non si verificano quando apro il progetto gb.gridbox, ma quando uso il componente installato su gambas. Forse ho sbagliato qualcosa nel processo di istallazione?

[edit]
Nel mio progetto_di_prova ho attivato le gb.qt4 e gb.qt4.ext. Alcuni comportamenti anomali sono scomparsi (tipo quelli delle colonne nascoste)...
[fine edit]
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 31 Ottobre 2010, 08:46:38
tutto quello che hai riscontrato è perché gnome utilizza le toolkit Gtk... tutti i comportamenti della gridbox sono da rivedere con l'utilizzo di quest'ultime.... e mi sembra che tempo fa golia aveva riscontrato delle anomalie utilizzando le toolkiy Qt di kde su gnome  :rolleyes:

Le soluzioni sono due: o utilizzi una distro con kde (ma mi sembra un po' troppo solo per un componente :) ) oppure io mi rimbocco le maniche e inizio a lavorarci   :coder:

non ti posso promettere niente, ma vedo almeno di farci uno studio dietro ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 31 Ottobre 2010, 14:38:54
Innanzi tutto devo dire che le gtk non mi piacciono per niente :)

Detto questo ho iniziato un lavoro di 'conversione' del componente.

Per non andare a realizzare due componenti separati, la prima questione da risolvere e' 'sapere' se si sta usando gtk oppure qt... qualche idea in proposito?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 31 Ottobre 2010, 16:01:20
Cioè, se ho capito bene, richiedendo il gb.gridbox settaggi differenti a seconda che lo si utilizzi su QT o su GTK, il punto di partenza è di "far sapere" al componente su quali librerie grafiche viene richiamato. In questo modo si "auto-setta" per l'una o per l'altra, rimanendo sempre lo stesso componente.

In altre parole... quando carichiamo il componente GridBox nel progetto, questo dovrebbe riconoscere qual è la libreria grafica del progetto in questione (QT o GTK), e si adatta di conseguenza...

Io, chiaramente, non so darti una risposta. ;D

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 31 Ottobre 2010, 16:17:03
Trovato...  ;D

La classe Components ti restituisce tutti i componenti caricati dall'applicazione, quindi:

Codice: vb [Seleziona]
Private GtkComponent As Boolean

Public Sub _new()
Dim C As Component

  For Each C In Components
    If C.Name = "gb.gtk" Then GtkComponent = True
  Next

End


Cosi' se mi trova caricato il componente 'gb.gtk' setto la variabile GtkComponent a True, che mi servirà nelle varie parti di codice per settare la gridBox
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 31 Ottobre 2010, 16:47:53
Ecco una prima versione per le Gtk....

sperume bin  ;D






Per scaricare i soprgenti, da terminale, digitare:
wget http://milio.appix.net/components/gb.gridbox-2.99.26.tar.gz
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 31 Ottobre 2010, 17:53:34
Provato, hai "quasi" risolto in tempi da record!! :ok:
Ti dico le cose che ancora non sono al 100%:

1) Combobox: funziona si apre ma salva solo la prima stringa
2) Check: non si può selezionare, inoltre perde il focus SOLO in una nuova riga.
3) Nella colonna codice (del solito esempio) è impostata : .DefaultValue = "cod20" , la scritta cod20 non si vede finchè si è nella riga, poi riappare correttamente. ma mi sembra che questo probl l'avevo notato anche in kde.

Poi mi sembra ok, velocissimo!!  :2birre: :2birre: ti meriti un paio di birre  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 31 Ottobre 2010, 17:56:43
Ok bene... quei componenti non gli avevo ancora controllati :)

Per la birra siamo ancora in un periodo di 'spurgo' :angel:  ;)

Ci si sente stasera per nuovi rilasci....
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 31 Ottobre 2010, 18:00:16
ok, intanto allora faccio magazzino di birre  ;D  :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 31 Ottobre 2010, 18:01:51
Milio... non ho parole!

In pochissimo hai risolto tutti quei bugs che avevo evidenziato in precedenza. Così, il componente funziona benissimo anche su GTK!!! E' fantastico!  :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 31 Ottobre 2010, 18:35:20
@perseo
Hai visto che personaggio abbiamo ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 31 Ottobre 2010, 18:39:02
Sta troppo avanti!  :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 31 Ottobre 2010, 18:47:55
dai su ragazzi...  :-[ non prendetemi in giro  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Novembre 2010, 15:27:49
Che fatiche..  :rolleyes:

Ho messo in condizioni di lavorare anche l'oggetto Combo della GridBox per Gtk....
Ho avuto un problema che forse e' da segnalare nei bug di gtk:
nella classe Key la costante Key.BackTab ha un valore di 65289 e corrisponde, in qt, alla pressione del tasto Shift+Tab... in Gtk il Key.Code di questa combinazione di tasti mi da 65056  :-\





Per scaricare i soprgenti, da terminale, digitare:
wget http://milio.appix.net/components/gb.gridbox-2.99.27.tar.gz
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Novembre 2010, 18:10:04
 :yeah: dovrebbe essere tutto...

ci vogliono dei test adesso ;)






Per scaricare i soprgenti, da terminale, digitare:
wget http://milio.appix.net/components/gb.gridbox-2.99.28.tar.gz
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 02 Novembre 2010, 18:40:51
Primo test effettuato...

1) Rispetto alle QT, quando clicco su una cell non posso inserire il cursore con il click del mouse. Rimane evidenziata e l'unica cosa possibile è digitare qualcosa per entrarci (con conseguente cancellazione del testo che c'è dentro).
2) Se quando sono su una cella clicco il TAB, anziché avanzare di una cell, la gridbox perde il focus.

Man mano ti aggiorno...

PS: pian piano mi sto rendendo conto che le QT sono più funzionali. Quindi nel mio progetto sto usando quelle...
PPS: per fare le prove è sufficiente disattivare []gb.qt4 & e []gb.qt4.ext ed attivare []gb.gui? ...oppure []gb.gtk?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Novembre 2010, 18:41:24
@ Golia
Citazione
3) Nella colonna codice (del solito esempio) è impostata : .DefaultValue = "cod20" , la scritta cod20 non si vede finchè si è nella riga, poi riappare correttamente. ma mi sembra che questo probl l'avevo notato anche in kde.

Mi era sfuggita  :hatecomputer: adesso e'  :ok:




Per scaricare i soprgenti, da terminale, digitare:
wget http://milio.appix.net/components/gb.gridbox-2.99.29.tar.gz

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 02 Novembre 2010, 18:42:41
PPS: per fare le prove è sufficiente disattivare []gb.qt4 & e []gb.qt4.ext ed attivare []gb.gui? ...oppure []gb.gtk?

gb.gui fa in modo che gambas scelga da solo le librerie idonee.....devi abilitare gb.gtk...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 02 Novembre 2010, 18:48:37
Stesso comportamento abilitando gb.gtk.

Quando inserisco un nuovo record il cursore entra correttamente nella prima cell e lampeggia (in attesa di scrivere...) ma se esco dalla cell è impossibili rientrarci, in qualunque cell (a meno che non faccio digito qualcosa, e cancello l'originario testo).
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Novembre 2010, 18:54:12
Il problema risiede nel fatto che gli eventi LostFocus e GotFocus non funzionano correttamente con le Gtk. Devo ancora trovare un'escamotage per dribblare il problema :)

In alternativa puoi abilitare l'opzione GridBox.AlwaysEditable = True ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Novembre 2010, 18:55:24
Ha e puoi anche usare il tasto F2 per editare una cella
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 02 Novembre 2010, 20:05:33
Esattamente come dici tu...

Si può aggirare il problema sia con F2 che con la .AlwaysEditable impostata a TRUE.
A proposito, a che serve questa opzione? Te lo chiedo perché provando, nella mia gridbox ho impostato dei campi in ReadOnly = True, e rimangono tali anche con AlwaysEditable = True. Io pensavo servisse da comodo nelle situazioni in cui si vuole intervenire sui record della gridbox senza mezzemisure... una specie di permesso speciale...

Dove trovo la lista di tutti gli altri comandi da tastiera (o in quale parte del codice sorgente...)? E' possibile attivarli, o meno, in base alle proprie esigenze oppure bisogna intervenire sui Key_press?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Novembre 2010, 20:12:30
GridBox.Columns[].ReadOnly = True setta la colonna in sola lettura.
GridBox.ReadOnly = True setta tutta la griglia in sola lettura.

Con GridBox.AlwaysEditable = True ogni volta che una cella prende il focus parte in automatico l'editazione della stessa...
se fai caso con questa proprietà abilitata, se ti muovi con le frecce o con il tab nella griglia, il focus cadrà solo nelle celle ReadOnly = False, abilitando il controllo specifico per quel tipo di dato...

Questo ovviamente, e' tutto scritto nero su bianco nella guida del wiki.

Ps: quest'ultima affermazione è False  :rotfl:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Novembre 2010, 20:18:37
Citazione
Dove trovo la lista di tutti gli altri comandi da tastiera (o in quale parte del codice sorgente...)? E' possibile attivarli, o meno, in base alle proprie esigenze oppure bisogna intervenire sui Key_press?

GridBox.KeyGrid. ....

E' tutto personalizzabile...  8)

Perfino i bug sono personalizzati  :rotfl:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Novembre 2010, 20:20:02
Con GridBox1.KeyActivity = True (gia' di default attivato) abiliti l'intercettamento dei tasti veloci...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 02 Novembre 2010, 20:24:14
Ps: quest'ultima affermazione è False  :rotfl:

 ;D

hhhaaa una cosa che mi sono dimenticato di chiederti. E' possibile editare il formato delle celle con delle maschere di formato, tipo che cliccando sui campi della colonna data appare la maschera di formato "__/__/____", oppure nei campi delle colonne di orario appare la maschera di formato "__:__", ecc., che ti obbligano ad inserire il dato solo in quel formato?

Chiaramente la maschera di formato potrebbe essere componibile in base alle proprie esigenze.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Novembre 2010, 20:37:51
Questo e' un'altro componente che manca a gambas...

 :danger:   Work in progresssssssss..... :danger:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 02 Novembre 2010, 23:37:41
Stavo cercando di capire anche gli eventi della gridbox:

Finora ho capito che _PosChange è il predefinito, e si attiva quando ci si sposta tra le celle (con il mouse o da tastiera).
Se volessi cancellare una riga cliccando (con il mouse) su una determinata colonna che evento dovrei usare...
Forse non ho visto bene o non so cercarlo, ma ho guardato tra il codice sorgente e non ho trovato l'evento _Click.

 ???
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Novembre 2010, 23:48:32
in che senso vuoi cancellare una riga cliccando su di una colonna?

Edit:

Se vuoi possiamo aggiungere qualsiasi evento  ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 03 Novembre 2010, 00:14:55
L'idea me l'ha data il GestHotel di fsurfing...

Non usa una gridbox, ma mi pare una tableview... Quando si clicca sulla prima colonna (che è read-only) automaticamente gli associa l'eliminazione della riga.
Volevo simulare una cosa simile con GridBox, però non trovo l'evento associato, che dovrebbe essere un _click.

Per curiosità, come mai hai preferito non mettere l'evento _click nel componente GridBox?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Novembre 2010, 00:22:44
E' perche', per adesso, non ne ho mai avuto bisogno :)... con PosChange gestisco tutto... comunque se vuoi dammi 5 min e ti posto la modifica...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 03 Novembre 2010, 00:25:24
Eccomi quà anch'io.
Ho fatto delle prove su gnome e purcrioppo devo segnalarti ancora qualche cosetta :(
1) Nella colonna Check si perde il focus quando si passa con spostamento frecce (solo in una nuova riga)
2) Succede che non sò come, si aggiungono colonne a dx, e più righe nuove si aggiungono, più colonne si formano.
Il resto è ok, combobox funziona bene
 :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 03 Novembre 2010, 00:30:53
hahaahah ...giustamente.  ;D

Ho provato ad usare il PosChange, però si scatena anche da tastiera... e se per errore con le frecce finisci su una cella di quella colonna poi elimini il record...

Hai valutato anche l'ipotesi di un evento _MouseOver... ad esempio per cambiare il puntatore, oppure per far comparire un "MessageAllert"...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Novembre 2010, 01:00:04
2) Succede che non sò come, si aggiungono colonne a dx, e più righe nuove si aggiungono, più colonne si formano.

Corretta la seconda vaccata che ho fatto... per la prima ci devo lavorare un pochino :)




Per scaricare i soprgenti, da terminale, digitare:
wget http://milio.appix.net/components/gb.gridbox-2.99.30.tar.gz
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Novembre 2010, 01:09:46
Aggiunto evento Click()  ;D

Citazione
Hai valutato anche l'ipotesi di un evento _MouseOver... ad esempio per cambiare il puntatore, oppure per far comparire un "MessageAllert"...

Non ho capito   :-\
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 03 Novembre 2010, 01:23:23
L'evento _MouseOver (o rollover) si dovrebbe scatenare quando il puntatore del mouse passa sull'oggetto.

Metti che fosse possibile farlo scatenare quando passa solo su una colonna, o su una riga, o addirittura su una cella... potrebbe essere buono per far comparire dei messagi.info. Ad esempio, quando con il mouse passi sulla colonna che cliccata ti fa eliminare il record... potrebbe comparire un messaggio che ti ricorda questa cosa. Oppure... potrebbe far comparire un label con la spiegazione di quel campo. Metti che è un campo "prezzo" potrebbe ricordare la conversione in dollari $, oppure se un campo quantità, potrebbe ricordare il massimo numero disponibile, oppure quante ne sono rimaste in magazzino...

[Edit]
Scaricato e provato il nuovo evento _click()

E' come sempre perfetto!  :ok:

In pratica dando nell'evento _Click() un:

IF GridBox.column = numero_della_colonna then --> TRY GridBox.DeleteRecord(GridBox.Row)

...mi cancella ogni record, quando click sulla [numero_della_colonna] colonna!
[/Edit]
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 03 Novembre 2010, 01:27:33
L'evento _MouseOver (o rollover) si dovrebbe scatenare quando il puntatore del mouse passa sull'oggetto.

Metti che fosse possibile farlo scatenare quando passa solo su una colonna, o su una riga, o addirittura su una cella... potrebbe essere buono per far comparire dei messagi.info. Ad esempio, quando con il mouse passi sulla colonna che cliccata ti fa eliminare il record... potrebbe comparire un messaggio che ti ricorda questa cosa. Oppure... potrebbe far comparire un label con la spiegazione di quel campo. Metti che è un campo "prezzo" potrebbe ricordare la conversione in dollari $, oppure se un campo quantità, potrebbe ricordare il massimo numero disponibile, oppure quante ne sono rimaste in magazzino...




Una cosa simile esiste già e si chiama _MouseMove...viene generato quando il mouse "passa" su un oggetto con un tasto premuto....

Per quanto riguarda l'apparizione di informazioni, invece, esistono i tooltips...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 03 Novembre 2010, 01:52:32
Altra cosa che mi viene in mente...

Si può cambiare sia il colore_di_fondo che del testo, di una colonna, o di una riga, o di una cella?
Faccio degli esempi di utilizzo in un gestionale:
Metti che in un campo, numerico, il valore abbia superato un certo limite potrebbe essere utile evidenziarlo, colorandolo. Oppure, metti che il valore inserito non rispetti certi requisiti, o piuttosto che il codice di un prodotto è incompleto... Oppure vuoi dare più risalto a certe colonne...

Ho visto che c'è la proprietà GridBox.Color e che si riferisce al colore delle righe in generale, oppure alle righe selezionate, o alle celle selezionate...
Intendo una cosa di questo tipo:
per ogni cella della colonna "costo" IF Valore > 10 THEN colore_sfondo_cella = rosso, ELSEIF Valore < 4 THEN colore_sfondo_cella = verde, ELSE colore_sfondo_cella = default... END  ;D

Pensandoci bene, mi sembra una cosa abbastanza complessa, però io intanto ti do uno spunto di riflessione, se lo valuti interessante.  :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 03 Novembre 2010, 01:57:46
Citazione
Metti che in un campo, numerico, il valore abbia superato un certo limite potrebbe essere utile evidenziarlo, colorandolo
Questo è già stato fatto, .Formatting.
Però l'ho utilizzato con G2, non ho più provato con G3, devo rivedere l'esempio
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Novembre 2010, 02:02:10
esatto

Formatting e' una piccola Formattazione condizionata come hai sui fogli di calcolo.... Ovviamente non c'e' ancora la guida... se hai problemi dimmi pure :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Novembre 2010, 02:12:00
Anzi faccio gia' che spiegarti come funziona

Innanzi tutto nella colonna dove vuoi fare n formattazioni condizionate dichiari:

Codice: vb [Seleziona]
GridBox.Columns[Colonna].Formatting.Count = n


Poi setti le varie formattazioni in questo modo:

Codice: vb [Seleziona]
With GridBox.Columns[Colonna].Formatting[0]
  .Comparison = "=C[Colonna] > 0"
  .Formatting.Alignement = Align.Center
  .Formatting.BackGround = Color.Yellow
  ....
End With

Ovviamente non devi settare tutte le proprietà, ma solo quelle che ti servono ;)

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 03 Novembre 2010, 03:09:03
Capito...

Codice: vb.net [Seleziona]

 griglia.Columns[5].Formatting.Count = 2 '--> vuol dire... crea 2 condizioni ([0] e [1]) per i campi della colonna[5]

 With griglia.Columns[5]
   .Hide = False
   .ReadOnly = True
   .Type = Grid.Type.Field 
   .Field = "palline" 
   .Text = "palline" 
   .Name = "palline"
   .Formatting[0].Comparison = "=c[5]>4 and c[5]<9" '--> condizione[0] = "uguale a: valori della colonna[5] compreso tra 4 e 9"
   .Formatting[0].Formatting.background = Color.Red '--> colora di rosso tutti i valori tra 4 e 9, cioè se è verificata la condizione[0]
   .Formatting[1].Comparison = "=c[5]>11" '--> condizione[1] = "tutti i valori della colonna[5] maggiori di 11"
   .Formatting[1].Formatting.Font = Font["bold, 14"] '--> cambia il font in bold, da 14... se è verificata la condizione[1]
   .Formatting[1].Formatting.Foreground = Color.Blue '--> colora di blue tutti i valori maggiori di 11, cioè se è verificata la condizione[1]
 End With


Ho capito che una o più colonne della GridBox possono anche essere virtuali, ossia inventate da una formula!
Ad esempio, potrei creare una colonna in più (che non fa parte del record) per fare dei calcoli da visualizzare, tipo gli sconti. In questo modo potrei ad esempio decidere se il prezzo calcolato in base allo sconto è superiore ad una certa cifra ed evidenziarlo... Oppure posso evidenziare, come dicevo prima, i campi di una colonna che superino un certo range.

 :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Novembre 2010, 08:22:11
Ha cosa importante: se vuoi puoi dare un nome alla colonna: GridBox.Columns[n].Name = "pippo"

dopodiche' puoi richiamare la colonna con GridBox.Columns["pippo"] e anche nelle formule "=C[pippo] > 0"

Questo l'ho fatto perche' se devi aggiungere una colonna alla griglia non devi riguardarti anche tutte le formule... ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: perseo - 05 Novembre 2010, 11:47:53
Ciao grande mago,

sono qui a riportarti altri due piccoli comportamenti anomali (su Gnome, sia con gb.qt4 che con gb.gtk, con DB MySQL). Il primo è fastidioso, il secondo meno.

bug_1a) Riguarda le colonne con valori DATE. Se con il mouse entri in un campo, lo evidenzi, e tenendo premuto scorri lungo una colonna di campi DATE, le celle dei campi DATE, senza che subiscono modifiche, si colorano in giallo post-it, come se fossero state modificate. Questo strano comportamento, poi è altalenante, ossia alcune le colora altre no. Sui campi TIMESTAMP (DATE & TIME) non lo fa!
bug_1b) Se assegno anche il formato ad esempio "yyyy-mmm-dd", la cella che prima non aveva orario lo riceve come 00:00:00.
Mi pare di capire che sia un problema di conflitto con i campi DATE del DB di MySQL... però la cosa strana è che le modifiche sono altalenanti... Quindi non so.

bug_2) Se entro in un campo della gridbox e poi mi sposto premendo sulle scrollbar del datagrid il campo rimane fermo e non si sposta insieme agli altri campi. Se invece lo spostamento lo faccio con la rotellina del mouse allora è ok (chiaramente qui è solo up e down).
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Novembre 2010, 22:41:54
Bug 1a e 1b effettivamente ci sono dei problemi... il fatto e' che anche gambas stesso non riconosce il formati Time... e quando imposti l'AutoDatatype si creano dei pasticci...
Devo integrare un componente che accetti solo valori in ore ed un'altro che si possa impostare sia data che ora assieme... me tocca lavora' :)

per il bug 2 mi vien quasi voglia di togliere l'edit quando si fa lo scroll... ho aggiustato il bug ma ne e' venuto fuori un altro... se ci fai caso la casella editabile, uscendo dal contorno superiore o quello di sinistra, va a coprire le intestazioni di colonne/righe... ho provato e  riprovato ma...  :hard:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: doublemm - 29 Novembre 2010, 00:12:37
non riesco ad installare gridbox in gambas3. ho provato con installa componenti gambas, mi dice installato con successo ma poi in gambas non lo trovo. Le directory impostate su installa componenti gambas di default sono giuste o bisogna cambiarle?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 01 Marzo 2011, 13:47:49
Carissimo Milio,

mi puoi dire qual'è l'ultima versione della GridBox, e se devo prenderla da qui o dai Downloads?

Dato che avevo messo giù CTable, poi ho ripensato che avevato lavorato su una libreria simile (mea culpa).
Forse possiamo, come suggerito da Golia, unire le forze...e unire le librerie...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 01 Marzo 2011, 22:47:56
Ciao... e' da un po' che non ci metto le mani sopra, comunque puoi scaricare l'ultima versione a questo indirizzo:

http://milio.appix.net/components/gb.gridbox-2.99.91.tar.gz
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 02 Marzo 2011, 10:35:50
Ok Milio,

grazie per il link, gli dò un'occhiata...

Come mai non ci mettete mani? E' terminato?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Marzo 2011, 21:05:22
Lavoro, figli, figli e lavoro... in procinto di fare casa e ancora lavoro...  :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 02 Marzo 2011, 21:49:33
E sei solo agli inizi...  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 08 Marzo 2011, 19:29:03
Ciao Milio,

ho scaricato l'ultima versione, ma c'è solo il file binario.

I sorgenti sono disponibili?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 08 Marzo 2011, 20:05:20
Ho provato adesso il link e c'e' tutto... sotto lo cartella .src trovi i sorgenti
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 08 Marzo 2011, 21:55:06
Perdonami, ma a volte dimentico di abilitare la visualizzazione dei file nascosti...  :(
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Giugno 2011, 09:48:09
Ultima release... corretto i movimenti degli oggetti in griglia... nelle ultime versioni di gambas mi hanno fatto impazzire :)

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 02 Giugno 2011, 12:21:36
Finalmente questo 3d attivo di nuovo!! :2birre: :2birre:
Provato milio, grande!!
Adesso mi rifaccio il gestionale con G3 GRIDBOX è troppo forte!! :2birre: :2birre:
Appena ho un pò di tempo metto un'esempio anch'io, provate gente, provate ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 04 Giugno 2011, 01:28:20
Sono andato avanti con gli esempi su campi formula e formattazione condizionata.
Ho creato una pagina dove vengono riassunti tutti i simboli del componente.

In GridBox ho aggiunto 3 nuove proprietà:

GridBox.CurrentCell As Cell
Gridbox.CurrentRow As _Row
GridBox.CurrentColumn As _Column

Richiamando, ad esempio, Me.GridBox.CurrentCell si evita di scrivere Me.GridBox[Me.GridBox.Row, Me.GridBox.Column] e via discorrendo...

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 04 Giugno 2011, 14:43:01
Fantastico! ho copiato le cartelle nascoste: Components GridBox ; ObjectExport ; VirtualClass nella cartella .scr del mio progetto, e gridbox è già parte integrante di esso!  :ok:
Ho fatto un form in 5 minuti...strabiliante :2birre:
Bellissima l'idea degli esempi che stai facendo ho già visto cose che non conoscevo!!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 04 Giugno 2011, 19:43:28
Nuova release con esempio per consultazione Tabelle

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 04 Giugno 2011, 23:41:48
Corretto un bug sull'esempio della visualizzazione record di una tabella

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Giugno 2011, 00:59:06
Aggiunto lettura del codice di configurazione GridBox direttamente negli esempi (un grazie a Golia :) )
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Giugno 2011, 03:45:49
Aggiunto proprietà GridBox.Columns[].EnableTotal e GridBox.Columns[].EnableAvg rispettivamente per abilitare totale e Media sulla colonna
Aggiunto anche relativo esempio.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 05 Giugno 2011, 16:04:36
 :ok: quello che aspettavo :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 06 Giugno 2011, 23:35:18
Due nuovi esempi redatti dal nostro semprepresentealprogetto Golia  :2birre:

Corretto bug su campo Check...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 08 Giugno 2011, 00:19:42
Allego questa breve guida per provare a fare un'esempio con gridbox.
Non aspettatevi tante cose, l'ho fatta un pò in fretta, speriamo di vederne una bella nuova presto  ;D

@Milio
Guarda la guida, dovrai allegare un pacchetto con solo i sorgenti gridbox ( e mi sembra anche le 2 immagini per il chek)...ormai l'ho già scritto  ;)

Ciao a tutti e buon GridBox  :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 09 Giugno 2011, 01:05:56
Ok Golia, secondo quanto mi hai richiesto ho fatto molto di piu' ;)

Ho creato, nel file di esempio, una sezione tools dove si trova una piccola applicazione per gestire, appunto, la copia dei sorgenti di GridBox nelle rispettive cartelle del progetto selezionato.
Ho fatto anche in modo che mi rimangano in un DataBase i path dei progetti per un comodo aggiornamento di future versioni di GridBox

ps:
dovrai mettere nella guida che nell'esempio c'e' gia' il modo di copiare 'quello che serve' :)

pps:

Speruma cal fonsiona ben, nhe :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 09 Giugno 2011, 01:06:56
Se poi metto anche l'allegato  :-\  :sleepy:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 09 Giugno 2011, 13:17:46
MMMitico  :ok:
Funziona bene!! dovresti però fare in modo da poter cancellare dalla lista i progetti che magari non interessano più, o come me che ho fatto prove e vorrei la mia lista bella pulita  ;D
un camion di  :2birre:

rimetto apposto la guida al più presto
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 09 Giugno 2011, 13:38:09
complimenti ad entrambi :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 09 Giugno 2011, 13:41:39
Funziona bene!! dovresti però fare in modo da poter cancellare dalla lista i progetti che magari non interessano più, o come me che ho fatto prove e vorrei la mia lista bella pulita 

A dire il vero la possibilità c'e'... pero' non si vede  ;D

Semplifico al piu' presto...

un camion di  :2birre:

Le aspetto con ansia  :D


complimenti ad entrambi :2birre: :2birre:

Merci :)

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 09 Giugno 2011, 14:11:42
Detto fatto!

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 10 Giugno 2011, 06:13:04
domande:

Installazione, la copiatura manuale delle cartelle è sempre possibile o l'ultima versione prevede solo l'installazione tramite il bottone tool? Ve lo chiedo perche' in un progetto sono stato costretto (fortuna avevo una copia) a segare tutto, mi dava errore in apertura.

Campo formula, il campo formula potrebbe essere un campo solo da vedere (quindi la formula opera anche in visualizzazione) oppure il campo deve essere previsto dalla tabella sqlite?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 10 Giugno 2011, 19:32:30
Che ti tipo di errore? Ti e' capitato con l'installazione automatica dei sorgenti o copiando le cartelle a manina?
Ti consiglio comunque di usare la procedura in automatico perche' ti salva tutto nella cartella .src/Gridbox e se ti da problemi puoi sempre cancellare quest'ultima


Per quanto riguarda la colonna Formula non è mai legata a un campo di database. Se guardi il secondo esempio (campo formula) ebbene quella griglia non e' legata a nessun tipo di database, ma sono solo valori inseriti al volo e a perdere
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 10 Giugno 2011, 21:30:55
il casino è successo xche' prima ho usato l'installer standalone, poi ho copiato a mano le cartelle, infine ho usato il tuo tool, pensa che casino:-)

ok x la formula
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 11 Giugno 2011, 01:42:16
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....
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 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
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 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
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 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

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 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?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 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
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 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!!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 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:

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 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.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 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
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 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
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 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.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 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:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 14 Giugno 2011, 17:20:04
@golia

Mancato salvataggio: sistemato smanettando sul codice
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 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.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 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
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 14 Giugno 2011, 23:28:37
Mo controllo anche questa :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 14 Giugno 2011, 23:46:54
Ok anche la formattazzione dovrebbe essere a posto... ovviamente l'ultima condizione, se vera, prende il sopravvento sulla altre...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 14 Giugno 2011, 23:54:24
Ok anche la formattazzione dovrebbe essere a posto... ovviamente l'ultima condizione, se vera, prende il sopravvento sulla altre...

formattazione ok come da allegato test

azz spero che non mi odierai alla fine!! se non mi odi te ne dico altre due sul campo Date (formato gg/mm/yyyy):

1) se inserisco una data sballata e premo invio il programma da errore e si blocca..se non si sono salvati i dati gli ultimi inserimenti vanno persi. Sperimentato durante una sessione di data entry in gridbox sulle date della tabella del peso.

2) sempre campo Date, inserisco una nuova data (formato giusto), premo invio, la modifica viene presa e il campo cambia colore. Se subito dopo premo la barra di scorrimento la cella ritorna editabile e devo premere di nuovo invio..
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 15 Giugno 2011, 00:02:38

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


.Box.ListCombo e' una Collection. In pratica devi passargli una chiave e un valore.
Il valore sarà quello che verrà visualizzato nella cella, mentre la chiave e' il valore della cella e quindi quello che verrà salvato nel campo del database.
Per popolare il .Box.ListCombo esiste una comoda funzione: GridBox.ReturnCollection(Query As String) As Collection

Es.
Supponiamo di avere una tabella Alimenti (IdAlimento, Descrizione) e una tabella dove verrà salvata la ricetta che vuole il campo IdAlimento:

Me.GridBox1.Columns[2].Box.ListCombo = Me.GridBox1.ReturnCollection("SELECT IdAlimento, Descrizione FROM Alimenti ORDER BY Descrizione;")

Il primo campo sarà sempre la chiave ed il secondo andrà a formare la lista nella combo.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 15 Giugno 2011, 00:04:58

formattazione ok come da allegato test

azz spero che non mi odierai alla fine!! se non mi odi te ne dico un'altra: campo Date, se inserisco una data sballata e premo invio il programma da errore e si blocca..se non si sono salvati i dati gli ultimi inserimenti vanno persi. Sperimentato durante una sessione di data entry in gridbox sulle date della tabella del peso.

Nessun problema, anzi, cosi' facendo mi aiuti a cercar bachi :)

Controllo sta cosa della data e ci aggiorniamo...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 15 Giugno 2011, 00:05:52

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


.Box.ListCombo e' una Collection. In pratica devi passargli una chiave e un valore.
Il valore sarà quello che verrà visualizzato nella cella, mentre la chiave e' il valore della cella e quindi quello che verrà salvato nel campo del database.
Per popolare il .Box.ListCombo esiste una comoda funzione: GridBox.ReturnCollection(Query As String) As Collection

Es.
Supponiamo di avere una tabella Alimenti (IdAlimento, Descrizione) e una tabella dove verrà salvata la ricetta che vuole il campo IdAlimento:

Me.GridBox1.Columns[2].Box.ListCombo = Me.GridBox1.ReturnCollection("SELECT IdAlimento, Descrizione FROM Alimenti ORDER BY Descrizione;")

Il primo campo sarà sempre la chiave ed il secondo andrà a formare la lista nella combo.

esempio:
select id,nome,peso from tbnomi...il combo visualizza il nome .... il valore del peso posso utilizzarlo in un'altra colonna?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 15 Giugno 2011, 00:09:50

formattazione ok come da allegato test

azz spero che non mi odierai alla fine!! se non mi odi te ne dico un'altra: campo Date, se inserisco una data sballata e premo invio il programma da errore e si blocca..se non si sono salvati i dati gli ultimi inserimenti vanno persi. Sperimentato durante una sessione di data entry in gridbox sulle date della tabella del peso.

Nessun problema, anzi, cosi' facendo mi aiuti a cercar bachi :)

Controllo sta cosa della data e ci aggiorniamo...


okkei...cmq devo farti i complimenti. Funziona alla grande ed è velocissimo. La tabella degli alimenti di 700 record se la pappa in un attimo..
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 15 Giugno 2011, 00:28:25
Okkkeei. :ok: Data sistemata... Adesso se si digita una data sbagliata mi ritorna un messaggio di errore... prossimamente mi studierò il sistema per far scegliere all'utente se visualizzare o meno il messaggio di errore.

okkei...cmq devo farti i complimenti. Funziona alla grande ed è velocissimo. La tabella degli alimenti di 700 record se la pappa in un attimo..

He he... già dalle prime versioni era velocissima nel visualizzare il risultato... il segreto sta nell'evento GridView_Data... quest'evento si scatena ogni volta che una cella viene visualizzata a video o richiamata tramite codice. In questo modo posso fare anche una query di 10.000 record, ma visualizzo solamente le righe che riescono a comparire a video.
In pratica il tempo di attesa dalla richiesta alla visualizzazione e' dato solamente alla velocità di caricamento del Result, e non del suo collocamento in griglia.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 15 Giugno 2011, 00:36:44
Andy solo una cosa... se devi segnalarmi dei nuovi bachi, dovresti postarmi un nuovo messaggio e non editarne uno vecchio, altrimenti esco pazzo  :rolleyes:

You understand me?  ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 15 Giugno 2011, 06:27:45
@milio

recepito excuseme, se vuoi posso creare un post e inserire tutte le cose che trovo sempre la' in modo da razionalizzare il tutto

es.

<gridbox sezione>,<data test> <test effettuato>, <riscontro>, <stato sistemazione>
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 15 Giugno 2011, 11:56:49
Bha per me possiamo anche continuare qua in questo post... l'importante e' non dover riandare a rileggere i vecchi post...  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 15 Giugno 2011, 15:54:00
Bha per me possiamo anche continuare qua in questo post... l'importante e' non dover riandare a rileggere i vecchi post...  ;D

riassumo qua è la cosa miglioreeee :P...    (forse oggi mi compro l'acer iconia..)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 15 Giugno 2011, 16:09:40
Chissà se anche su android gira gambas...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 15 Giugno 2011, 16:53:12
Chissà se anche su android gira gambas...

non so se lo compro, 32 giga di capacità disco mi sembrano pochi e non ha 3g, pero' mi attira molto, ci monterei natty, su youtube ho visto vari video e va che è una meraviglia, pensa a gambas touschscreen...il venditore di trony non ha fatto bene il suo lavoro questa mattina, se era sveglio me lo aveva venduto ahahahaha

la mia banca mi farebbe prendere l'ipad 2 64gb in comodato con contratto di 'assistenza annuale' da 40 euro al mese e software 'esclusivo'....chiaramente non ho aderito:
1. mi sembrano troppi x l'utilizzo di software della banca e per l'assicurazione del pezzo, il comodato fa si che tra due anni mi ritrovo in mano un pezzo che devo dare indietro, vetusto
2. il s.o. apple, pur apprezzandolo dal punto di vista operativo, lo trovo lontano dal mondo open
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 16 Giugno 2011, 05:25:16
Combobox con doppia valenza

Supponiamo di utilizzare una colonna combo. Combo puo' essere popolato con una query e qua ci siamo.

Se la query fosse del tipo "select id,nome,anni order by nome asc;" avremmo anche un'ulteriore informazione , anni , da utilizzare. Utilizzarla in una colonna ulteriore è possibile?

Il valore anni potrebbe essere utilizzato ad esempio in una colonna formula. Il mio livello di conoscenza di gridbox non mi consente di capire se è possibile.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 16 Giugno 2011, 18:40:06
mmm sta cosa non e' implementata anche perche' l'inserimento automatico di valori, come ad esempio, il prezzo per un articolo, viene gestito direttamente con i vari eventi della griglia (quali Save o nel caso di una Searchbox SearchFound) lasciando l'onere di ricercare eventuali dati all'utilizzatore del componente... e' comunque una proposta interessante e si potrebbe vedere di implementarla... bisogna sapere solo bene come rappresentare il tutto in modo semplice e funzionale.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 17 Giugno 2011, 07:44:35
mmm sta cosa non e' implementata anche perche' l'inserimento automatico di valori, come ad esempio, il prezzo per un articolo, viene gestito direttamente con i vari eventi della griglia (quali Save o nel caso di una Searchbox SearchFound) lasciando l'onere di ricercare eventuali dati all'utilizzatore del componente... e' comunque una proposta interessante e si potrebbe vedere di implementarla... bisogna sapere solo bene come rappresentare il tutto in modo semplice e funzionale.

Searchfound:

Codice: [Seleziona]
Public Sub GridBox1_SearchFound(Row As Integer, Column As Integer, {Key} As String)
Dim Rec As Result
  Rec = $CCon.Exec("SELECT * FROM tbEsercizi WHERE SPORT = '" & Key & "';")
  Me.GridBox1[Row, "sport"].Value = Key
  Me.GridBox1[Row, "cal_std"].Value = Rec["CAL"]
  Me.GridBox1[Row, "cal_eff"].Value = ((Rec["CAL"] * Me.GridBox1[Row, "tempo"].Value) / 60) * Settings["daily/peso"]
End

questo codice funziona, ma con la stringa del campo SPORT, se volessi lavorare sull'ID della tabella la ricerca funziona?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 19 Giugno 2011, 17:24:16
altre considerazioni:

1. dopo aver eliminato un record premo salvo e do' refresh, mi ritrovo con qialche colonna  vuota sulla destra
2. come faccio a richiamare l'evento di ricalcolo della routine GridBox1_SearchFound senza cliccare materialmente sul campo relativo?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 19 Giugno 2011, 21:24:49
Per quanto riguarda le colonne vuote mi dovresti postare un programmino di esempio con la gridbox settata in modo che generi l'errore.

Per l'evento GridBox_SearchFound() viene richiamato solamente se nella searchbox legata alla griglia viene effettivamente trovato quello che si cerca :)
Hai provato con l'evento GridBox_Save() ? Esso viene scatenato ogni qualvolta si modifica una cella... potrebbe fare al caso tuo

Allego una nuova release di GridBox con l'aggiunta di un nuovo esempio 'rubrica' creato dal nostro Golia :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 19 Giugno 2011, 23:43:01
Ti faccio ancora i complimenti, myZone4 sta 'uscendo' con una velocità ed una qualità di codice possibile grazie al componente, oltre che naturalmente alle idee riprese e sviluppate di myZone3.


Errore delle colonne aggiunte: verifico se le lo fa ancora e poi te lo posto.

Controllero' l'evento che mi hai segnalato. Intanto ho il piacere di postarvi le nuove form fresche fresche, in pratica un inno a gridbox.

Campo date: pensi di mettere al posto della maschera di inserimento un controllino calendario stile quello che textbox adibito a gestione della data?

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 20 Giugno 2011, 00:29:08
@ Andy

wow... uso massiccio di GridBox he?  ;)


Nuova release: corretto bug su salvataggio dati con Db MySql
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 20 Giugno 2011, 00:33:43
@ Andy

wow... uso massiccio di GridBox he?  ;)


Nuova release: corretto bug su salvataggio dati con Db MySql

uso massiccio si, hai fatto un lavoro 'spettacolare' :-*

aggiorno..anche l'aggiornamento della griglia per le varie app è cambiata, premendo si aggiornano tutte! wao!

errore delle colonne: non me lo fa +, evidentemente era altro..

Una riflessione sui database backend:
nell'utilizzo della base dei dati di myzone3 mi ero basato sui valori indice per le ricerche e quant'altro, in myzone4 ho semplificato notevolmente, basandomi su campi stringa e su gridbox e la gestione degli eventi search. Non so se la soluzione di non basardi sugli id seriali sia la piu' ortodossa ma funziona.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 20 Giugno 2011, 11:04:30
c'è un limite al numero delle colonne? non riesco a fare una grid di nove colonne, non mi visualizza INFO2, questo il codice:

Codice: [Seleziona]
 'griglia nutrizione
  
  With GridBox2
    .Connection = $CCon
  End With
  
  With GridBox2.Columns[Col_b]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.Date
    .Field = "GMA"
    .Text = "GMA"
    .Name = "gma2"
    .DefaultValue = Date(Now)
    .Required = True
    .w = 100
    .Alignment = 3
  End With
  
   Inc Col_b
  With GridBox2.Columns[Col_b]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.float
    .Field = "GRAMMI"
    .Text = "GRAMMI"
    .Name = "grammi"
    .Required = True
    .Format = "0.00"
    .w = 100
    .Alignment = 3
  End With
 
 Inc Col_b
  With GridBox2.Columns[Col_b]
    .Hide = False
    .Type = Grid.Type.Field
    '.DataType = Grid.DataType.String
    .Field = "ALIMENTO"
    .Text = "ALIMENTO"
    .Name = "alimento"
    .EnabledSearch = True
    .Box.ListSearch = GridBox1.ReturnCollection("SELECT ALIMENTO,ALIMENTO FROM tbAlimenti ORDER BY ALIMENTO;")
    .Required = True
    .w = 250
  End With
 
   Inc Col_b
    With GridBox2.Columns[Col_b]
    .Hide = True
    .Type = Grid.Type.Field
    .Field = "IDPASTO"
    .DataType = Grid.DataType.Serial
    .Text = "id2"
    .IsFieldKey = True
'     .w = 10
  End With  
  
  Inc Col_b
  With GridBox2.Columns[Col_b]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.float
    .Field = "P"
    .Text = "PROT (mnbl)"
    .Name = "proteine"
    .Required = True
    .w = 100
    .Format = "0.00"
    .Alignment = 3
  End With

Inc Col_b
  With GridBox2.Columns[Col_b]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.float
    .Field = "G"
    .Text = "GRA (mnbl)"
    .Name = "grassi"
    .Required = True
    .w = 100
    .Format = "0.00"
    .Alignment = 3
  End With

Inc Col_b
  With GridBox2.Columns[Col_b]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.float
    .Field = "C"
    .Text = "CARB (mnbl)"
    .Name = "carboidrati"
    .Required = True
    .w = 100
    .Format = "0.00"
    .Alignment = 3
  End With
  
  Inc Col_b
  With GridBox2.Columns[Col_b]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.float
    .Field = "CALORIE"
    .Text = "CALORIE"
    .Name = "calorie"
    .Required = True
    .w = 100
    .Format = "0.00"
    .Alignment = 3
  End With
  
  Inc Col_b
  With GridBox2.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Field = "INFO"
    .Text = "INFO"
    .Name = "info2"
    .w = 100
    .Alignment = 1
  End With  
  
 Inc Col_b
  With GridBox2.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Alignment = Align.Center
    .DataType = Grid.DataType.Boolean
    .Field = "POST"
    .Text = "POST"
    .Box.ValueCheck = 1
    .Box.ValueUncheck = 0
    .DefaultValue = 0
    .w = 100
    .Name = "post2"
    .Alignment = 3
 End With

 With GridBox2
    .Expand = True
    .Color.RowAlternating = Color.RGB(230, 230, 230)
    .AutoDataType = True
    .GridOnly = True
    .TableName = "tbPasti"
    .LoadData("SELECT * FROM tbPasti ORDER BY GMA;")
    .ColorRowAlternating = True
    .AlwaysEditable = True ' sempre editabile
    .ReadOnly = False ' solo lettura
    .AutoNew = True '
  End With
  
End

'calcolo griglia nutrizione

'es -----wuestel di pollo---- 55 gr.----- 1 prot--- 3.5 g ---0.5 c---

Public Sub GridBox2_SearchFound(Row As Integer, Column As Integer, {Key} As String)
Dim Rec As Result
  Rec = $CCon.Exec("SELECT * FROM tbAlimenti WHERE ALIMENTO = '" & Key & "';")
  Me.GridBox2[Row, "alimento"].Value = Key
  Me.GridBox2[Row, "proteine"].Value = (Me.GridBox2[Row, "grammi"].Value * Rec["P"]) / Rec["GRAMMI"]
  Me.GridBox2[Row, "grassi"].Value = (Me.GridBox2[Row, "grammi"].Value * Rec["G"]) / Rec["GRAMMI"]
  Me.GridBox2[Row, "carboidrati"].Value = (Me.GridBox2[Row, "grammi"].Value * Rec["C"]) / Rec["GRAMMI"]
  Me.GridBox2[Row, "calorie"].Value = (Me.GridBox2[Row, "proteine"].Value * 30) + (Me.GridBox2[Row, "grassi"].Value * 30) + (Me.GridBox2[Row, "carboidrati"].Value * 40)
End

allego struttura tabella sqlite
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 20 Giugno 2011, 20:52:05
Ciao Andy
mi sembra che hai dichiarato col_b e poi hai messo col

Citazione
Inc Col_b
  With GridBox2.Columns[Col]
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 20 Giugno 2011, 20:58:05
Ciao Andy
mi sembra che hai dichiarato col_b e poi hai messo col

Citazione
Inc Col_b
  With GridBox2.Columns[Col]

se è questo ti offro lo champagne :-*
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 20 Giugno 2011, 20:59:30
E' vero non l'avevo notato  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 22 Giugno 2011, 09:57:39
Refresh dei dati della gridbox

Ho inserito la gridbox principale nella FMain del programma. Chiamata dall'evento _new. Se vado a modificare le tabelle anagrafiche del programma (forms secondarie) e ritorno alla FMain neanche con refresh il programma mi carica i dati aggiornati delle anagrafiche. Ho provato con .LoadData ma mi sembra di non aver risolto. Cosa suggerite?

Formato del campo data
Vi rimando a questo post http://www.gambas-it.org/smf/index.php?topic=1804.0
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 22 Giugno 2011, 14:53:37
Citazione
Refresh dei dati della gridbox
Prova prima di uscire dal form secondario a dargli in pasto questo
FMain.Gridbox1.LoadData(query_che_hai_usato_per_gridbox)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 22 Giugno 2011, 15:17:32
@ golia

provato: nessun risultato..il recordset non viene aggiornato

per la questione della data hai visto? hai qualche idea?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 22 Giugno 2011, 17:24:42
impossibile, deve andar per forza.
Prova a fare un pulsante nel form Fmain, una volta che con gli altri form hai modificato le tabelle (devi aver modificato e salvato il database) clicca sul pulsante con questo evento.
Citazione
me.Gridbox1.LoadData(query)
la query deve essere la stessa che hai caricato gridbox.
Ci scommetto un pacco di birre  ;D
appena ho tempo vedo per la data
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 22 Giugno 2011, 20:15:50
dimmi quale è la tua birra preferita ti mando una cassetta e ce la beviamo assieme..vengo su :2birre:

per quanto riguarda il problema non ti ho spiegato tutto...il reload della griglia e della tabella principale non da' problemi , quello che serve a me (dopo l'aggiornamento delle tabelle anagrafiche) è il reload dei dati che servono per i  listbox, dovrei aver risolto con un comando del tipo:

Codice: [Seleziona]
GridBox2.LoadData("Select * From tbPasti ORDER BY GMA;")
Gridbox2.Box.ListSearch = GridBox2.ReturnCollection("SELECT ALIMENTO,ALIMENTO FROM tbAlimenti ORDER BY ALIMENTO;")

funge :2birre: :2birre: :2birre: :2birre: :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 23 Giugno 2011, 11:24:17
Eccomi quà a fare le prime domande (chiedo scusa per eventuali banalità), sto cercando di capire le funzionalità di GridBox:
1) Richiamando i dati da una tabella MySql la GridBox non mi visualizza il primo record (la riga è vuota, vedi screenshot N.1), però se clicco sulla seconda colonna (Ragione Sociale) la riga si popola.
2) Si può forzare la visualizzazione dei dati di una colonna tutti in maiuscolo? (Per esempio la seconda colonna dello screenshot N.1)
3) Ho provato a settare la colonna in grassetto, ma il grassetto viene evidenziato solo se ci clicco sopra vedi screenshot N.2
4) Che differenza c'è tra le proprità Name e Text?
Questo il codice che sto utilizzando per queste prove:

Codice: gambas [Seleziona]
' Gambas class file
Public $myCon As New Connection

Public Sub _new()

  Me.Center()

End

Public Sub Form_Open()
  Dim cSQL As String

  With $myCon
    .Type = "mysql"
    .Host = "localhost"
    .Name = "my_db"
    .Login = "my_login"
    .Password = "my_password"
  End With

  cSQL = "SELECT cdcli, rascl, indcl, cap, comune, provincia"
  cSQL = cSQL & " FROM anacli, comuni"
  cSQL = cSQL & " WHERE anacli.id_com = comuni.id_com"

 With GridBox1
   .Header = 1
   .Expand = True
   .Connection = $myCon
   .AutoDataType = True
   .Columns.Count = 2
   .TableName = "anacli"
   .LoadData(cSQL)
   .ColorRowAlternating = False
 End With
 
  With GridBox1.Columns[0]
    .Hide = False
    .Type = Grid.Type.Field
    .IsFieldKey = True
    .Field = "cdcli"
    .DataType = Grid.DataType.Serial
    .Text = "Codice"
    .w = 80
    .Format = "000000"
  End With

  With GridBox1.Columns[1]
    .Hide = False
    .Type = Grid.Type.Field
    .Field = "rascl"
    .DataType = Grid.DataType.String
    .Text = "Ragione Sociale"
    .w = 200
    .Formatting.Count = 2
    .Formatting[1].Formatting.Font.Bold = True
  End With
End

Public Sub BtnClose_Click()

  Me.Close()

End

Grazie


Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 23 Giugno 2011, 13:29:47
@tornu

prima che milio risponda ti dico sulla base della mia esperienza

-per la visualizzazione puoi lavorare sul formato della colonna
-name è il nome della colonna da utilizzare come riferimento per le operazioni all'interno della gridbox
-text è il visualizzato come etichetta della colonna
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 23 Giugno 2011, 14:25:42
@Tornu
Mi sembra che il tuo codice derivi dal wiki o da una versione vecchia di gridbox,
Ti consiglio di scaricare l'ultima versione che trovi in questo 3d esattamente questa http://www.gambas-it.org/smf/index.php?action=dlattach;topic=1007.0;attach=1623 (http://www.gambas-it.org/smf/index.php?action=dlattach;topic=1007.0;attach=1623)
Apri e avvi il progetto gridbox nella maschera principale oltre al tool che trovi sotto, per copiare gridbox nel tuo progetto, in alto a dx ci sono degli esempi con il database.
Puoi copiare il codice direttamente da li, vedi immagine. La stesura del codice è più corretta e facile da capire, purtroppo/per fortuna Gridbox si è evoluto in fretta e con le guide e difficile strgli dietro.
La differenza principale dal tuo codice la vedi quì, tu hai dichiarato le colonne così
Citazione
With GridBox1.Columns[0] 
mentre adesso facciamo così:
Codice: gambas [Seleziona]
  Inc Col
    With GridBox1.Columns[Col]

molto più facile, anche se devi spostarle, inoltre ricorda che il nome delle colonne viene salvato con .name in modo da poter fare operazioni tra loro esempio colonna quantità * colonna prezzo.
Comunque negli esempi è un pò riassunto tutto quello che può fare gridbox
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 23 Giugno 2011, 21:14:14
Ciao Golia,
la situazione non è cambiata, i problemi esposti nel post precedente rimangono tutti.
La versione che uso è quella da te indicata, l'ultima 2.99.126.
Ho provato anche la funzione che mi hai indicato tu per indicizzare le colonne, ma la prima riga continua a non apparire.
La formattazione in grassetto non mi funziona, e non riesco a forzare i dati in maiuscolo.
Rimango in attesa di suggerimenti.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 23 Giugno 2011, 23:00:22
Ciao Tornu
Ho provato un pò a guardare il tuo codice, mi sembra di capire (se non sbaglio) che non ti è chiaro l'uso di .formatting
Guardati bene l'esempio "Campo Searchbox".
Da quello che ho capito vuoi settare una colonna in grassetto, per questo basta
Citazione
.Font = Font["Bold,+2"]
Non credo che sia stato implementato un'opzione per visualizzare tutto in maiuscolo, spero che milio mi smentisca  ;D
Ho provato a riscrivere il tuo codice, scusami ma col sistema mio mi capisco di più ;D
Prova a vedere se và
Codice: gambas [Seleziona]

 ' Gambas class file  
Public $myCon As New Connection  
  
Public Sub _new()  
  
Me.Center()  
  
End  
  
Public Sub Form_Open()  
Dim cSQL As String  
Dim Col As Integer
  
With $myCon  
.Type = "mysql"  
.Host = "localhost"  
.Name = "my_db"  
.Login = "my_login"  
.Password = "my_password"  
End With  
  
cSQL = "SELECT cdcli, rascl, indcl, cap, comune, provincia"  
cSQL = cSQL & " FROM anacli, comuni"  
cSQL = cSQL & " WHERE anacli.id_com = comuni.id_com"  

    With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Field = "cdcli"
    .DataType = Grid.DataType.Serial
    .Text = "Codice"
    .Name = "colonna1"    
    .IsFieldKey = True
    .w = 80
    .Format = "000000"    
  End With  

  Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Field = "descrizione"
    .Text = "Ragione Sociale"
    .Name = "colonna2"
    .Font = Font["Bold,+2"]    
    .w = 200
  End With

    

  With GridBox1
    .Expand = True
    .Color.RowAlternating = Color.RGB(230, 230, 230)
    .AutoDataType = True
    .GridOnly = True
    .TableName = "anacli"
    .LoadData(cSQL)
    .ColorRowAlternating = False
    .AlwaysEditable = True
    .ReadOnly = False
    .AutoNew = True
  End With

End  
  
Public Sub BtnClose_Click()  
  
Me.Close()  
  
End
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 23 Giugno 2011, 23:16:30
Prova anche questa
Codice: gambas [Seleziona]

Public $myCon As New Connection  
  
Public Sub _new()  
  
Me.Center()  
  
End  
  
Public Sub Form_Open()  
Dim cSQL As String  
Dim Col As Integer
  
With $myCon  
.Type = "mysql"  
.Host = "localhost"  
.Name = "my_db"  
.Login = "my_login"  
.Password = "my_password"  
End With  
  
cSQL = "SELECT cdcli, rascl, indcl, cap, comune, provincia"  
cSQL = cSQL & " FROM anacli, comuni"  
cSQL = cSQL & " WHERE anacli.id_com = comuni.id_com"  


    With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Field = "cdcli"
    .DataType = Grid.DataType.Serial
    .Text = "Codice"
    .Name = "colonna1"    
    .IsFieldKey = True
    .w = 80
    .Format = "000000"    
    
    .Formatting.Count = 1
    .Formatting[0].Comparison = "=C[colonna2] = GIALLO STEFANO"
    .Formatting[0].Formatting.Background = Color.Yellow      
  End With  

  Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Field = "descrizione"
    .Text = "Ragione Sociale"
    .Name = "colonna2"
    .Font = Font["Bold,+2"]    
    .w = 200  
  End With

    

  With GridBox1
    .Expand = True
    .Color.RowAlternating = Color.RGB(230, 230, 230)
    .AutoDataType = True
    .GridOnly = True
    .TableName = "anacli"
    .LoadData(cSQL)
    .ColorRowAlternating = False
    .AlwaysEditable = True
    .ReadOnly = False
    .AutoNew = True
  End With

End  
  
Public Sub BtnClose_Click()  
  
Me.Close()  
  
End  
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 23 Giugno 2011, 23:26:38
@golia

che mi sai dire sul campo data, la data mi viene salvata con la struttura dd/mm/yyyy nel database sqlite ma cosi' non riesco poi ad estrarre i dati.
Codice: [Seleziona]
 With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.Date
    .Field = "GMA"
    .Text = "GMA"
    .Name = "gma"
    .DefaultValue = Date(Now)
    .Required = True
    .w = 100
    .Alignment = 3
  End With

come posso utilizzare la formattazione?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 23 Giugno 2011, 23:31:26
Intendi che non riesci a caricarlo nella griglia?

edit:

Nell'esempio rubrica, anche se non è visualizzata c'è una colonna data, si chiama compleanno, puoi cambiare il valore .Hide = TRUE in .Hide = False
così vedi come funziona
Se vai a vedere il database, il campo "compleanno è di tipo DATE, e salva YYYY-MM-DD, ma nella griglia visualizza DD/MM/YYYY
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 23 Giugno 2011, 23:40:57
Grazie Golia, per gli esempi
formattazione in grassetto  :ok: era più semplice di quanto pensassi.
La conversione in maiuscolo non è urgente.

La cosa che non riesco a capire  :hatecomputer: e come mai la prima riga non viene visualizzata anche se popolata, lo dimostra il fatto che se clicco sulla colonna 'Ragione Sociale' per incanto appaiono tutti dati, da cosa può dipendere?

Altra domanda (abbi pazienza) si possono nascondere le righe della GridBox (per intenderci la proprietà Grid = False o True della GridView) lasciando la colorazione alternata delle righe?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 23 Giugno 2011, 23:55:06
Citazione
La cosa che non riesco a capire  hatecomputer e come mai la prima riga non viene visualizzata anche se popolata, lo dimostra il fatto che se clicco sulla colonna 'Ragione Sociale' per incanto appaiono tutti dati, da cosa può dipendere?
Questo è un pò strano... magari posta il progetto se non è troppo pesante, magari con un db sqlite.

Citazione
si possono nascondere le righe della GridBox
Manco questo non so dirti se milio ha fatto qualcosa  :)
Non so, chiederemo a lui
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 24 Giugno 2011, 00:11:07
Ti posto il progetto volentieri, e leggerissimo in quanto e un test per studiare GridBox, l'unica cosa che è basato su MySql il db che io uso normalmente, non ho mai usato sqlite, non credo che tu abbia problemi, ti posto anche il dump del db.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 24 Giugno 2011, 00:39:33
Fatto  :ok:
Il tuo codice è giusto, è solo disposto in maniera sbagliata. Vedi l'esempio
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 24 Giugno 2011, 00:52:12
Ho aggiunto un'altro formatting così dovrebbe esserti più chiaro
Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 24 Giugno 2011, 01:05:52
Intendi che non riesci a caricarlo nella griglia?

edit:

Nell'esempio rubrica, anche se non è visualizzata c'è una colonna data, si chiama compleanno, puoi cambiare il valore .Hide = TRUE in .Hide = False
così vedi come funziona
Se vai a vedere il database, il campo "compleanno è di tipo DATE, e salva YYYY-MM-DD, ma nella griglia visualizza DD/MM/YYYY

guarda qua: http://www.gambas-it.org/smf/index.php?topic=1804.msg20175#msg20175 (http://www.gambas-it.org/smf/index.php?topic=1804.msg20175#msg20175)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 24 Giugno 2011, 01:24:14
@tornu
altro esempio...ormai me la godo ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 24 Giugno 2011, 15:51:21
Nuova release che aggiusta un piccolo ma grande bug sul salvataggio in db di un campo date.

Scusate per l'inconveniente  :-[

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 24 Giugno 2011, 17:11:01
sei grande, provo subito :-* :2birre: :2birre: :2birre: :2birre: :2birre: :2birre: :2birre:

mi sembra che vada
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 24 Giugno 2011, 22:37:02
@Golia
Grande!!!!!!!  :2birre:
funziona a meraviglia e ti ringrazio per gli esempi che hai aggiunto. Quindi se ho capito bene (guardando il codice che mi hai postato) la parte di codice
Codice: gambas [Seleziona]

  With GridBox1
    .Color.RowAlternating = Color.RGB(230, 230, 230)
    .AutoDataType = True
    .GridOnly = True
    .TableName = "anacli"
    .LoadData(cSQL)
    .ColorRowAlternating = True
    .AlwaysEditable = True ' sempre editabile
    .ReadOnly = True ' solo lettura
'     .AutoNew = True '
  End With

va messa sempre alla fine del codice che interessa le singole colonne.

Avati a tutta  :2birre: :2birre: con nuovi test.

Per installare la nuova versione che milio a postato devo disinstallare la precedente?

@milio
quando hai un attimo mi fai sapere se la griglia si può nascondere lasciando le righe colorate alternativamente, mi sembra più
professionale (mio parere personale).
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 24 Giugno 2011, 23:00:42
Cosa intendi per 'nascondere' ?

Per installare la versione nuova non c'e' bisogno di disinstallare la vecchia... lo fa gia' il tool di installazione :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 24 Giugno 2011, 23:42:05
Citazione
Cosa intendi per 'nascondere' ?
Non visualizzare le righe orrizzontali e traversali..i bordi delle celle.
Come per gridview la proprietà Grid true o false
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 25 Giugno 2011, 00:03:17
Ok se e' solo questo eccola qua una nuova release con la proprietà Grid
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 25 Giugno 2011, 11:03:24
Più veloce della luce... :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 25 Giugno 2011, 11:08:08
@Tornu
Citazione
Quindi se ho capito bene (guardando il codice che mi hai postato) la parte di codice..
Importante che però questo
Codice: gambas [Seleziona]

  With GridBox1
    .Connection = $CCon
  End With

venga prima delle colonne

Vedrai che velocità creare form con gridbox!!!
Ciao  :2birre:  :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 25 Giugno 2011, 20:23:39
Più veloce della luce... :2birre:
E chi sei ?...superman... ;D  Grande milio, grazie per l'implementazione.

@Golia
capito...

Comincio oggi a piccoli passi ad installare GridBox in "produzione", ci sentiamo sicuramente a breve.
Ciao
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 26 Giugno 2011, 09:13:53
quesito, ho il seguente codice in gridbox:
Codice: [Seleziona]
 With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.ComboBox
    .DataType = Grid.DataType.String
    .Field = "RICETTA"
    .Text = "RICETTA"
    .Name = "ricetta"
    .Box.ListCombo = GridBox1.ReturnCollection("Select COMBINAZIONE, COMBINAZIONE From tbRicette ORDER BY COMBINAZIONE;")
    .Required = True
    .w = 100
  End With

mi piacerebbe che , nel momento in cui premo il bottone 'Nuovo', il campo mi prendesse automaticamente il valore corrente di un combobox, provo con la proprietà .DefaultValue ma non va
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 26 Giugno 2011, 09:16:47
Corrente intendi l'ultimo visualizzato? Qundi puo' variare?


Se ho capito bene guardati il codice del form FTest5 all'evento GridBox1_Save() te l'ho modificato secondo quanto mi hai fatto capire  ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 26 Giugno 2011, 10:20:26
Grazie, ma non riesco a fare questa cosa (allego esempio).

Se seleziono dal combo il valore 'test2' , lo stesso valore mi dovrebbe comparire nella colonna 'ricetta' quando premo 'nuovo record'

Comunque come vedi sono ai dettagli, quasi tutto quello che mi serve sono riuscito ad implementarlo. Questo aspetto finale è importante in quanto il valore 'ricetta' della griglia lega le tabelle tbRicette e tbSRicette(analitico della ricetta). Se comparisse il valore di default potrei permettermi di mettere hide = true e visivamente sarebbe molto meglio.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 26 Giugno 2011, 12:29:55
Se cambi la routine del nuovo record con questa, nell'esempio, l'effetto che voglio si realizza, ma mentre prima potevo aggiungere tutte le righe che volevo e poi immettere i dati e salvare, ora posso aggiungere solo una riga alla volta:

Codice: [Seleziona]
Public Sub gbnew_Click()
  Me.GridBox1.NewRecord()
  GridBox1.Columns[0].DefaultValue = comboricetta.text
  Me.GridBox1.DeleteRecord(Me.GridBox1.Row)
  Me.GridBox1.Refresh()
  Me.GridBox1.NewRecord()
End

hai qualche consiglio?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 26 Giugno 2011, 18:21:23
Togli il primo Me.GridBox1.NewRecord() e il Me.GridBox1.Refresh()


Nuova release (sperimentale) che implementa un nuovo componente il MaskBox.
Non è il MaskBox di gambas3 ma un mio componente che avevo creato prima della sua uscita.

Per info su InputMaskBox rilascio anche sorgenti del componente
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 26 Giugno 2011, 21:00:13
COMBOBOX E COMANDO 'NUOVO RECORD'

Togli il primo Me.GridBox1.NewRecord() e il Me.GridBox1.Refresh()


Nuova release (sperimentale) che implementa un nuovo componente il MaskBox.
Non è il MaskBox di gambas3 ma un mio componente che avevo creato prima della sua uscita.

Per info su InputMaskBox rilascio anche sorgenti del componente

Se tolgo il primo Me.GridBox1.NewRecord() e il Me.GridBox1.Refresh() mi mangia una riga quando, dopo aver aggiunto un record, lo salvo.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 01 Luglio 2011, 10:21:05
@ milio missing-in-action!!!

riguardo l'ultima cosa che ho evidenziato, la tua soluzione non funziona, hai qualche suggerimento?


NUOVO MOCKUP con possibili aggiunte al progetto gridbox

Allego mockup con due colonne particolari:
-nelle celle è possibile inserire uno o piu' bottoni collegati ad eventi
-nelle celle è possibile inserire un certo grafico
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 01 Luglio 2011, 20:47:38
Capisco i Button ma il Grafico a che ti serve su ogni singolo record? Non vedo come possa tornar utile... il fondo ogni riga della gridbox e' legata ad un record... a meno che tu non abbia piu' campi con lo stesso tipo di dato che vanno a formare un grafico, ma alla fine che scopo avrebbe una tabella strutturata in quel modo?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 01 Luglio 2011, 21:22:54
Allora ho guardato perche' nell'evento Save, creando un nuovo record, non mi andava ad aggiornare il valore di default con l'ultimo valore impostato nel tipo colonna combo (e comunque di qualsiasi altro tipo di colonna).

Con questa release dovrebbe essere tutto a posto ;)


Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 01 Luglio 2011, 23:22:16
Capisco i Button ma il Grafico a che ti serve su ogni singolo record? Non vedo come possa tornar utile... il fondo ogni riga della gridbox e' legata ad un record... a meno che tu non abbia piu' campi con lo stesso tipo di dato che vanno a formare un grafico, ma alla fine che scopo avrebbe una tabella strutturata in quel modo?

Grafico: ho visto una griglia di questo tipo in un programma di trading di borsa, ogni titolo quatava su una riga, il grafico era la quotazione intraday, aggiornata in tempo reale.

L'utilizzo ci potrebbe essere un record riguardante un certo Nominativo...un grafico legato ad aspetti di quel nominativo.
Era solo per avere la tua opinione e per contribuire con qualche idea!!!

Bottone: anche il bottone sarebbe interessantissimo. Pensa solo all'ipotesi di richiamare form secondarie complesse che poi riportano valori a certe celle della griglia.

Prima o poi cerco di capire il codice del componente, ma ho limitazioni!! Dammi atto che sono un gran rompiscatole  :-*
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 01 Luglio 2011, 23:35:11
Allora ho guardato perche' nell'evento Save, creando un nuovo record, non mi andava ad aggiornare il valore di default con l'ultimo valore impostato nel tipo colonna combo (e comunque di qualsiasi altro tipo di colonna).

Con questa release dovrebbe essere tutto a posto ;)

no, mi funziona solo con questo:
Codice: [Seleziona]
Public Sub gbnew_Click()
  Me.GridBox1.NewRecord()
  GridBox1.Columns[0].DefaultValue = comboricetta.text
  Me.GridBox1.DeleteRecord(Me.GridBox1.Row)
  Me.GridBox1.Refresh()
  Me.GridBox1.NewRecord()
End

ad ogni modo funge
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 01 Luglio 2011, 23:41:45
mmmm.....

Se provi a fare in questo modo non funziona?

Codice: [Seleziona]
Public Sub gbnew_Click()
  GridBox1.Columns[0].DefaultValue = comboricetta.text
  Me.GridBox1.NewRecord()
End
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 02 Luglio 2011, 01:28:05
mmmm.....

Se provi a fare in questo modo non funziona?

Codice: [Seleziona]
Public Sub gbnew_Click()
  GridBox1.Columns[0].DefaultValue = comboricetta.text
  Me.GridBox1.NewRecord()
End

sara' xche' è tardi..so rinco... ora va, grazie :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Luglio 2011, 19:59:15
@Andy60


Grafico: ho visto una griglia di questo tipo in un programma di trading di borsa, ogni titolo quatava su una riga, il grafico era la quotazione intraday, aggiornata in tempo reale.

L'utilizzo ci potrebbe essere un record riguardante un certo Nominativo...un grafico legato ad aspetti di quel nominativo.
Era solo per avere la tua opinione e per contribuire con qualche idea!!!


Si e' vero, sono stato un po' acido... chiedo scusa...
Bisognerebbe pero' che a questo grafico vengano passati dei dati non con il LoadData() classico, ma con un'altra funzione a lui dedicato.

Un'idea potrebbe essere il creare una colonna query che accetti, come la colonna formula, una stringa con riferimento alle colonne.
Esempio:

GridBox.Columns["Grafico"].Query = "SELECT Peso FROM Allenamenti WHERE idPers = C[idPers];"

In questo modo possiamo sfruttare l'id preso da ogni singola riga e recuperarne i dati per la creazione dei grafici...

Per il Button pensavo ad una semplice picture legata alla cella. Al click si va a creare l'effetto di schiacciare di un bottone con l'inserimento di un'altra picture.
Questo mi evita di legare un button per ogni singola cella con suo relativo spostamento con lo scroll della griglia.



Che ne dici?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 04 Luglio 2011, 09:37:19
@milio

Le tue idee applicative sui miei suggerimenti
Per la cella contenente i grafici il lavoro deve essere fatto secondo me a due livelli, a livello di routine per la creazione di un semplice linechart (dove definire colore di riempimento, colore della linea e array dati) e a livello di gridbox (definire la colonna che è legata all'id relativo ai dati del grafico).

Es. colonna 'Contatto' con campo id e colonna 'Vendite' dove si trovano il campo importo (da plottare) e il campo idcontatto (legato all'altro id)

Per la cella contenente il bottone, sono d'accordo nel creare graficamente un bottone a doppio stato. L'evento del click sul bottone deve dare possibilità di relazionarsi ad una routine (es. apertura ddi una form modale). Se la form modale restituissce un valore , l'utente ddovrebbe avere poi la possibilità di inserire il valore restituito in una certa colonna della riga corrente.

Il lavoro su gridbox
Ti dico come la penso. Grazie al tuo prezioso lavoro, non penso di esagerare, g3 puo' veramente assurgere ad un ruolo importante. Non sono precluse applicazioni realmente professionali. Che fanno solo del bene al ns amato software. Dal mio canto, spero di poterti aiutare sia nella fase test che nello sviluppo e nelle idee, mi piacerebbe molto capire la logica dei componenti.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 04 Luglio 2011, 23:00:46
Il lavoro su gridbox
Ti dico come la penso. Grazie al tuo prezioso lavoro, non penso di esagerare, g3 puo' veramente assurgere ad un ruolo importante. Non sono precluse applicazioni realmente professionali. Che fanno solo del bene al ns amato software. Dal mio canto, spero di poterti aiutare sia nella fase test che nello sviluppo e nelle idee, mi piacerebbe molto capire la logica dei componenti.
:ok:   :ok:   :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 04 Luglio 2011, 23:09:09
@tornu

grazie x l'approvazione!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 04 Luglio 2011, 23:41:18
Nuova release: introduzione del campo button.

Il click genera un evento GridBox_ButtonClick che ritorna il numero di riga, colonna e il nome di quest'ultima.

@Andy60
Il lavoro su gridbox
Ti dico come la penso. Grazie al tuo prezioso lavoro, non penso di esagerare, g3 puo' veramente assurgere ad un ruolo importante. Non sono precluse applicazioni realmente professionali. Che fanno solo del bene al ns amato software. Dal mio canto, spero di poterti aiutare sia nella fase test che nello sviluppo e nelle idee, mi piacerebbe molto capire la logica dei componenti.
Troppo buono...  :-[

Ps.
La grafica del Button fa un po' cacare, ma... che dire... datemi tempo  :D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 04 Luglio 2011, 23:47:28
Ho scaricato e sto testando.
 
- Il bottone puo' avere un testo? Devo creare il testo al momento del disegno?
- Come si collega una routine al click del bottone?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 04 Luglio 2011, 23:58:29
E' che pensavo di renderlo piu' anonimo possibile, anche perche' se ci metti un testo, quest'ultimo si ripete su tutti i button della colonna...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 05 Luglio 2011, 00:01:53
E' che pensavo di renderlo piu' anonimo possibile, anche perche' se ci metti un testo, quest'ultimo si ripete su tutti i button della colonna...

Sono d'accordo, pero' per esempio un bottone solo con due puntini che invita al click potrebbe andare bene
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 07 Luglio 2011, 08:58:56
Scorrimento veloce gridbox: è possibile che si veda una colonna visualizzata al posto di un altra colonna? Durante lo scorrimento lento non succede.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 07 Luglio 2011, 13:42:50
Intendi lo scorrimento con la scroolbar orizzontale in modo da far scorrere le colonne?
Provato ma non mi succede niente di anomalo.

Puoi postarmi un esempio dove ti capita l'errore... puo' darsi che sia anche un problema di 'combinazioni' di tipo di colonne...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 07 Luglio 2011, 14:03:24
Intendi lo scorrimento con la scroolbar orizzontale in modo da far scorrere le colonne?
Provato ma non mi succede niente di anomalo.

Puoi postarmi un esempio dove ti capita l'errore... puo' darsi che sia anche un problema di 'combinazioni' di tipo di colonne...

è una 'sensazione visiva' che si ha con lo barra verticale di scorrimento. Poi ad un controllo lento non si verifica. La tabella test è composta da circa 7-8 colonne e circa 2000 records
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 08 Luglio 2011, 14:40:23
Errore di visualizzazione
Con dati del recordset 'filtrati (quindi numero inferiore) la sensazione visiva di dati nella colonna sbagliata non si ripete

Button

Si implementa con:

Codice: [Seleziona]
Inc Col
  With GridBox1.Columns[Col]
    .Type = Grid.Type.Button
    .Name = "Button"
    .Text = "test"
    .W = Me.GridBox1.Rows.H
  End With


Gestione eventi con:
Codice: [Seleziona]
Public Sub GridBox1_ButtonClick(Row As Integer, Column As Integer, ColumnName As String)

 
  ......
  'Me.Label1.Text = "Riga: " & Row
  'Me.Label2.Text = "Colonna: " & Column
  'Me.Label3.Text = "Nome: " & ColumnName
.......
  

End

Dopo aver inserito il nuovo codice (abilitati tutti i componenti image) compilo ma mi si blocca alla riga 54 della classe  _button.class :hard: :hard: :hard:

Codice: [Seleziona]
Private Function CreatePic(Row As Integer, Column As Integer, Optional Down As Boolean) As Picture
Dim Pic As Image

  If $GridBox.Row = -1 Then Return
  Pic = New Image($GridBox[Row, Column].W - 2, $GridBox[Row, Column].H - 2)
  Paint.Begin(Pic)  ===> si blocca qua

help me please
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 08 Luglio 2011, 15:02:45
Probabile un consumo eccessivo di memoria, dato l'elevato numero di oggetti gestiti dalla GridBox?

Che dimensioni hai di ram e cpu ? (solo per fare una valutazione generica sul problema e le cause...)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 08 Luglio 2011, 16:11:56
Probabile un consumo eccessivo di memoria, dato l'elevato numero di oggetti gestiti dalla GridBox?

Che dimensioni hai di ram e cpu ? (solo per fare una valutazione generica sul problema e le cause...)

Le caratteristiche del portatile le vedi nella mia 'firma', comunque bypasso il problema sia del problema 'visivo' che del bottone.

Per il primo ho creato un sofisticato filtro dei records, memorizzabile, per il secondo ho eliminato il bottone e richiamo una scheda utilizzando un metodo che in passato hai suggerito te, richiamato da un semplice evento click:

Codice: [Seleziona]
Dim FCO As FContatto
Dim ret As Integer
Dim $_Param As New Integer[]
$_Param.add(GridBox1.CurrentCell.Value)
FCO = New FContatto($_Param)
ret = FCO.ShowModal()
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 08 Luglio 2011, 16:18:45
@Andy

Ok ti si blocca nella classe _Button... ma che errore ti da?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 08 Luglio 2011, 17:36:33
@Andy

Ok ti si blocca nella classe _Button... ma che errore ti da?


non me lo sono segnato, ad ogni modo è come se non riconoscesse il comando, mi era venuto il dubbio di non aver messo qualche componente
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 13 Luglio 2011, 13:42:18
nuova segnalazione per Milio premetto che sto usando la versione senza implementazione del bottone nella grid (se non erro la 2.99.134). Ho i seguenti campi data:

Codice: [Seleziona]
With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.Date
    .Field = "Gma"
    .Text = "Start"
    .Name = "gma"
    .DefaultValue = Date(Now)
    .Required = True
    .w = 100
    .Alignment = 3
  End With
  
   Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.Date
    .Field = "Gmaclose"
    .Text = "End"
    .Name = "gmaclose"
    .w = 100
    .Alignment = 3
  End With

nel secondo campo (gmaclose), è ammesso una valore null, è un campo che chiude un record di to-do-list

Guarda se non metto nulla cosa compare, allego l'immagine. Non escludo miei errori nella formulazione del recordset di origine, ad ogni modo dai una guardata. Preciso anche che il valore di gmaclose lo inserisco nella cella con un controllo  DateBox1 ( DateBox1.value) che restituisce un valore date completo di ore minuti e secondi. Il comando di inserimento del valore del DateBox funziona. Ma se elimino il valore inserito e salvo mi compare quello che vedi nell'immagine. Nel campo è memorizzato il dato 20:25:32

Domanda sulle formule

Ho visto che hai messo in un esempio:

Codice: [Seleziona]
.formula = "=IIf(C[esenteiva]=0,(C[qta] * C[prezzo])* ((C[iva] / 100) + 1),(C[qta] * C[prezzo]))"

E' possibile far si che se clicco un checkbox una cella assuma il valore della data di oggi?
Ho provato:
 
Codice: [Seleziona]
.formula = "=IIf(C[campocheck]=-1,now())"

ma non va

ancora, la prima funziona, la seconda no..avrei bisogno di non inserire nulla nella cella se l'evento non si verifica
Codice: [Seleziona]
 'FUNGE
  Inc Col
  With GridBox1.Columns[Col]
   .Hide = False
    .Type = Grid.Type.Formula
    .DataType = Grid.DataType.String
    .Field = "Luogo"
    .Text = "Luogo"
    .Name = "luogo"
    .formula = "=IIf(C[chiuso]=0,'roma','brescia')"
    .w = 100
    .Alignment = 3
  End With
  
  Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Formula
    .DataType = Grid.DataType.Date
    .Field = "Luogo"
    .Text = "Luogo"
    .Name = "luogo"
    .formula = "=IIf(C[chiuso]=0,,date(now))"
    .w = 100
    .Alignment = 3
  End With
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 13 Luglio 2011, 23:17:48
Per la questione della data penso di aver messo a posto tutto quanto in questa release che posto.

.formula = "=IIf(C[campocheck]=-1,now())"

la sintassi per il comando IIF e' questa:

IIF(<espressione>,<se vero>,<se falso>)

Quindi dovrai sempre indicare i due valori di se vero o se falso

ancora, la prima funziona, la seconda no..avrei bisogno di non inserire nulla nella cella se l'evento non si verifica

.formula = "=IIf(C[chiuso]=0,'roma','brescia')"
.formula = "=IIf(C[chiuso]=0,,date(now))"


Nella seconda devi indicare il valore se vero:

.formula = "=IIf(C[chiuso]=0,null,date(now))"
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 14 Luglio 2011, 00:06:41
@milio

Codice: [Seleziona]
Inc col 
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Formula
    .DataType = Grid.DataType.Date
    .Field = "Gmaclose"
    .Text = "GMA2"
    .Name = "gma2"
    .Required = False
    .Formula = "=IIf(C[chiuso]=0,null,date(now))"
    .w = 100
    .Alignment = 3
  End With
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 14 Luglio 2011, 02:58:23
Nuova release con una novità: possibilità di legare degli oggetti (es TextBox) alle Colonne di GridBox in modo di avere una sorta di inserimento dati a 'Maschera' .

Le nuove proprietà sono:

GridBox.EnableObjectLinked
Abilita il controllo sugli oggetti esterni.

GridBox.Columns[].ObjectLinked
Qui viene passato l'oggetto

GridBox.Columns[].ObjectPropertyLinked
Qui viene definita la proprietà a cui deve essere passato il valore della cella (esempio per textBox sarà la proprietà Text)

Troverete all'interno del progetto l'esempio 'Rubrica' riadattato alle nuove modifiche


@Andy

Mi dici a che punto del codice viene fuori quell'errore?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 14 Luglio 2011, 09:02:07
Subito utilizzate le nuove proprietà!

1. errore che si verifica con il :

Codice: [Seleziona]
 .Formula = "=IIf(C[chiuso]=0,C[gma],Now())"

oppure con

Codice: [Seleziona]
.Formula ="IIf(C[chiuso]=0,null,date(now))"

non mi si blocca il programma, esce solo l'alert dell'errore.
2. colonna del tipo:

Codice: [Seleziona]
 Inc Col
   With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.ComboBox
    .Field = "Idcontatto"
    .Text = "CONTATTO"
    .DataType = Grid.DataType.Integer
    .Box.ListCombo = GridBox1.ReturnCollection("SELECT Idcontatto, Cognome || ' ' || Nome FROM Contatti ORDER BY Cognome,Nome;")
    .Name = "idcontatto"
    .Required = True
    .w = 215
  End With

non ho trovato un altro moddo di collegare due campi testo in quanto il codice campo1 & ' ' & campo2 non viene preso

3. ordinamento recordset collegato alla griglia: non mi prende l'ordinamento il seguente ordinamento multiplo:
Codice: [Seleziona]
With GridBox1
    .Expand = True
    .Color.RowAlternating = Color.RGB(230, 230, 230)
    .AutoDataType = True
    .GridOnly = True
    .TableName = "Tasks"
    .LoadData("SELECT Gma,Chiuso,Gmaclose,Id,Idcontatto,Idtask,Urgenza,Note,Richieste,Luogo FROM Tasks ORDER BY Gma,Idcontatto;")
    .ColorRowAlternating = True
    .AlwaysEditable = True
    .EnableObjectLinked = True
    .ReadOnly = False
    .AutoNew = True
  End With

questo si:
Codice: [Seleziona]
With GridBox1
    .Expand = True
    .Color.RowAlternating = Color.RGB(230, 230, 230)
    .AutoDataType = True
    .GridOnly = True
    .TableName = "Tasks"
    .LoadData("SELECT Gma,Chiuso,Gmaclose,Id,Idcontatto,Idtask,Urgenza,Note,Richieste,Luogo FROM Tasks ORDER BY Gma;")
    .ColorRowAlternating = True
    .AlwaysEditable = True
    .EnableObjectLinked = True
    .ReadOnly = False
    .AutoNew = True
  End With

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 14 Luglio 2011, 09:55:20
@Andy

1: New Release: Bug-Fix   ;)

2-3: Ordinamenti e concatenazione di campi e' tutto gestito da codice sql... come viene fuori il record la gridbox lo visualizza di conseguenza.

Per questo:
Codice: [Seleziona]
.Box.ListCombo = GridBox1.ReturnCollection("SELECT Idcontatto, Cognome || ' ' || Nome FROM Contatti ORDER BY Cognome,Nome;") 

prova cosi':
Codice: [Seleziona]
.Box.ListCombo = GridBox1.ReturnCollection("SELECT Idcontatto, (Cognome || ' ' || Nome) AS Nominativo FROM Contatti ORDER BY Cognome,Nome;") 

e nella GridBox setti una colonna con .Field = "Nominativo" in sola lettura


Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 14 Luglio 2011, 10:07:14
Troppo forte! Ci tengo assolutamente a collaborare/attivarmi x la stesura di un manuale utente, sto lavoro è troppo importante. :2birre: :-*

Ti faccio sapere gli sviluppi, come al solito. Buona giornata
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 14 Luglio 2011, 10:13:38
@Andy

1: New Release: Bug-Fix   ;)

2-3: Ordinamenti e concatenazione di campi e' tutto gestito da codice sql... come viene fuori il record la gridbox lo visualizza di conseguenza.

Per questo:
Codice: [Seleziona]
.Box.ListCombo = GridBox1.ReturnCollection("SELECT Idcontatto, Cognome || ' ' || Nome FROM Contatti ORDER BY Cognome,Nome;") 

prova cosi':
Codice: [Seleziona]
.Box.ListCombo = GridBox1.ReturnCollection("SELECT Idcontatto, (Cognome || ' ' || Nome) AS Nominativo FROM Contatti ORDER BY Cognome,Nome;") 

e nella GridBox setti una colonna con .Field = "Nominativo" in sola lettura

la questione del 'Nominativo non la capisco:

Codice: [Seleziona]
Inc Col
   With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.ComboBox
    .Field = "Idcontatto"
    .Text = "CONTATTO"
    .DataType = Grid.DataType.Integer
    .Box.ListCombo = GridBox1.ReturnCollection("SELECT Idcontatto, Cognome || ' ' || Nome FROM Contatti ORDER BY Cognome,Nome;")
    .Name = "idcontatto"
    .Required = True
    .w = 215
  End With

se questa è la colonna, devo lavorare dentro questa no? da come scrivi sembrerebbe che devo creare un'altra colonna
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 14 Luglio 2011, 10:40:24
Ops... non avevo capito che ci si riferiva la riempimento di una Lista

E pensare che ce l'ho avuto sotto il naso per tutta la lettura/scrittura del post...
Maledetto copia-incolla  :hatecomputer: :rotfl:


Sorry  :-[
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 14 Luglio 2011, 11:54:55
Grandissimo!!!!!!
Con questa cosa un'utente non programmatore può costruirsi un gestionale!!!
Abbiamo superato sicuramente Access
Grazie per tutto questo  :2birre: :2birre: :2birre: :2birre: :2birre: :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 14 Luglio 2011, 12:51:12
non bisogna lesinare i ringraziamenti a milio x lo stupendo lavoro, il minimo che si puo' fare è aiutarlo nella stesura dell'help

 :2birre: :2birre: :2birre: :2birre: :2birre: :2birre: :2birre: :-* :-* :-* :ok: :ok: :ok: :ok:

@milio

Alcune mie considerazioni:
1. è un componente incredibile, per la prima volta ho creato l'applicativo come volevo
2. in queste due settimane l'ho sfruttato a fondo e ho trovato poche cose da sistemare (secondo pero' il mio personale punto di vista):
- allineamento degli headers delle colonne: mi sembra che sia a sx soltanto
- problemino del null nella formula relativa alla colonna risolto, anche se nel campo compare, dopo il save il fastidioso #ERR, comunque sopportabile
- sort a due colonne mi sembra che il LoadData non lo preveda
- Buttons in griglia: graficamente li farei + piccoli e con maggiore accuratezza, volevo aiutarti ma li fai col codice
3. il componente potrebbe in futuro prevedere due diversi tipi di sets: un sets veloce, si da' una tabella e un db in pasto al componente e lui legge e crea la griglia in automatico, e poi un sets personalizzato dove è possibile lavorare di fino. Come quello di addesso. In pratica il primo già l'hai fatto, sta nell'esempio di gridbox dove carichi il db e la tabella.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 14 Luglio 2011, 13:37:38
Grandissimo!!!!!!
Con questa cosa un'utente non programmatore può costruirsi un gestionale!!!
Abbiamo superato sicuramente Access
Grazie per tutto questo  :2birre: :2birre: :2birre: :2birre: :2birre: :2birre: :2birre:


se qualcuno veramente forte creasse una routine grafica di dragging per replicare la finestra di creazione delle query di access, l'applicativo access potrebbe diventare una realtà, lo 'famo noi..' detto alla romana
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 14 Luglio 2011, 18:46:50
Ieri ho accontentato Golia e oggi penso di accontentare Andy  ;D

New Release:

GridBox.AlignementHeader
Allineamento del testo della testata di ogni colonna

GridBox.Columns[].AlignementHeader
Allineamento del testo della testata della singola colonna

Ovviamente da testare...  :ciao:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 15 Luglio 2011, 17:42:18
Stavo valutando la colonna tipo Button e così com'era strutturata, cioè che per ogni riga veniva fuori un bottone nella cella, non aveva senso.  :bad:

Allora ci ho aggiunto la possibilità di render visibile o no il bottone in base al risultato dell'interrogazione della proprietà Formatting della colonna.  :ok:
Nell'esempio allegato ho fatto in modo che se il nome del fornitore è Gino non appare il bottone in cella.

Spero che a qualcuno questa cosa serva  :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 16 Luglio 2011, 09:37:54
Sono a parigi, appena ho il pc tra le mani rispondo, buon we!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 17 Luglio 2011, 00:57:58
Nuova release:

Corretto bug su caricamento record vuoto.

Aggiunto esempio biblioteca redatto da Golia

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 18 Luglio 2011, 07:55:29
Ieri ho accontentato Golia e oggi penso di accontentare Andy  ;D

New Release:

GridBox.AlignementHeader
Allineamento del testo della testata di ogni colonna

Allineamento del testo della testata della singola colonna

Ovviamente da testare...  :ciao:

(1)grande modifica, controlla una cosa: se il campo contenente la proprietà è seguito/precede un campo con hide=true, GridBox.Columns[].AlignementHeader  potrebbe non essere effettuata, oppure potrebbe non essere effettuata dopo la settima/ottava colonna visualizzata. In speedCRM ho la seguente configurazione:

Codice: [Seleziona]
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.Date
    .Field = "Gma"
    .Text = "GMA"
    .Name = "gma"
    .DefaultValue = Now()
    .Required = True
    .AlignmentHeader = 3
    .w = 100
    .Alignment = 3
  End With
  
  Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Alignment = Align.Center
    .DataType = Grid.DataType.Boolean
    .Field = "Chiuso"
    .Text = "CHIUSO"
    .name = "chiuso"
    .Box.ValueCheck = 1
    .Box.ValueUncheck = 0
    .DefaultValue = 0
    .w = 65
    .Alignment = 3
   End With  
  
  Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Formula
    .DataType = Grid.DataType.Date
    .Field = "Gmaclose"
    .Text = "GMA2"
    .Name = "gma2"
    .Formula = "=IIf(C[chiuso]=0,null,Now())"
    .AlignmentHeader = 3
    .w = 100
    .Alignment = 3
  End With
  
  Inc Col
    With GridBox1.Columns[Col]
    .Hide = True
    .Type = Grid.Type.Field
    .Field = "Id"
    .DataType = Grid.DataType.Serial
    .Text = "id"
    .IsFieldKey = True
  End With  
  
   Inc Col
   With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.ComboBox
    .Field = "Idcontatto"
    .Text = "CONTATTO"
    .DataType = Grid.DataType.Integer
    .Box.ListCombo = GridBox1.ReturnCollection("SELECT Idcontatto, Cognome || ' ' || Nome FROM Contatti ORDER BY Cognome,Nome;")
    .Name = "idcontatto"
    .Required = True
    .AlignmentHeader = 3
    .w = 215
  End With
  
   Inc Col
   With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.ComboBox
    .Field = "Idtask"
    .Text = "TASK"
    .DataType = Grid.DataType.Integer
    .Box.ListCombo = GridBox1.ReturnCollection("SELECT Idtask, Task FROM Task ORDER BY Task;")
    .Name = "idtask"
    .AlignmentHeader = 3
    .w = 170
  End With
  
  Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.ComboBox
    .DataType = Grid.DataType.String
    .Field = "Urgenza"
    .Text = "URGENZA"
    .Name = "urgenza"
    .Formatting.Count = 3
    .Formatting[0].Comparison = "=C(urgenza)='ALTA'"
    .Formatting[0].Formatting.Background = Color.red
    .Formatting[0].Formatting.Foreground = Color.White
    .Formatting[0].Formatting.Font.Bold = True
    .Formatting[1].Comparison = "=C(urgenza)='MEDIA'"
    .Formatting[1].Formatting.Background = Color.Green
    .Formatting[1].Formatting.Foreground = Color.White
    .Formatting[1].Formatting.Font.Bold = True
    .Formatting[2].Comparison = "=C(urgenza)='BASSA'"
    .Formatting[2].Formatting.Background = Color.DarkGreen
    .Formatting[2].Formatting.Foreground = Color.White
    .Formatting[2].Formatting.Font.Bold = True
    .Box.ListCombo.Add("ALTA", "ALTA")
    .Box.ListCombo.Add("MEDIA", "MEDIA")
    .Box.ListCombo.Add("BASSA", "BASSA")
    .w = 100
    .Required = False
    .AlignmentHeader = 3
    .Alignment = 3
  End With
  
  Inc Col
  With GridBox1.Columns[Col]
    .Hide = True
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.String
    .ObjectLinked = Me.TextArea1
    .ObjectPropertyLinked = "Text"
    .Field = "Note"
    .Name = "note"
    '.w = 80
    '.Alignment = 1
  End With
  
  Inc Col
  With GridBox1.Columns[Col]
    .Hide = True
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.String
    .ObjectLinked = Me.TextArea2
    .ObjectPropertyLinked = "Text"
    .Field = "Richieste"
    .Name = "richieste"
    '.w = 80
    '.Alignment = 1
  End With
  
  With GridBox1
    .Expand = True
    .Color.RowAlternating = Color.RGB(230, 230, 230)
    .AutoDataType = True
    .GridOnly = True
    .TableName = "Tasks"
    .LoadData(Filtro)
    .ColorRowAlternating = True
    .AlwaysEditable = True
    .EnableObjectLinked = True
    .AlignmentHeader = True
    .ReadOnly = False
    .AutoNew = True
  End With
End

Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.String
    .Field = "Luogo"
    .Text = "LUOGO"
    .Name = "luogo"
    .DefaultValue = "Roma"
    .w = 120
    .AlignmentHeader = 3
    .Alignment = 1
  End With

(2) Se metto le colonne con hide true all'ultimo posto, le colonne vengono visualizzate lo stesso.
(3) .ObjectPropertyLinked = "Text", se collego un campo TextEdit (dove il testo è formattato con tag html), nel momento in cui salvo, il valore viene 'pulito' dai caratteri di formattazione.
(4) Vario un record e non salvo: dovrebbe uscire un message del tipo "Record corrente modificato ma non salvatto. " con due bottoni, 'Salvo', 'Abbandono la modifica'.
(5) Allineamento degli headers delle colonne, in speedCRM va in myZone no, ma penso che sia un mio errore, ti faccio sapere.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 18 Luglio 2011, 14:34:04
@Andy

1) Dovrei aver messo a posto tutto con questa release

2) Questo e' un difetto dell GridView, non posso farci niente... devi aver la cortezza di mettere sempre per ultima una colonna .Hide = True

3) Prova a passargli i dati nella proprietà "RichText" e non in "Text"

4) Detto... Fatto :) 2 nuove proprietà in GridBox:

      Property Read WaitingInSave As Boolean (se a True ci sono dei dati da salvare)
      Property MonitoringSave As Boolean (serve per attivare il controllo sui record da salvare e visualizza a video una Message.Warning)

5)  :-\ non so che di' :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 18 Luglio 2011, 19:22:18
Grande! Richtext cosi' come mi hai suggerito funziona! Sul resto (save monitorato) devo:

a) abilitare il controllo con (esempio):

Codice: [Seleziona]
gridbox1.MonitoringSave = True

b) come faccio a gestire lo stato, dove utilizzo il valore gridbox1.WaitinInSave?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 18 Luglio 2011, 20:06:45
Esempio sulla chiusura del form:

Public Sub Form_Close()

  If Me.GridBox1.WaitinInSave Then
    If Message.Warning("Ci sono dei dati non salvati: continuo con la chiusura del Form?","Si","No") = 2 Then Stop Event
  EndIf

End


Questa proprietà ti indicherà sempre se ci sono o meno dei dati in attesa di essere salvati.

Per quanto riguarda MonitoringSave attiva il controllo sulle funzioni interne della stessa GridBox (vedi LoadData()), che non sono gestibili con eventi esterni.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 18 Luglio 2011, 20:39:37
Esempio sulla chiusura del form:

Public Sub Form_Close()

  If Me.GridBox1.WaitinInSave Then
    If Message.Warning("Ci sono dei dati non salvati: continuo con la chiusura del Form?","Si","No") = 2 Then Stop Event
  EndIf

End


Questa proprietà ti indicherà sempre se ci sono o meno dei dati in attesa di essere salvati.

Per quanto riguarda MonitoringSave attiva il controllo sulle funzioni interne della stessa GridBox (vedi LoadData()), che non sono gestibili con eventi esterni.

denghiu :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 18 Luglio 2011, 22:55:55
con tutte queste novità devo rifarmi di nuovo il gestionale
userò gridbox in ogni form  :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 19 Luglio 2011, 01:40:19
con tutte queste novità devo rifarmi di nuovo il gestionale
userò gridbox in ogni form  :2birre: :2birre:

potentissimo, è un vero piacere usarlo :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 19 Luglio 2011, 17:08:07
@milio..hard debug :P :-* :2birre:

1) Le routine contenute in questa sub funzionano anche su campi combo?

Codice: [Seleziona]
GridBox1_SearchFound(Row As Integer, Column As Integer, {Key} As String)

te lo chiedo perche' con questo tipo di settaggio funziona:

Codice: [Seleziona]
 Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    '.DataType = Grid.DataType.String
    .Field = "ALIMENTO"
    .Text = "ALIMENTO"
    .Name = "alimento"
    .EnabledSearch = True
    .Box.ListSearch = GridBox1.ReturnCollection("SELECT ALIMENTO,ALIMENTO FROM tbAlimenti ORDER BY ALIMENTO;")
    .Required = True
    .w = 300
  End With


con questo no:

Codice: [Seleziona]
 Inc Col_b
   With GridBox2.Columns[Col_b]
    .Hide = False
    .Type = Grid.Type.ComboBox
    .Field = "RICETTA"
    .Text = "RICETTA"
    .DataType = Grid.DataType.String
    .EnabledSearch = True
    .Box.ListCombo = GridBox1.ReturnCollection("SELECT COMBINAZIONE,COMBINAZIONE FROM tbRicette ORDER BY COMBINAZIONE;")
    .Name = "ricetta"
    .Required = True
    .w = 270
  End With

Me ne sono accorto per caso, stavo chiudendo il programma e volevo realizzare un video di preview :rolleyes: :hard:

2) Ancora, mi sono accorto di questa cosa: se creo una grid con dei combobox e se do' ad un certo punto il comando:

Codice: [Seleziona]
Me.GridBox3.MoveTo(Me.GridBox3.Rows.Max, 0)

per posizionare il cursore sull'ultima riga, i combo non sono visualizzati, allego foto

3) E' possibile settare a livello di setup generale di una gridbox, l'altezza delle standard delle rows, potrebbe essere interessante. Ho cercato tra i metodi ma non ho trovato. E ancora, potrebbe essere interessante, a fronte di una certa altezza standard, dare un valore specifico ad una row.


4) Con i campi combo la formattazione condizionale funziona? Mi sembra nelle prove che ho fatto che il codice seguente non produca effetti se il campo è combo. La formattazione dovrebbe operare nella fase di visualizzazione ante clic del mouse sulla cella

Codice: [Seleziona]
.Formatting.Count = 3
.Formatting[0].Comparison = "=C(urgenza)='ALTA'"
.Formatting[0].Formatting.Background = Color.red
.Formatting[0].Formatting.Foreground = Color.White


Detto questo non diro' + nulla!!!! :-\ :P


ps. non escludo miei errori nel codice ..
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 19 Luglio 2011, 21:04:16
con tutte queste novità devo rifarmi di nuovo il gestionale
userò gridbox in ogni form  :2birre: :2birre:

potentissimo, è un vero piacere usarlo :2birre:
:ok: :ok: :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 20 Luglio 2011, 15:37:44
Innanzi tutto grazie a tutti per i complimenti  :-[

E soprattutto grazie perche' con i vostri test stiamo costruendo un qualcosa di veramente utile...

@Andy

1) l'abilitare l'EnableSearch con rispettivi eventi funziona solo con colonne di tipo Field. per il Combo devi far riferimento all'evento Save che viene richiamato ogni qual volta un oggetto della GridBox applica dei cambiamenti alle celle. Se vuoi possiamo implementare un evento anche per la Combo, ovviamente :)

2) Con la nuova release dovrebbe essere a posto

3) Si con GridBox.Rows.H

4) Strano a me funziona... Forse tu fai confusione con il testo della combo ed il valore della cella. Il formatting fa riferimento solo al valore della cella. (Guarda il form FTestCombo ;) )
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 20 Luglio 2011, 22:57:05
@milio

1) forse dovresti implementarlo, se si seleziona un combo si dovrebbe avere la possibilità di applicare le stesse istruzioni..
....
4) formattazione condizionale con combo, a posto!!

 :2birre: :2birre: :2birre:


ps. utile gridbox è dire poco..forse esagero ma dico che g3 con componenti di questo livello puo' creare qualunque app, anche un foglio di calcolo o un access
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 21 Luglio 2011, 11:26:09
Nuova release:

inserito evento GridBox_ComboClick()

Corretto Bug sull'allineamento del testo delle colonne
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 21 Luglio 2011, 16:34:01
Nuova release:

inserito evento GridBox_ComboClick()

Corretto Bug sull'allineamento del testo delle colonne


utilizzato mi sembra bene

Codice: [Seleziona]
Public Sub GridBox2_ComboClick()
  Dim Rec As Result
  Dim myricetta As String
  If GridBox2.CurrentCell.Column = 1 Then
   myricetta = GridBox2.CurrentCell.Value
  Endif
  Rec = $CCon.Exec("SELECT * FROM tbRicette WHERE COMBINAZIONE =&1;", myricetta)
  GridBox2[Me.GridBox2.Row, "proteine"].Value = Rec["P"]
  GridBox2[Me.GridBox2.Row, "grassi"].Value = Rec["G"]
  GridBox2[Me.GridBox2.Row, "carboidrati"].Value = Rec["C"]
  GridBox2[Me.GridBox2.Row, "calorie"].Value = Rec["CALORIE"]
End

Segnalazione etichette header: quando clicchi la colonna l'etichetta trasla vs destra e se la colonna è stretta a volte non si legge, xche' trasla perdendo la centratura?

Visualizzazione dati dopo aver cliccato 'nuovo record' e aver selezionato un valore dal combo, la riga si evidenzia di verde: a volte non si vedono i dati forniti dall'evento comboclick. Cosa che non succede sostituendo al combo un campo normale field e search abilitato.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 21 Luglio 2011, 20:36:48
@Andy...

Ti posso chiedere un favore?

Mi fai tu un form con GridBox settato con tutti i problemi che hai descritto? Stasera ho poco tempo...
Altrimenti devi aspettare domani...

ciau
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 21 Luglio 2011, 22:49:46
@Andy...

Ti posso chiedere un favore?

Mi fai tu un form con GridBox settato con tutti i problemi che hai descritto? Stasera ho poco tempo...
Altrimenti devi aspettare domani...

ciau
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 22 Luglio 2011, 00:04:00
Ciao andy
il tuo lavoro si potrebbe mettere tra gli esempi di gridbox, come esempio per ComboClick.
Sempre che ti faccia piacere e se Milio è daccordo  ;)
 :2birre: :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 22 Luglio 2011, 08:07:42
certo che mi fa piacere vedere il test tra gli esempi!!

 :2birre: :2birre:

e .... ancora ho una considerazione sui campi calcolati....so che alla fine del debugging o divento un grande amico di milio o mi odierà ma accetto il rischio!!

se si crea un campo di questo tipo:
Codice: [Seleziona]
 Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Alignment = Align.Center
    .DataType = Grid.DataType.Boolean
    .Field = "Chiuso"
    .Text = "CHIUSO"
    .name = "chiuso"
    .Box.ValueCheck = 1
    .Box.ValueUncheck = 0
    .DefaultValue = 0
    .w = 65
    .Alignment = 3
   End With  

e ancora un campo di questo tipo:
Codice: [Seleziona]
 Inc Col
  With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    .Type = Grid.Type.Formula
    .DataType = Grid.DataType.Date
    .Field = "Gmaclose"
    .Text = "GMA2"
    .Name = "gma2"
    .Formula = "=IIf(C[chiuso]=0,null,Now())"
    .AlignmentHeader = 3
    .w = 100
    .Alignment = 3
  End With

noto le cose seguenti:
- il calcolo è effettuato bene nel senso che con il checkbox attivo, il campo calcolato prende la data odierna
- pero' forse serve anche altro: l'utente in questo caso ha il 'suggerimento della data odierna', ma dovrebbe anche poter variare la data e soprattutto ritrovare la data voluta quando riapre la grid, invece compare il segno della formula #ERR

quindi chiedo se possibile le segg.modifiche: campo formula ok, ma possibilità di variazione manuale e soprattutto salvataggio

se poi mi sono sbagliato e il salvataggio mancato è colpa mia, chiaritemi... :hard: :hard:


Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 22 Luglio 2011, 18:04:24
@Andy

Scusa il ritardo, ma e' stata una giornata incasinata...

Segnalazione etichette header:

Ho fatto delle prove e mi sono accorto che e' un problema di Font...
Prova anche tu a cambiare il font alla GridBox e dimmi se l'allineamento ti risulta corretto.

Visualizzazione dati dopo aver cliccato 'nuovo record' e aver selezionato un valore dal combo

Con nuova release dovrebbe, tocchiamoci gli zebedei :), essere tutto a posto (che fatica pero')


noto le cose seguenti:
- il calcolo è effettuato bene nel senso che con il checkbox attivo, il campo calcolato prende la data odierna
- pero' forse serve anche altro: l'utente in questo caso ha il 'suggerimento della data odierna', ma dovrebbe anche poter variare la data e soprattutto ritrovare la data voluta quando riapre la grid, invece compare il segno della formula #ERR

quindi chiedo se possibile le segg.modifiche: campo formula ok, ma possibilità di variazione manuale e soprattutto salvataggio

se poi mi sono sbagliato e il salvataggio mancato è colpa mia, chiaritemi... :hard: :hard:

In questo caso penso che sia sbagliato l'utilizzo di un campo Formula.
Io farei in questo modo:

Codice: [Seleziona]
Public Sub Gridbox1_Save(Row As Integer, Column As Integer)

  If Me.GridBox1.Columns[Column].Name = <TuaColonnaCheck> And Me.GridBox1[Row,Column].Value = <TuoValoreCheck> Then
    Me.GridBox[Row,<TuaColonnaData>].Value = Now()
  EndIf

End

In questo caso la <TuaColonnaData> e' di tipo Field e ci potrai scrivere il valore che vuoi
Ciao andy
il tuo lavoro si potrebbe mettere tra gli esempi di gridbox, come esempio per ComboClick.
Sempre che ti faccia piacere e se Milio è daccordo  ;)
 :2birre: :2birre: :2birre:

Certo che sono d'accordo... anche perche' il grosso del lavoro lo fate voi :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 23 Luglio 2011, 09:53:42
@milio

oggi è il mio compleanno, ho promesso di non toccare troppo il pc x cui sto uscendo, non prima di averti ringraziato x l'ennesima release


agevolami x cortesia con una risposta veloce, posso escludere la visualizzazione in griglia della colonna con i numeri di riga, o quantomeno definire la sua larghezza=0?

per le altre cose vi scrivo stasera...per il test da inserire come esempio in gridbox, il codice ve l'ho postato, chi modifica gridbox?


una considerazione sul checkbox, se non posso creare una formula efficente (se clicco mi deve dare la data di oggi, ma deve essere modificabile e salvabile..), mi conviene toglierlo proprio dalla base dei dati...in definitiva se il campo con la seconda data è riempito significa che la data esiste e il taska cui si riferisce il record  è chiuso...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 23 Luglio 2011, 09:55:45
Si basta fare cosi':

Me.GridBox.Header = Grid.Header.Horizzontal

Ciao e... Auguri!  :party:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 23 Luglio 2011, 10:03:54
Si basta fare cosi':

Me.GridBox.Header = Grid.Header.Horizzontal

Ciao e... Auguri!  :party:


grazie!!!! :2birre: :2birre: :2birre: :2birre: :2birre: :2birre: :ok: :ok: sono 51... :'( :P :rolleyes:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 23 Luglio 2011, 10:20:37
gridbox.comboclick è cambiato gli argomenti sono questi?

Codice: [Seleziona]
Public Sub GridBox1_ComboClick(Row As Integer, Column As Integer, {Key} As String)
 
 
End

thx!!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 23 Luglio 2011, 10:46:05
Auguroni andy!!!  :2birre: :2birre: :2birre: :2birre: :2birre: :2birre:
Citazione
chi modifica gridbox?
fa tutto il grande maestro  ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 23 Luglio 2011, 16:51:18
gridbox.comboclick è cambiato gli argomenti sono questi?

Codice: [Seleziona]
Public Sub GridBox1_ComboClick(Row As Integer, Column As Integer, {Key} As String)
 
 
End

thx!!

L'evento ConboClick:

Codice: [Seleziona]
GridBox1_ComboClick(Row As Integer, Column As Integer, ColumnName As String)

quello che tu hai postato mi sembra questo:

Codice: [Seleziona]
Public Sub GridBox1_SearchFound(Row As Integer, Column As Integer, Key As String)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 23 Luglio 2011, 18:23:10
gridbox.comboclick è cambiato gli argomenti sono questi?

Codice: [Seleziona]
Public Sub GridBox1_ComboClick(Row As Integer, Column As Integer, {Key} As String)
  
  
End

thx!!

L'evento ConboClick:

Codice: [Seleziona]
GridBox1_ComboClick(Row As Integer, Column As Integer, ColumnName As String)

quello che tu hai postato mi sembra questo:

Codice: [Seleziona]
Public Sub GridBox1_SearchFound(Row As Integer, Column As Integer, Key As String)
okkk...allego test con la nuova versione comboclick, se vuoi integrarla in gridbox
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 25 Luglio 2011, 21:02:31
Scusa la latitanza ma ho passato un weekend a dir poco devastante...  :nonono:
Non ho piu' l'età per certe cose  :'(

Stasera vedo di inserire l'esempio nel progetto...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 25 Luglio 2011, 21:27:30
Scusa la latitanza ma ho passato un weekend a dir poco devastante...  :nonono:
Non ho piu' l'età per certe cose  :'(

Stasera vedo di inserire l'esempio nel progetto...


okkei :2birre: :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 26 Luglio 2011, 23:58:56
Sto revisionando un mio progetto in Gambas3, e dopo aver fatto alcuni test su GridBox viste le sue potenziolità la stò utilizzando all'interno dello stesso con grandi soddisfazioni.
Ora mi trovo davanti a un problema che non sono riuscito a risolvere, (sicuramente una cavolata...penso).
Mi sono riletto tutto (quasi) dall'inizio  questa discussione per vedere se trovavo qualche indicazione, ma niente, anche se Golia all'inizi aveva avuto
un problema similare al mio ma non so come ha risolto visto che quella domanda non ha avuto seguito.
Praticamente in tutti gli esempi per collegare GridBox al db principalmente fatte riferimento a questo codice
Codice: gambas [Seleziona]

  With $myCon
    .Type = "mysql"
    .Host = "localhost"
    .Name = "test_db"
    .Login = "my_login"
    .Password = "my_password"
  End With

  With GridBox1
    .Connection = $myCon
  End With

che funziona benissimo, però mi costringe a ripeterlo su ogni form. Io nel mio progetto ho um modulo che mi gestisce la connessione che richiamo
in qualsiasi posizione del progetto, ma non riesco a utilizzarlo con GridBox.  :hard:
Mi serve un aiuto
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 27 Luglio 2011, 09:30:13
Sto revisionando un mio progetto in Gambas3, e dopo aver fatto alcuni test su GridBox viste le sue potenziolità la stò utilizzando all'interno dello stesso con grandi soddisfazioni.
Ora mi trovo davanti a un problema che non sono riuscito a risolvere, (sicuramente una cavolata...penso).
Mi sono riletto tutto (quasi) dall'inizio  questa discussione per vedere se trovavo qualche indicazione, ma niente, anche se Golia all'inizi aveva avuto
un problema similare al mio ma non so come ha risolto visto che quella domanda non ha avuto seguito.
Praticamente in tutti gli esempi per collegare GridBox al db principalmente fatte riferimento a questo codice
Codice: gambas [Seleziona]

  With $myCon
    .Type = "mysql"
    .Host = "localhost"
    .Name = "test_db"
    .Login = "my_login"
    .Password = "my_password"
  End With

  With GridBox1
    .Connection = $myCon
  End With

che funziona benissimo, però mi costringe a ripeterlo su ogni form. Io nel mio progetto ho um modulo che mi gestisce la connessione che richiamo
in qualsiasi posizione del progetto, ma non riesco a utilizzarlo con GridBox.  :hard:
Mi serve un aiuto

ma dai sono solo 7 righe di codice...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Luglio 2011, 18:31:44
Bhe senz'altro nel tuo modulo avri una varialbile ,chiamiamola Conn, che sara' pubblica edi tipo connection... ergo:


GridBox.Connection = tuomodulo.Conn
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 27 Luglio 2011, 18:33:48
anchi'io mi collego da un modulo
Codice: gambas [Seleziona]

  With GridBox1
    .Connection = avvio.$myconn
  End With


L'unica cosa che mi viene in mente è la maiuscola di "Mysql".. non saprei, mi sembra che dovrebbe andare come hai fatto.
Prova a cambiare "mysql" con "Mysql"
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 27 Luglio 2011, 22:15:38
ma dai sono solo 7 righe di codice...
andy, mi meraviglio di te....tu che sei molto attento nell'utilizzare il codice al meglio... :nono:
Saranno solo 7 righe che moltiplicate per un bel pò di form fanno una bella cifretta, così penso sia meglio:
Codice: gambas [Seleziona]

  With GridBox1
    .Connection = MGlobal.db
  End With

sia a livello di "pulizia" che lettura del codice....o no
Grazie milio, sempre puntuale  :2birre: (niente birra a andy  ;))
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 28 Luglio 2011, 00:04:15
Eccomi di nuovo, ormai ci ho preso gusto (milio, peggio per te.... ;D), sto cercando di implementare la ricerca di un dato all'interno di una colonna della GridBox ben precisa, prelevando la stringa da ricercare da una TextBox, ho provato con questo codice
Codice: gambas [Seleziona]

Public Sub TxtCode_Activate()
  With GridBox1.Columns[0]
    .Formatting[0].Comparison = "=C[codice] = '" & TxtCode.Text & "'"
    .Formatting[0].Formatting.Background = Color.Yellow
  End With
End

ma mi da questo errore:
Out of bounds in_Conditionals:18
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 28 Luglio 2011, 06:39:18
Perche' non gli hai detto quante formattazioni fai:

Public Sub TxtCode_Activate() 
 With GridBox1.Columns[0] 
   .Formatting.Count = 1
   .Fomatting[0].Comparison = "=C[codice] = '" & TxtCode.Text & "'" 
   .Formatting[0].Formatting.Background = Color.Yellow 
 End With 
End

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 28 Luglio 2011, 07:47:43
ma dai sono solo 7 righe di codice...
andy, mi meraviglio di te....tu che sei molto attento nell'utilizzare il codice al meglio... :nono:
Saranno solo 7 righe che moltiplicate per un bel pò di form fanno una bella cifretta, così penso sia meglio:
Codice: gambas [Seleziona]

  With GridBox1
    .Connection = MGlobal.db
  End With

sia a livello di "pulizia" che lettura del codice....o no
Grazie milio, sempre puntuale  :2birre: (niente birra a andy  ;))

grazie per avermi evitato la birra!!
nella scrittura del codice ho una strategia, prima il lavoro grosso, poi il lavoro di fino. Questo che dici te rientra nella seconda parte del lavoro, ma non è detto che l'adotto, è cosi' semplice che non ne vedo il motivo.
Esempio: ho creato una form con un texteditor e richtext, che davvero devo replicare da piu' parti. Quella l'ho fatta subito!!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 28 Luglio 2011, 22:18:22
Perche' non gli hai detto quante formattazioni fai:

Public Sub TxtCode_Activate() 
 With GridBox1.Columns[0] 
   .Formatting.Count = 1
   .Fomatting[0].Comparison = "=C[codice] = '" & TxtCode.Text & "'" 
   .Formatting[0].Formatting.Background = Color.Yellow 
 End With 
End


Ho modificato il codice come da te indicato, l'errore è sparito ma adesso non succede niente, non mi viene evidenziato il codice all'interno della GridBox corrispondente a quello digitato nella TextBox, manca ancora qualcosa  ???
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 29 Luglio 2011, 00:15:05
Ciao tornu
Ho provato il tuo codice ed è giusto, però funziona se vai a cliccare sopra la griglia dopo aver avviato l'evento TxtCode_Activate().
Non saprei come si possa "riattivare" 
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 29 Luglio 2011, 16:56:43
Ok mi sono ripreso :) ... Dopo la sbornia di sabato non ho piu' fatto un granché  :-\

Nuova release:

- Aggiunto metodo GridBox.RefreshGrid()
- Aggiunto esempio per eventi dell'oggetto ComboBox della GridBox (grazie Andy e scusa il ritardo  ;) )


@tornu & Golia

Se si cambia la formattazione condizionata dopo il settaggio di GridBox non avviene nulla finche' non si fa il refresh delle righe gia' visualizzate.
Per questo inconveniente, in questa release, ho creato il metodo GridBox.RefreshGrid() che ha lo scopo appunto di fare il refresh delle righe senza andare a ricaricare i dati in griglia.

Quindi se si sono fatte delle modifiche in griglia e si da GridBox.RefreshGrid() le modifiche rimarranno ancora visibili, se invece si da GridBox.Refresh() verranno cancellate le modifiche e verra' rifatta la richiesta al database.

Quindi tornu, per quanto riguarda il tuo esempio, puoi benissimo fare in questo modo:

Public Sub TxtCode_Activate() 
 With GridBox1.Columns[0] 
   .Formatting.Count = 1
   .Fomatting[0].Comparison = "=C[codice] = '" & TxtCode.Text & "'" 
   .Formatting[0].Formatting.Background = Color.Yellow 
 End With 
 GridBox1.RefreshGrid()
End

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 29 Luglio 2011, 17:36:28
 ;D
Citazione
Dopo la sbornia di sabato
;D  che peccato che non c'ero.. ;D ;D


Citazione
- Aggiunto metodo GridBox.RefreshGrid()
   :ok: :ok:


Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 29 Luglio 2011, 18:02:56
davvero sbornia?  :P
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 29 Luglio 2011, 21:48:12
Grande milio... :ok: :ok:
Ti meriti un'altra sbornia  :2birre: :2birre: :2birre: :2birre: :2birre: :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 29 Luglio 2011, 23:31:33
Ho una GridBox con le colonne popolate da dati provenienti da un db e ho la neccessità di una ulteriore colonna popolata da un dato fisso,
utilizzando la proprietà .DefaultValue = valore fisso pensavo mi popolasse questa colonna in automatico con il valore di default, ma la colonna rimane vuota.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 29 Luglio 2011, 23:45:56
Ho una GridBox con le colonne popolate da dati provenienti da un db e ho la neccessità di una ulteriore colonna popolata da un dato fisso,
utilizzando la proprietà .DefaultValue = valore fisso pensavo mi popolasse questa colonna in automatico con il valore di default, ma la colonna rimane vuota.

il valore di default viene preso con il comando 'nuovo record'
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 30 Luglio 2011, 22:41:37
ok andy, ho capito la funzione .DefaultValue, ma son sicuro che c'è il modo per ottenere quello che mi serve, continuo a provare  :coder:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 31 Luglio 2011, 00:54:52
E il modo c'e  :ok:, basta un po' di ragionamento...e la soluzione si trova
Codice: gambas [Seleziona]

    .Formatting.Count = 1
    .Formatting[0].Comparison = "=C[NomeColonna] = ' '"
    .Formatting[0].Formatting.Text = "Valore_Default"

alla prossima
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 31 Luglio 2011, 15:10:28
 :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 31 Luglio 2011, 17:02:30
@tornu

thx!!  :-* :2birre: :2birre:

mi hai aiutaato a risolvere una cosa:

Codice: [Seleziona]
 With GridBox1.Columns[Col]
    .Hide = False
    .Type = Grid.Type.Field
    '.Type = Grid.Type.Formula
    .DataType = Grid.DataType.Date
    .Field = "Gmaclose"
    .Text = "GMA2"
    .Name = "gma2"
     .Formatting.Count = 2 
   .Formatting[0].Comparison = "=C[chiuso] =1" 
   .Formatting[0].Formatting.Text = Format$(Date(Now), "dd/mm/yyyy")
   .Formatting[1].Comparison = "=C[chiuso] =0" 
   .Formatting[1].Formatting.Text = " "
   .AlignmentHeader = 3
    .w = 100
    .Alignment = 3
  End With
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 31 Luglio 2011, 20:03:18
Vorrei un riscontro da parte vostra per sapere se succede solo a me ho è un "problema" di GridBox, impostando la proprietà di una colonna
per l'allineamento centrato dell' Header:
Codice: gambas [Seleziona]

    .AlignmentHeader = Align.Center

quando clicco su un dato della colonna l'intestazione si sposta a destra, cliccando su un'altra colonna o quando perde il focus l'intestazione torna centrata  ???
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 31 Luglio 2011, 21:27:45
gia' fatto notare :2birre: :rotfl: nel mio debug, arrivi tardi!!! :P :P :P
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 31 Luglio 2011, 21:35:24
Si pero' per questo bug non mi avete risposto  :nono:  :rotfl:

Avete provato a cambiare il font a GridBox e vedere se fa lo stesso scherzo?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 31 Luglio 2011, 22:09:18
gia' fatto notare :2birre: :rotfl: nel mio debug, arrivi tardi!!! :P :P :P
Mi scuso, mi è sfuggito  :-[

Si pero' per questo bug non mi avete risposto  :nono:  :rotfl:

Avete provato a cambiare il font a GridBox e vedere se fa lo stesso scherzo?
Ciao milio, ti rispondo subito, ho impostato la proprietà Font di GridBox
Codice: gambas [Seleziona]

   .Font.Name = "Arial"

e lo scherzo non lo fà più, funziona.
Per mia curiosità mi puoi spiegare perchè cambiare il font modifica l'allineamento dell'header.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 03 Agosto 2011, 00:16:36
Sto cercando di formattare una colonna in base ad una certa condizione, ma dopo tante prove non ci sono riuscito, la colonna "Ricarico" non visualizza il risultato della formula ma la scritta #ERR, il codice che sto provando è il seguente
Codice: gambas [Seleziona]

  Inc col
  With GridBox1.Columns[col]  ' Colonna 6
    .Hide = False
    .ReadOnly = True
    .Text = "Ricarico"
    .Name = "ric"
    .AlignmentHeader = Align.Right
    .Type = Grid.Type.Formula
    .DataType = Grid.DataType.Float
    .Formatting.Count = 1
    .Formatting[0].Comparison = "=C[percentuale]> 0"
    .Formatting[0].Formatting.Formula = "=(C[pacquisto] * (100 + C[percentuale]))/100"
    .Format = "0.00"
    .Alignment = Align.Right
    .Resizable = False
    .W = 70
  End With

è chiaro che ancora non ho capito bene le varie proprietà, cosa stò sbagliando?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Agosto 2011, 06:03:07
Prova cosi'

Codice: gambas [Seleziona]
 Inc col  
 With GridBox1.Columns[col]  ' Colonna 6 
   .Hide = False 
   .ReadOnly = True 
   .Text = "Ricarico" 
   .Name = "ric" 
   .AlignmentHeader = Align.Right 
   .Type = Grid.Type.Formula 
   .DataType = Grid.DataType.Float 
   .Formula = "=IIF(C[percentuale] > 0 , (C[pacquisto] * (100 + C[percentuale]))/100 , Null)" 
   .Format = "0.00" 
   .Alignment = Align.Right 
   .Resizable = False 
   .W = 70 
 End With 
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 03 Agosto 2011, 22:01:23
Ciao milio, per prima cosa grazie per la risposta.
Allora anche con la modifica al codice che mi hai postato non è cambiato nulla, ho provato a fare altre prove, questi i risultati:
provando a fare calcoli tra le colonne (utlizzando il loro nome) non funziona
Codice: gambas [Seleziona]

  .Formula = "=IIF(C[percentuale] > 0 , C[pacquisto] + C[percentuale], Null)"   


non funziona neanche così
Codice: gambas [Seleziona]

  .Formula = "=IIF(C[percentuale] > 0 , C[pacquisto] + 20, Null)"   


in questo modo funziona perfettamente
Codice: gambas [Seleziona]

  .Formula = "=IIF(C[percentuale] > 0 , 3 * 3, Null)"   

c'è qualcosa che non va o sono io che non ho ancora capito bene
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Agosto 2011, 22:14:29
Puoi postarmi la parte di codice dove setti questa GridBox?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 03 Agosto 2011, 22:22:48
Intendi questa
Codice: gambas [Seleziona]

 With GridBox1
   .Font.Name = "Arial"
   .Header = 1
   .Expand = False
   .AutoDataType = True
   .GridOnly = True
   .TableName = "listino"
   .LoadData(sSQL)
   .ColorRowAlternating = False
   .Color.RowAlternating = Color.RGB(230, 230, 230)
   .Grid = False
 End With
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 04 Agosto 2011, 23:24:46
Mi sono impantanato, non riesco proprio a venirne fuori.... :hard:
milio, puoi darmi una mano...grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 04 Agosto 2011, 23:37:08
Intendo sia quello che hai postato che il codice di ogni singola colonna...

Oppure, che facciamo prima, mi passi i sorgenti ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 05 Agosto 2011, 00:08:58
No problem e solo un programma test, ti allego il tutto
grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Agosto 2011, 15:12:43
Dall'esempio che mi hai mandato non riesco a capire che errore ti ritorna...
L'ho provato, collegandolo ad un db sqlite, e funzica

Prova a testarlo anche tu e fammi sapere se era questo il risultato che volevi ottenere...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Agosto 2011, 15:31:25
Nuova release:

Aggiunto il metodo GridBox.ExportCsv()

Public Function ExportCsv(Optional Comma As String, Optional VisibleOnly As Boolean) As String

Comma se lasciato vuoto imposta il separatore con il  ';'
VisibleOnly settato a True esporta solo i dati delle colonne visibili.



ps. da testare ed implementare :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 05 Agosto 2011, 22:03:24
Dall'esempio che mi hai mandato non riesco a capire che errore ti ritorna...
L'ho provato, collegandolo ad un db sqlite, e funzica

Prova a testarlo anche tu e fammi sapere se era questo il risultato che volevi ottenere...

Ho provato è funziona perfettamente, il risultato è quello che volevo ottenere io, non riesco a capire.....
l'unica differenza e che io lo collego a un db MySql ma non credo sia questo il problema.
Non mi ritorna nessun errore e che sulla colonna "Ricarico" non viene visualizzato il risultato della formula ma rimane #ERR.
Continuo a provare e ti faccio sapere. Grazie per il test.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 05 Agosto 2011, 22:08:33
mmm...

Mi puoi indicare con precisione anche che tipo di dati hai usato nella tua tabella in Mysql?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 05 Agosto 2011, 23:09:00
mmm...

Mi puoi indicare con precisione anche che tipo di dati hai usato nella tua tabella in Mysql?
La tua intuizione sul tipo di dati era giusta....il problema era il tipo di dati sul db, le prove le sto facendo
su una base dati di un mio amico a cui sto sviluppando un programma e non avevo ancora verificato la struttura
del db, le colonne interessate dai calcoli erano impostate come Varchar  >:(, le ho modificate in Decimal e
GridBox fa perfettamente il suo lavoro. Grazie milio  :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 05 Agosto 2011, 23:36:56
Eccomi di nuovo, solo per chiederti se è possibile evitare nelle colonne con formule la visualizzazione di #ERR.
Visto che ci sono, riguardo il nuovo metodo interessantissimo di esportazione dati che hai implementato nell'ultima release puoi spiegarmelo con un esempio. Grazie e grazie ancora
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 06 Agosto 2011, 16:30:31
Citazione
Aggiunto il metodo GridBox.ExportCsv()
ci dimenticheremo come si fà a scrivere codice puro di gambas :)
 :ok:
Appena posso testo, grazie ancora
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 06 Agosto 2011, 17:01:25
ultimo post, ci riscriviamo a fine mese, mi disp.... :'( :rolleyes: :ciao:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: sotema - 21 Agosto 2011, 15:38:25
Dalla rev. 4015 di gb3 sono state introdotte modifiche fondamentali nel processo di Eredità.
Dal changelog:
Citazione
[INTERPRETER]
* NEW: Inheritance is stricter now: the child symbol must have exactly the
  same kind than the parent symbol.
* BUG: A child method must return the same datatype as its parent method
  now.
credo che questo impatterà notevolmente su gb.gribox.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 21 Agosto 2011, 22:04:46
Si effettivamente questo avrebbe potuto crearmi problemi... per fortuna ho mantenuto per quasi tutti i simboli di tutti gli oggetti di gridbox la stessa sintassi e lo stesso tipo di valore... ho dovuto cambiare qualcosina solamente per il campo di tipo check e di tipo mask...

Allego sorgenti e... grazie per l'avvertimento ;)

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 23 Agosto 2011, 23:35:11
ciao a tutti, sono tornato oggi. Mi confermate che l'ultima versione di gridbox è obbligatoria se si installa da svn g3?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 24 Agosto 2011, 06:59:24
Come segnalato da sotema dalla 4015 in poi si...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: doublemm - 28 Agosto 2011, 17:50:39
ciao a tutti. Sono stato un po assente dal forum per impegni lavorativi però davo spesso una sbirciatina e infatti mi sto cimentando con la gridbox (so di essere ripetitivo ma grazie ragazzi). Grazie a gridbox sto modificando un software che uso peer la contabilità della mia attività rendendolo molto più snello. Per agevolare il lavoro di impostazione della griglia volevo sapere se c'è modo di sapere la larghezza delle header delle righe. Questo perchè ho notato che se la mia tabella è composta da 3 colonne e imposto la larghezza delle colonne come: gridbox.w / 3, mi compare la barra di scorrimento orizzontale della gridbox perchè le caselle sono un terzo della larghezza della griglia ma non tengono conto dello spazio usato dall'intestazione.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 28 Agosto 2011, 22:30:38
Amici, sono tornato anche io con qualche ideuzza...sto preparando un esempio di gridbox che usa in maniera alternata un db locale e uno cloud, permettendo la sincronizzazione nei due versi. Appena pronto lo giro a milio.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 03 Settembre 2011, 10:37:44
forse sono arrugginito....mi chiedevo questo.....ho una form con la tabella principale (allenamenti) ed una form con una tabella secondaria (esercizi). Il campo di collegamento è il campo stringa dell'esercizio (ho voluto fare le cose semplici senza mettere in mezzo il seriale).

Se modifico la tabella degli esercizi, eliminando l'esercizio, ho creto una routine che elimina sia l'esercizio che tutti gli allenamenti correlati.

Inoltre dovrei poter monitorare anche il solo rename dell'esercizio, nel senso che dopo aver variato il nome dell'esercizio e aver salvato la tabella esercizi, dovrei aver automaticamente modificato anche la tabella allenamenti. E qua sorge il casino, dove vado a mettere questo codice? Si puo' fare?
Che dite vi mando un esempio da lavorarci sopra? La soluzione ancora non mi arriva.. sono le ferie lo so..

:hard: :hard:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 03 Settembre 2011, 14:11:28
Il campo di collegamento è il campo stringa dell'esercizio (ho voluto fare le cose semplici senza mettere in mezzo il seriale).

... dopo aver variato il nome dell'esercizio e aver salvato la tabella esercizi, dovrei aver automaticamente modificato anche la tabella allenamenti. E qua sorge il casino, dove vado a mettere questo codice? Si puo' fare?

Guarda che è proprio il collegare delle tabelle con chiavi su campi seriali che ti facilita la vita...  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 03 Settembre 2011, 15:51:41
a parte il seriale, che posso sistemare facilmente, cosa suggerisci per effettuare sta cosa? seriale o non seriale il codice va inserito da qualche parte..

1) eliminazione record tabella esercizi...nel codice del bottone elimina inserisco anche una sql di eliminazione dei dati della tabella allenamenti..della serie.....delete from xxxxxx where idesercizio=xx, il refresh della tabella allenamenti lo faccio da qua con

Codice: [Seleziona]
Form1.Gridbox1.Colums[1].........refresh del combo contenenti gli esercizi

ma è giusto?

2) modifica tabella allenamenti...in effetti se lavoro sul seriale la modifica non ha motivo di essere fatta, già è fatta..rilavoro sui seriali..
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 04 Settembre 2011, 02:02:24
Andu, sei proprio forte...  :D

Ma che db usi? Immagino SQLite...

Ad ogni modo, se vuoi gestire la cosa tramite programma, ok, altrimenti esistono anche i trigger (non ricordo però se SQLite le gestisce...  :-\ ).

L'uso di codice, come pure indicato da milio, semplifica molto la vita, oltre al fatto che occupano meno spazio di una stringa, e ha meno problemi di decodifica caratteri.

A parte questo, il link tra le due tabelle può essere qualsiasi cosa, e a livello di codice puoi usare una proprietà ad-hoc per le due form (padre e figlia).
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 04 Settembre 2011, 07:46:07
Andu, sei proprio forte...  :D

Ma che db usi? Immagino SQLite...

Ad ogni modo, se vuoi gestire la cosa tramite programma, ok, altrimenti esistono anche i trigger (non ricordo però se SQLite le gestisce...  :-\ ).

L'uso di codice, come pure indicato da milio, semplifica molto la vita, oltre al fatto che occupano meno spazio di una stringa, e ha meno problemi di decodifica caratteri.

A parte questo, il link tra le due tabelle può essere qualsiasi cosa, e a livello di codice puoi usare una proprietà ad-hoc per le due form (padre e figlia).

il cazzeggio post-ferie è permesso no? ho sempre usato i relazionali e i seriali...na volta che uso le stringhe mi maltratti..ahahahahaha :'( :P ;D
tutto sistemato...anzi, dopo la stupidaggine preferie (preferisco non raccontarla..mi dovete chiedere...) ho quasi sistemato myZone4
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 04 Settembre 2011, 12:31:16
Bè, mò la cosa me interessa...  ;D

Dicci...dicci...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 04 Settembre 2011, 13:42:58
Bè, mò la cosa me interessa...  ;D

Dicci...dicci...

dico solo che avevo le lacrime....non so come sia successo invece di installare Natty su hd l'ho installato sull'hd di backup, non accorgendomene...e ho perso la versione finale di myZone, avendo riformattato l'hd...myZone nemmeno era piazzata  su Dropbox..

cmq ora ho rimesso a posto, la versione mi sembra anche migliorata
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 05 Settembre 2011, 08:52:59
mi ricordate come ci si posiziona sull'ultimo record(riga)? grazzzieeee
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 05 Settembre 2011, 11:55:16
Scusa, ma non usi alcun tipo di repository, a parte il backup?

Comunque, sono cose che possono accadere, e fortunatamente hai risolto...  :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 05 Settembre 2011, 22:11:17
@ Andy
Citazione
mi ricordate come ci si posiziona sull'ultimo record(riga)? grazzzieeee

Il grande capo direbbe.....
Codice: gambas [Seleziona]
GridBox.MoveTo(GridBox.Rows.Max,colonna)
  ;)
 :2birre: :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 06 Settembre 2011, 06:18:16
@mdxxxx

uso dropbox, ma per una volta mi ero 'rilassato'..fortunatamente myZone sono riuscitp a ripristinarlo, fatte salve alcune migliorie che erano state inserite con l'utilizzo del programma.

Il mio Crm l'ho recuperato dal portatile in ufficio, sinceramente era complesso non l'avrei rifatto...

@golia

thx  :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 13 Settembre 2011, 22:57:46
Nuova release:

Corretto bug per abilitare Ucase e Lcase su campo di tipo String
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 14 Settembre 2011, 06:53:27
Aggiorno! :2birre:

Thx!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 20 Settembre 2011, 08:30:44
gridbox 2.99.167
gambas3 rev 4141


mi da' questa cosa

devo forse caricare la RC3?

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: sotema - 20 Settembre 2011, 09:00:05
Classe SearchBox.Class
Codice: [Seleziona]
Dim sEventName As String = Object.LastEventName

dal changelog di ganbas3:
r4122 | gambas | 2011-09-13 02:02:33 +0200 (mar, 13 set 2011) | 3 lines

[INTERPRETER]
* BUG: Remove the deprecated Object.LastEventName property.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 20 Settembre 2011, 23:41:39
E ci risiamo.. sti cambiamenti  :evil:


in sti giorni non ho molto tempo... per fine settimana ci aggiorniamo...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 21 Settembre 2011, 04:40:40
E ci risiamo.. sti cambiamenti  :evil:


in sti giorni non ho molto tempo... per fine settimana ci aggiorniamo...

grazzzzzie :2birre:

purtroppo questo succede avendo sempre l'ultima svn possibile...l'altro giorno il programma funzionava benissimo con la versione di g3 precedente
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 22 Settembre 2011, 10:24:23
Corretti bug rilevati.... speruma bin nhe :)

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 22 Settembre 2011, 16:27:05
versione milestone :P :-*
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 22 Settembre 2011, 18:37:02
Grazie  :2birre: :2birre:
Stasera provo  :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 22 Settembre 2011, 20:59:42
@milio

quel bug che ho segnalato non so se dipenda da gridbox. me lo da' ancora, verifico meglio e ti faccio sapere :hard:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Settembre 2011, 22:52:53
Nuova release:

-corretti alcuni bug (sicuramente creandone di nuovi :) )
-aggiunto evento BeforeChange
-aggiunto sorpresa ;)

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 28 Settembre 2011, 12:57:47
 :yeah:
Ma qualcuno ha visto che cosa ha combinato milio stavolta!!!
Citazione
-aggiunto sorpresa Occhiolino
che sorpresa... un generatore di codice stile..(anche se mi sembra di sminuire gambas e gridbox) ACCESS.
Basta connettersi al database inserirgli la query, anche se ho visto che cliccando 2 volte nella tabella a dx si crea già una query "essenziale", e si carica i campi della tabella di sx, con la possibilità di inserire i campi e dargli le varie proprietà gridbox...
Spero di essermi spiegato un poco..sono ..eccitato.. ;D...fantascienza.
In pratica è una comoda gui per generare codice gridbox..fantastico
Milio ti sei superato  :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 28 Settembre 2011, 17:52:33
@golia


preso dal lavoro non avevo controllato il thread...rimedio subito :2birre: :2birre: :2birre:


il gridboxeditor è na figatafiammante :-* applausi a milio
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 28 Settembre 2011, 19:48:27
Ragazzi grazie per i complimenti... vedro' nei prossimi giorni di perfezionare la cosa ed includere anche i metodi...

Grazie ancora  ;D


Prima o poi ste  :2birre: ce le beviamo?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 29 Settembre 2011, 17:34:58
@milio e il forum

io x una bevuta/mangiata vera da concordare sono SEMPRE a disposizione!! luogo da scegliere...certo che gli admin del forum si dovrebbero dare da fare...che caz

 ;D ;D ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 29 Settembre 2011, 18:12:43
Citazione
io x una bevuta/mangiata vera da concordare sono SEMPRE a disposizione!!
Pure io  ;D
@Andy

Non azzardarti a portare via myzone, che tanto mia moglie non ci sarà, allora ..MANGIATA = MOLTO TRUE  ;D
 :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 30 Settembre 2011, 22:02:07
Nuova release:

- :danger: Cambiato nome a Proprietà GridBox.EnableObjectLinked in GridBox.EnabledObjectLinked (scusate ma mi dava fastidio :) )
- corretto bug su procedura di refresh object linked quando si ha una GridBox vuota
- corretto bugs e dato un'aggiustatina al GridBox Editor
- corretto bugs e aggiunto funzioni per l'esportazione in formato CSV
- aggiunto nuovo oggetto: GridBoxNavigator
- aggiunto esempio per GridBoxNavigator

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 30 Settembre 2011, 22:15:33
 :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 01 Ottobre 2011, 00:43:21
direi doppia  ;)
 :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 01 Ottobre 2011, 04:35:06
@golia

 :2birre: :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 12 Novembre 2011, 20:39:51
Chiedo anticipatamente scusa per la domanda, come ho già detto in qualche altro post mi sono un pò arrugginito.
Devo creare una Gridbox non collegata a DB ma contenente dei dati preimpostati, che proprietà devo impostare?
Grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 12 Novembre 2011, 21:07:33
Ciao Tornu
Non ho mai affrontato questo problema, spero che Milio mi smentisca ma credo che gridbox funzioni solo con database. Non puoi mettere i dati preimpostati in un db tipo sqlite?
Ciao, e spero di sbagliarmi ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 12 Novembre 2011, 22:16:41
Ciao Golia,
il problema non è usare un DB, per quello che devo fare è "sprecato", voglio usare la Gridbox per le sue proprietà che mi permettono di
presentare i dati in un certo modo, se non fosse possibile per il motivo che hai detto tu ripiegherò sulla "vecchia" GridView.
Se Milio passa da queste parti.....
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 12 Novembre 2011, 22:34:17
Guardate che i primi esempi contenuti nei sorgenti di progetto non sono GridBox collegate a DB... La GridBox e' fondamentalmente una GridView e quindi puo' essere benissimo usata come tale  ;)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 13 Novembre 2011, 00:03:04
Ciao Milio,
ho scaricato il primo esempio da te postato (....ormai preistoria  :)), ma anche quello è collegato ad un DB, quindi non mi è utile.
Per quanto riguarda il fatto che sia fondamentalmente una GridView è vero fino ad un certo punto...l'hai rivoluzionata un bel pò.
Ti faccio uno stupido esempio, che poi è quello che sto cercando di ottenere io con la Gridbox:
Codice: gambas [Seleziona]

GridView1.Columns.Count = 3

GridView1[0, 0].Text = "dato1"
GridView1[1, 1].Text = "dato2"
GridView1[2, 2].Text = "dato3"

con Gridbox non ci sono riuscito, sicuramente una mia limitazione.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 13 Novembre 2011, 00:11:14
Nei sorgenti delle ultime release abbiamo fatto una serie di esempi.... i primi esempi intendevo quelli creati appunto nelle ultime release... scusa la confusione...

Per quanto riguarda il codice da te postato basta che la proprietà .Text la sostituisci con la proprietà .Value e la cosa dovrebbe funzionare...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 13 Novembre 2011, 12:41:24
 :) il progetto è grande che è fatica conoscerlo tutto  ;D
 Meglio che mi sono sbagliato. Si vede tutto nel progetto gridbox nei form Ftest1 e Ftest2 :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 13 Novembre 2011, 22:11:21
 :ok: :ok: :ok: Lo sapevo.... grazie

Golia, tu sei avvantagiato rispetto a tutti noi...fai parte integrante del progetto  ;D secondo me fra poco milio sforna un'altra proprietà
Codice: gambas [Seleziona]

 .Golia = True

 :P
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 13 Novembre 2011, 22:44:25
Scusate ragazzi, ma ho ancora bisogno di voi.  :-[
Con il vostro aiuto sono ormai arrivato quasi ad ottenere da Gridbox quello che mi serviva, mi è rimasto un'ultimo problema:
come faccio ad inserire più righe?
Vi ricordo che la Gridbox che stò utilizzando non è collegata ad un DB ma i dati sono statici, sono da me predeterminati.
Grazie ancora.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 14 Novembre 2011, 08:23:50
@milio

perchè in gridbox non inserisci anche la possibilità di installare il componente slidingbox come da tuo post: http://www.gambas-it.org/smf/index.php?topic=1043.msg11359#msg11359

non sarebbe male averlo :-*

a questo punto (anche senza slidingbox) il programma è diventato un fantastico installer di componenti aggiuntivi, lode a milio :2birre: :2birre:

ps potenza del programma gridbox.

Come ho sempre detto IMHO nella produzione di sofware a qualunque livelloè sempre fondamentale il rapporto (prestazioni/tempo impiegato per la soluzione), ebbene ieri ho realizzato un software che per me è importantissimo, recuperando un template di software di myZone, funzionante e con tutti gli optionals...

ancora grazie!!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 14 Novembre 2011, 12:48:55
.........
Con il vostro aiuto sono ormai arrivato quasi ad ottenere da Gridbox quello che mi serviva, mi è rimasto un'ultimo problema:
come faccio ad inserire più righe?
.........

Mi rispondo da solo, e chiedo scusa (in modo particolare a Milio)   :-[ se qualche volta posto domande "stupide", la soluzione era di una semplicità
imbarazzante

Codice: gambas [Seleziona]

Public Sub load_data()
  GridBox1.Rows.Count = 2
  GridBox1.Rows.H = 50
  GridBox1.ColorRowAlternating = True
  GridBox1.Color.RowAlternating = Color.RGB(230, 230, 230)

  GridBox1[0, "col1"].Value = "CO"
  GridBox1[0, "col2"].Value = "1601659"
  GridBox1[0, "col3"].Value = "13/11/2011"
  GridBox1[0, "col4"].Value = "050000"
  GridBox1[0, "col5"].Value = "120,55"
  GridBox1[1, "col1"].Value = "CO"
  GridBox1[1, "col2"].Value = "1601663"
  GridBox1[1, "col3"].Value = "13/11/2011"
  GridBox1[1, "col4"].Value = "010404"
  GridBox1[1, "col5"].Value = "23,50"
End


 :ok: Grazie

@andy
ciao andy ogni tanto....ci si vede
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 14 Novembre 2011, 13:19:05
@milio

perchè in gridbox non inserisci anche la possibilità di installare il componente slidingbox come da tuo post: http://www.gambas-it.org/smf/index.php?topic=1043.msg11359#msg11359

non sarebbe male averlo :-*

a questo punto (anche senza slidingbox) il programma è diventato un fantastico installer di componenti aggiuntivi, lode a milio :2birre: :2birre:



Sapete che vi dico.... bisognerebbe creare un programma, diciamo serio, che faccia da installer, in modo che chiunque possa integrare una sua classe al suo interno in modo da renderlo subito disponibile e facile da installare come abbiamo fatto nel progetto GridBox...

Oppure bisogna aspettare che la parte di creazione pacchetti di installazione di gambas funzioni a dovere...  :-\

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 14 Novembre 2011, 13:44:17
ciao carissimo, come stai prima di tutto? spero benissimo. La scritta scorrevole mi serve x evidenziare in un nuovo software alcuni dati statistici on-the-fly, penso proprio che integrero' il tuo codice al suo interno. In termini di scorrevolezza della scritta è il migliore che ho avuto modo di vedere!

Installer: si, servirebbe, per ora mi tengo sempre a portata di mano il fantastico gb.gridbox :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 14 Novembre 2011, 23:20:49
Citazione
Golia, tu sei avvantagiato rispetto a tutti noi...fai parte integrante del progetto  Ghigno secondo me fra poco milio sforna un'altra proprietà
Codice: gambas
view plaincopy to clipboardprint?

    .Golia = True 

Linguaccia
hi hi ;D la proprietà per le castronerie ;D :ciao:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 17 Novembre 2011, 19:48:08
Sempre proseguendo riguardo a qualche post precedente dove ho implementato una Gridbox "statica" non collegata a DB, mi è sorta un'altra esigenza:
ho inserito la ricerca di un dato e se trovato all'interno di una colonna specifica viene evidenziato colorando la cella e il testo, e fino a qui tutto ok.
Ma se il record trovato lo volessi visualizzare come primo (sempre evidenziato) riordinando la Gridbox?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 18 Novembre 2011, 16:08:28
Sempre proseguendo riguardo a qualche post precedente dove ho implementato una Gridbox "statica" non collegata a DB, mi è sorta un'altra esigenza:
ho inserito la ricerca di un dato e se trovato all'interno di una colonna specifica viene evidenziato colorando la cella e il testo, e fino a qui tutto ok.
Ma se il record trovato lo volessi visualizzare come primo (sempre evidenziato) riordinando la Gridbox?

secondo me puoi implementare il sort per colonna, basta cambiare la sql che carica la griglia.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 18 Novembre 2011, 17:42:46
secondo me puoi implementare il sort per colonna, basta cambiare la sql che carica la griglia.

Ciao Andy,
se fosse una Gridbox collegata a DB non avrei problemi, ma questa non lo è (ti è sfuggito), se dai uno sguardo a qualche post indietro vedi
come è impostata. A me non serve il sort per colonna, vorrei riordinare i record in base ai risultati della ricerca o far scorrere la Gridbox
(se fattibile) fino alla visualizzazione del record trovato.
Aggiungo se dovesse servire che la la dimensione della Gridbox che ho impostato visualizza sei righe superate le quali devo usare la barra
di scorrimento verticale, ecco perchè vorrei visualizzare il risultato della ricerca (se positivo) in automatico nel range di righe visualizzate
senza usare lo scroll.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 18 Novembre 2011, 18:58:14
excuse me non avevo letto tutto...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 18 Novembre 2011, 19:48:40
Sempre proseguendo riguardo a qualche post precedente dove ho implementato una Gridbox "statica" non collegata a DB, mi è sorta un'altra esigenza:
ho inserito la ricerca di un dato e se trovato all'interno di una colonna specifica viene evidenziato colorando la cella e il testo, e fino a qui tutto ok.
Ma se il record trovato lo volessi visualizzare come primo (sempre evidenziato) riordinando la Gridbox?

 :nono: Mi spiace ma questo non l'ho implementato. Il motivo? La griglia è stata creata per interagire con Db...

Io penso pero' che puoi portarti direttamente sulla riga ricercata con un GridBox.Move(Riga,Colonna)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 18 Novembre 2011, 23:25:41
:nono: Mi spiace ma questo non l'ho implementato. Il motivo? La griglia è stata creata per interagire con Db...

Io penso pero' che puoi portarti direttamente sulla riga ricercata con un GridBox.Move(Riga,Colonna)

Control.Move (gb.qt4)
SUB Move ( X AS Integer, Y AS Integer [ , Width AS Integer, Height AS Integer ] )
Moves and/or resizes the control.

Purtroppo non serve per quello che voglio fare io, ma per posizionare e ridimensionare la Gridbox.  :'(
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 19 Novembre 2011, 00:11:31
@tornu


Ogni tanto ci si vede! I grafici come vanno? Io ora uso googleapi
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 19 Novembre 2011, 09:43:30
Scusa ma sto perdendo colpi ultimamente  :-[

GridBox.MoveTo(Row, Column)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 19 Novembre 2011, 23:41:45
Scusa ma sto perdendo colpi ultimamente  :-[

GridBox.MoveTo(Row, Column)


Ma figurati,
ho utilizzato Gridbox.MoveTo, non è il risultato che volevo ottenere me mi è sufficente.

:nono: Mi spiace ma questo non l'ho implementato. Il motivo? La griglia è stata creata per interagire con Db...
Concordo pienamente con te, il mio utilizzo in questo caso era un pò particolare.
Comunque grazie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: tornu - 22 Novembre 2011, 13:15:34
@tornu
Ogni tanto ci si vede! I grafici come vanno? Io ora uso googleapi
Ultimamente di rado purtroppo, grafici momentaneamente fermi, ci devo tornare su e sicuramente mi servirà il tuo apporto....chiudo
qui altrimenti il "Capo  :police:" si inc...vola, a presto Andy Ciao

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 23 Novembre 2011, 22:20:24
quando vuoi, nei limiti del tempo disponibile, chiedimi..
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 01 Dicembre 2011, 12:23:00
@milio

proposta di aggiunta....allego mockup di un form dove sono presenti due gridbox:
1. grid box di sinistra, griglia dove inserisco i dati
2. gridbox di destra: visualizza in dati in formato 'cella grande' su cui è possibile effettuare drag-n-drop. Ad esempio si prende un contatto (stringa + codice) e si dragga nella griglia di sinistra in una data cella. In questo modo si evita la ripetizione della ricerca del nome.

Su Outlook funziona in questo modo prendendo le label del contatto e trasportandole nella griglia delle attività.

che ne pensi?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 01 Dicembre 2011, 19:52:36
Direi che e' un ottima idea  :ok:

Potremmo fare un evento Drag che carica come Drag.Source l'intera riga... poi nel drop decidi tu da che cella/celle attingere dati... che ne pensi?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 02 Dicembre 2011, 07:47:35
Direi che e' un ottima idea  :ok:

Potremmo fare un evento Drag che carica come Drag.Source l'intera riga... poi nel drop decidi tu da che cella/celle attingere dati... che ne pensi?

ottimo, questo da' all'utente max liberta' di scelta, ti fornisco qualche altra idea sulla griglia che vedi a destra...naturalmente meritevole di critica, come sempre:
1. la griglia di destra legge come al solito i dati da una sorgente recordset
2. l'evento click dovrebbe permettere la variazione al volo della singola cella
3. l'evento drag permette lo spostamento in altra griglia dei dati desiderati nella quantità desiderata (idea mutuata dalle tue risposte..)
4. l'idea di partenza è una velocizzazione della procedura di inserimento di dati in griglia, soprattutto nei casi in cui lo scorrimento del combobox risulti eccessivamente oneroso. Non mi risulta infatti che si possa peraltro limitare la visulizzazione della lista del combo ad un numero prestabilito di dati, ma posso sbagliarmi..)
5. la label della griglia di destra dovrebbe permettere sia il controllo del colore sottostante, sia il controllo sul carattere visualizzato (grandezza, allineamento, font, colore..). Sarebbe fantastico se la label potesse permettere la visualizzazione di un campo cosiddetto 'principale', situato in alto rispetto ad un campo secondario, idea sempre ripresa da Outlook..
6. formato grafico delle label, etched o raised
7. drag-ndrop a selezione multipla anche non continua, nel senso che se si draggano più grid-labels, si creano automaticamente piu' records (new)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 17 Dicembre 2011, 08:48:18
ho perso qualcosa... ho due campi in gridbox su cui effettuo il calcolo del totale con il codice:

Codice: [Seleziona]
Public Sub GridBox1_Total(Column As Integer, ColumnName As String)
Dim Value As String
  Value = Format$(Me.GridBox1.Columns[Column].Total, Me.GridBox1.Columns[Column].Format)
  If ColumnName = "campo1" Then
    Me.TextBox2.Text = Value
  Else If ColumnName = "campo2" Then
    Me.TextBox3.Text = Value
  Endif
End

se volessi sommare i due valori e visualizzarli in terzo textbox esterno al database dove piazzo il codice?

grazzzzzzzzie x la comprensione 'natalizia'!! :-*
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 17 Dicembre 2011, 10:26:13
Codice: gambas [Seleziona]
Public Sub GridBox1_Total(Column As Integer, ColumnName As String)
Dim Value As String
  Value = Format$(Me.GridBox1.Columns[Column].Total, Me.GridBox1.Columns[Column].Format)
  If ColumnName = "campo1" Then
    Me.TextBox2.Text = Value
    me.texbox4.text = me.textbox2.text + me.textbox3.text
  Else If ColumnName = "campo2" Then
    Me.TextBox3.Text = Value
    me.texbox4.text = me.textbox2.text + me.textbox3.text
  Endif
End


Ciao Andy, non ho provato ma credo che a grandi linee dovrebbe andare così, però devi vedere per la formatazione perchè textbox è testo.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 17 Dicembre 2011, 12:24:29
@Golia


ho risolto cosi' dichiarando:
Codice: [Seleziona]
private t1 as float
private t2 as float
e
Codice: [Seleziona]
Public Sub GridBox1_Total(Column As Integer, ColumnName As String)
Dim Value As String
  Value = Format$(Me.GridBox1.Columns[Column].Total, Me.GridBox1.Columns[Column].Format)
  If ColumnName = "dare" Then
      Me.TextBox2.Text = Value
      t1 = Me.GridBox1.Columns[Column].Total
      Me.TextBox4.text = Format$(t1 - t2, Me.GridBox1.Columns[Column].Format)
  Else If ColumnName = "avere" Then
      Me.TextBox3.Text = Value
      t2 = Me.GridBox1.Columns[Column].Total
      Me.TextBox4.text = Format$(t1 - t2, Me.GridBox1.Columns[Column].Format)
  Endif
End
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 17 Dicembre 2011, 15:54:26
Grande!  :2birre: :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 17 Dicembre 2011, 16:39:04
@Golia

stimolo la tua curiosità...sto facendo un programma di contabilità familiare in partita doppia!! Il GrandeMilio con gridbox ha scatenato la mia creatività!!


@Milio

Ti risottopongo il caso forse già visto di una griglia collegata a tabella composta da due soli campi, un campo hidden=true id e un campo descrizione. Sia che lo metto che primo che lo metto per ultimo, il campo id si vede.

Soluzione è aggiungere un altro campo, magari un campo testo note, che serve spesso.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 21 Dicembre 2011, 10:40:27
@Milio

Ti risottopongo il caso forse già visto di una griglia collegata a tabella composta da due soli campi, un campo hidden=true id e un campo descrizione. Sia che lo metto che primo che lo metto per ultimo, il campo id si vede.

Soluzione è aggiungere un altro campo, magari un campo testo note, che serve spesso.


Bho... controllero'...

Adesso sono dietro a creare una classe che installi codice sorgente di qualsiasi componente in qualsiasi progetto facendo anche eventuali aggiornamenti ai componenti standard che il componente installato utilizza e non presenti nel progetto....

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 22 Dicembre 2011, 06:32:20
@milio

è una finezza, sto' periodo viene prima il panettone!!! Il progetto delle sql grafiche che intenzione hai di farne?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 28 Dicembre 2011, 23:28:18
@ milio...scusa se ti asssillo con il debugging, ammesso che non sia una mia cappellata (cosa probabile..):

da' una guardata:
Codice: [Seleziona]
Inc Col_2
  With GridBox2.Columns[Col_2]
    .Hide = False
    .Type = Grid.Type.Field
    .DataType = Grid.DataType.float    
    .Field = "saldo"
    .Name = "saldo"
    .Text = "SALDO"
    .DefaultValue = 0
    .Format = "00.00"
    .Formatting.Count = 2
    .Formatting[0].Comparison = "=C(saldo)>-1"
    .Formatting[0].Formatting.Background = Color.DarkGreen
    .Formatting[0].Formatting.Foreground = Color.Black
    .Formatting[0].Formatting.Font.Bold = False
    .Formatting[1].Comparison = "=C(saldo)<-1"
    .Formatting[1].Formatting.Background = Color.red
    .Formatting[1].Formatting.Foreground = Color.Black
    .Formatting[1].Formatting.Font.Bold = False
    .w = 80
    .Alignment = 2
  End With


e
Codice: [Seleziona]
 With GridBox2
    .Expand = True
    .Color.RowAlternating = Color.RGB(230, 230, 230)
    .AutoDataType = True
    .GridOnly = True
    .TableName = "tbConti2"
    .LoadData(sqlcorrente)
    .ColorRowAlternating = True
    .AlwaysEditable = True ' sempre editabile
    .ReadOnly = False ' solo lettura
    .AlignmentHeader = 3
    .AutoNew = True '
    '.EnabledObjectLinked = True
  End With  

Possibile che dipenda dal tipo di formato di visualizzazione '00.00'?

In un altro caso ho notato come la formattazione , all'apertura della griglia, sulla prima riga non funzioni, salvo poiattivarsi premendo il tasto refresh.
Non so se dipende dal tipo di ordinamento del recordset...è una mia supposizione.

come è possibile?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 29 Dicembre 2011, 09:07:28
penso che sbagli il .format
Per il formato valuta prova così:
.Format = "$,0.00"
Per un numero dopo la virgola così:
.Format = ",0.0"
per 2
.Format = ",0.00"
Prova a vedere se è sufficente così  :ciao:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 29 Dicembre 2011, 11:51:21
@golia
mmm non penso dipenda dalla formattazione...


@andy
prova a caricare la nuova release... da prendere con le molle pero'... ho corretto degli errori sviluppando il mio progetto di gestione manutenzioni e anvuria nen di aver corretto un errore tirandone fuori altri :)

ps.

La proprietà gridBox.GridOnly l'ho tolta perche' non piu' utilizzata... quindi dovrai mettere mano al codice per eliminarne le righe che la richiamano...


fammi sapere
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 29 Dicembre 2011, 18:59:14
gridbox debugging

1. sezione 'Visualizzatore record': quando esegui una sql il primo campo ha la larghezza della finestra ed oscura la vista degli altri
2. sezione 'Colonna button': il bottone è grafico oppure creato con codice? Nel secondo caso dove si deve mettere le 'mana' x colorarlo?
3. Proprietà: gridBox.GridOnly, ho aggiornato all'ultima release di gridbox la griglia è correttamente visualizzata solo se do':

Codice: [Seleziona]
GridBox1.GridOnly = True

4. sezione GridBoxNavigator: la sezione di esportazione mi piace proprio.
5. sezione 'Tools': buttons OK ed Annulla, non funzionano, mi sembra
6. Formattazione condizionale: ora mi sembra ok per i numeri, per le stringhe mi fa questa cosa testimniata dall'allegato. Il colore della prima riga è blu, ma se premo refresh diventa del colore voluto. Allego anche il codice

Codice: [Seleziona]
 .Formatting.Count = 4
    .Formatting[0].Comparison = "=C(tipo)='spa'"
    .Formatting[0].Formatting.Background = Color.Green
    .Formatting[0].Formatting.Foreground = Color.White
    .Formatting[0].Formatting.Font.Bold = True
    .Formatting[1].Comparison = "=C(tipo)='spp'"
    .Formatting[1].Formatting.Background = Color.red
    .Formatting[1].Formatting.Foreground = Color.White
    .Formatting[1].Formatting.Font.Bold = True
    .Formatting[2].Comparison = "=C(tipo)='cee'"
    .Formatting[2].Formatting.Background = Color.Green
    .Formatting[2].Formatting.Foreground = Color.White
    .Formatting[2].Formatting.Font.Bold = True
    .Formatting[3].Comparison = "=C(tipo)='ceu'"
    .Formatting[3].Formatting.Background = Color.red
    .Formatting[3].Formatting.Foreground = Color.White
    .Formatting[3].Formatting.Font.Bold = True  


Complimenti sono piccoli errori che cmq non tolgono nulla alla qualità eccezionale del componente. Aggiorno i  miei software.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 02 Gennaio 2012, 19:12:43
@milio

VERSIONE UFFICIALE 3.0 DI GAMBAS+gridbox 2.99.177

MYZONE app:Su myZone mi esce un messaggio di mancato collegamento alla base dei dati, prima non usciva. Ma dopo il software parte. Ho dovuto commentare il codice sulla tua classe, allego modifica con numero di linea della gridbox.class (1309)

TELEMARKETING App: funziona ma mi esce un messaggio due volte con la scritta 'Void query' che non so proprio dove andare a modificare. Cosa fortissima, che non so spiegarmi, mi esce (stesso software) solo su un portatile, stessa versione di G3 , di software e stessa versione di gridbox :hard:

I messaggi scompaiono su entrambi i software retrocedendo alla 174.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 11 Gennaio 2012, 08:52:15
Milio ci sei? AUGURI prima di tutto!!

Ti segnalo questo strano comportamento del campo checkbox nella griglia: se dopo aver cliccato sul campo seleziono la barra di scorrimento con il campo check come ultimo campo della griglia), al momento del click sulla barra il controllo check visivamente si 'raddoppia'

Ulteriore domanda:
il campo check puo' riferirsi ad un campo booleano o ad un campo integer vero? Ho provato a creare un campo integer ma con il codice che segue e non mi da' errore: 

campo boolean con definizione boolean e valori -1 e 0:

Codice: [Seleziona]
Inc Col_d
With GridBox4.Columns
    .Hide = False
    .Type = Grid.Type.Field
    .Alignment = Align.Center
    .DataType = Grid.DataType.Boolean
    .Field = "effettivo"
    .Text = "EFFETTIVO"
    .Box.ValueCheck = -1
    .Box.ValueUncheck = 0
    .DefaultValue = 0
    .w = 80
    .Name = "fav"
 End With 

 
campo integer con definizione griglia boolean e valori 1 e 0:

 
Codice: [Seleziona]
Inc Col_d
  With GridBox4.Columns[Col_d]
    .Hide = False
    .Type = Grid.Type.Field
    .Alignment = Align.Center
    .DataType = Grid.DataType.Boolean
    .Field = "eff2"
    .Text = "eff2"
    .Box.ValueCheck = 1
    .Box.ValueUncheck = 0
    .DefaultValue = 0
    .w = 100
    .Name = "eff2"
  End With
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 12 Gennaio 2012, 15:26:36
mi viene un dubbio...di essere solo nel Forum in questi giorni!!! :P :P :P

altra considerazione, questa volta sul button all'interno della griglia. E' prevista / esiste la possibilità di 'agganciare' al button due immagini, una per l'evento click e una per l'evento release, per dare la sensazione di premere effettivamente il bottone?

non frustatemi.. :rotfl: :'(
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 12 Gennaio 2012, 15:53:49
Caro Andy....  :violent:

 ;D ;D ;D ;D

Stasera se i bimbi vanno a letto presto e io riesco a stare sveglio vedro' di rispondere a tutti i tuoi quesiti....
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 13 Gennaio 2012, 16:48:35
Caro Andy....  :violent:

 ;D ;D ;D ;D

Stasera se i bimbi vanno a letto presto e io riesco a stare sveglio vedro' di rispondere a tutti i tuoi quesiti....

i quesiti e le osservazioni nascono dallo sviluppo degli applicativi che utilizzano gridbox: myZone4, FamilyManager2 e Telemarketing2 quindi ogni tua osservazione non è solo ben accetta, ad ogni osservazione segue un grazie..
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 20 Febbraio 2012, 22:59:08
@Andy
.... i bimbi sono finalmente a letto  :P

Ti rimando ancora di qualche giorno perche' sto riaggiustando qualcosina nel componente....

Prometto che stavolta mi rifaro' vivo a breve :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Febbraio 2012, 10:52:11
E' come temevo... e allo stesso tempo è come avrei sempre voluto fare...

Sono inc....to  >:( e allo stesso tempo felice... (molto di più inc....to però)


r4503 | gambas | 2012-02-25 02:35:55 +0100 (sab, 25 feb 2012) | 48 lines
...
[GB.FORM]
* NEW: The new GridView is finished and replaces the old one now.
...

Questo, di fatto, sospende ogni mio progetto in corso... e specialmente GridBox...

Permettetemi di scrivere due parole: por#a tr##a!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Febbraio 2012, 12:03:51
Ho esaminato i sorgenti e devo ammettere che il buon Masini ha fatto le cose in grande...

Per adesso manca il metodo GridView.Rows.Insert e quindi la nostra GridBox non puo' funzionare...

Pero' ragazzi... i tempi di attesa nel caricamento dei dati si e' notevolmente ridotto...

Con GridBox carico 2.200.000 record in 6 secondi (in pratica e' il tempo di attesa del caricamento del result)
Con TableView deve aver utilizzato il 'trucco' del Limit sui record perche' il tempo di caricamento della stessa query e' praticamente 0...  :o

vi terro' aggiornati...


Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 27 Febbraio 2012, 17:45:00
Ciao Milio  :ciao:
Quindi per il momento, per noi utilizzatori felici di gridbox è meglio non aggiornare gambas!  ;D
Ciao facci sapere :2birre:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 27 Febbraio 2012, 20:18:26
Buone nuove  :D

Mi sono iscritto alla mailing list di gambas e mi ha risposto Masini dicendomi che si era semplicemente dimenticato di reinserire i metodi Insert() e Remove()...

Quindi nei prossimi aggiornamenti si potra' di nuovo riutilizzare la GridBox (a meno che non ci siano altri problemi...)

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 28 Febbraio 2012, 00:02:33
@milio

Uso una release dove ancora funziona, chi cambia?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 28 Febbraio 2012, 21:00:12
Ho preso i sorgenti di GridView e ho, per il momento, aggiunto delle cose che mancavano...
Il buon Benoit ha gia' inglobato i metodi GridView.Rows.Insert() e GridView.Rows.Remove() quindi GridBox e' tornata a funzionare...

Questa versione funziona anche non aggiornando Gambas all'ultima release...

Fatemi sapere

ps.

Non usate l'installatore dei sorgenti, devo ancora metterlo a posto ;)

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 28 Febbraio 2012, 21:05:28
Penso comunque che urga un bel restyling del tutto...

Me tocca lavurà  :coder:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 29 Febbraio 2012, 08:14:44
io con gridbox ho fatto programmi che mi servono, non posso non usarli, resto senza aggiornare. mi spieghi con esattezza cosa e' successo? :-*
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 29 Febbraio 2012, 08:18:33
@milio

se il componente è usato in molte applicazioni dovremo organizzare secondo me una pagina dedicata chiarendo definendo release e compatbilità:
versione g3 utlizzata
versione gridbox

e procedere con release beta e release stabile
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 29 Febbraio 2012, 11:33:24
Sta succedendo questo:

Benoit ha visto che con l'oggetto GridView (sia Qt che Gtk) gli portava via troppa ram se si parlava di caricarci su milioni di record...
Allora si è messo di buona voglia e ha realizzato una griglia utilizzando una ScrollArea e solo codice Gambas per la logica di funzionamento ed il refresh grafico (per quest'ultimo ha usato ancora la classe Draw e non Paint...  :-\)

Ha realizzato il tutto riportando le stesse proprietà e metodi del controllo precedente, ma ci sono delle piccole differenze nella gestione degli eventi che non mi permettono di far funzionare a dovere GridBox.

La cosa bella pero' e' che, appunto, la griglia e' stata scritta in gambas e non in c... quindi a metterci mano sopra è abbastanza semplice...

La mia idea era appunto di non creare piu' un componente che si appoggia ad un altro, ma prendere direttamente i sorgenti e modificarli affinche' si ottenga lo stesso risultato (GridBox appunto) ma con performance e personalizzazioni decisamente migliorate...

Quindi, per quanto riguarda la compatibilità delle prossime release di GridBox, o mi stravolgono l'oggetto ScrollArea, o la GridBox rimarrà sempre compatibile con qualsiasi versione di Gambas 3  ;)


Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 01 Marzo 2012, 00:13:21
Sta succedendo questo:

Benoit ha visto che con l'oggetto GridView (sia Qt che Gtk) gli portava via troppa ram se si parlava di caricarci su milioni di record...
Allora si è messo di buona voglia e ha realizzato una griglia utilizzando una ScrollArea e solo codice Gambas per la logica di funzionamento ed il refresh grafico (per quest'ultimo ha usato ancora la classe Draw e non Paint...  :-\)

Ha realizzato il tutto riportando le stesse proprietà e metodi del controllo precedente, ma ci sono delle piccole differenze nella gestione degli eventi che non mi permettono di far funzionare a dovere GridBox.

...sta succedendo questo:  >:(
...che non è più possibile dare questo tipo di istruzione: GridView1.Columns.Width = 12 !  :'(
Ora come fare per adeguare un precedente progetto ???  :hatecomputer:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 01 Marzo 2012, 14:36:15
...sta succedendo questo:  >:(
...che non è più possibile dare questo tipo di istruzione: GridView1.Columns.Width = 12 !  :'(
Ora come fare per adeguare un precedente progetto ???  :hatecomputer:

Ho rappresentato questa cosa a Minisini; il problema è stato risolto, ripristinando quella proprietà, con la revisione 4519.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 01 Marzo 2012, 16:51:55
Bene... un altro tassello si e' rimesso a posto...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 01 Marzo 2012, 17:14:28
Bene... un altro tassello si e' rimesso a posto...

Quello sì, però ho notato che, dopo aver impostato il numero e le dimensioni delle righe e delle colonne della GridView, in basso all'interno della GridView resta un ampio spazio bianco vuoto !  :mad:

Ho segnalato anche questo problema a Minisini, il quale lo ha risolto con la revisione 4522.  :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Marzo 2012, 11:52:41
bene bene.... adesso ti nominiamo ambasciatore della comunità italiana di gambas sula mailing list internazionale  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 02 Marzo 2012, 16:20:23
bene bene.... adesso ti nominiamo ambasciatore della comunità italiana di gambas sula mailing list internazionale  ;D

...non sono degno !   ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: sotema - 02 Marzo 2012, 21:19:29
ok per il titolo.
Ma niente auto blu e scorta!!! ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 02 Marzo 2012, 23:39:56
ok per il titolo.
Ma niente auto blu e scorta!!! ;D

Rinuncio alla scorta, ma non alla... escort !  :rotfl:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 03 Marzo 2012, 00:01:17
Io credo che Minisini dovrebbe crearsi un gruppo che provveda a comunicare alle varie Comunità Gambas esistenti in rete le variazioni che vengono apportate ormai quotidianamente al progetto Gambas. ...almeno quelle più importanti.
Se non avessi casualmente letto da Milio la modifica apportata all'oggetto GridView, non mi sarei accorto (almeno nel breve periodo) delle modifiche apportate e dei problemi esistenti !!!
Lo so che c'è una pagina del sito ufficiale dove vengono esposte le revisioni effettuate, ...una sorta di bacheca, ma se si tratta di modifiche di un certo rilievo, io credo debbano essere comunicate direttamente alle Comunità.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 03 Marzo 2012, 00:42:50
Citazione
bene bene.... adesso ti nominiamo ambasciatore della comunità italiana di gambas sula mailing list internazionale  Ghigno
Non sarebbe una brutta idea far "notare" GridBox a minisini   :ok:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 03 Marzo 2012, 11:16:57
Io credo che Minisini dovrebbe crearsi un gruppo che provveda a comunicare alle varie Comunità Gambas esistenti in rete le variazioni che vengono apportate ormai quotidianamente al progetto Gambas. ...almeno quelle più importanti.
Se non avessi casualmente letto da Milio la modifica apportata all'oggetto GridView, non mi sarei accorto (almeno nel breve periodo) delle modifiche apportate e dei problemi esistenti !!!
Lo so che c'è una pagina del sito ufficiale dove vengono esposte le revisioni effettuate, ...una sorta di bacheca, ma se si tratta di modifiche di un certo rilievo, io credo debbano essere comunicate direttamente alle Comunità.


proprio x questo motivo dovremmo usare gridbox con una release gb3 che sia sicuramente in linea con gridbox. ti diro' di +, a me non frega nulla delle modifiche apportate a g3 se i software che ho fatto non mi vanno +, mi interessa avere una release in linea con i lavori fatti.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 03 Marzo 2012, 17:11:06
a me non frega nulla delle modifiche apportate a g3 se i software che ho fatto non mi vanno +, mi interessa avere una release in linea con i lavori fatti.

...senz'altro ! Sono d'accordo; ma non si può, ovviamente, negare la possibilità - ed a volte la necessità - di apportare migliorie ed integrazioni (...quando sono utili). Quelle "sconvolgenti", cioè che appunto provocano problemi e non sono più in linea con i lavori fatti, andrebbero comunicate  :violent: ai siti che rappresentano le Comunità dei programmatori.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Ceskho - 05 Marzo 2012, 11:55:45
a me non frega nulla delle modifiche apportate a g3 se i software che ho fatto non mi vanno +, mi interessa avere una release in linea con i lavori fatti.

...senz'altro ! Sono d'accordo; ma non si può, ovviamente, negare la possibilità - ed a volte la necessità - di apportare migliorie ed integrazioni (...quando sono utili). Quelle "sconvolgenti", cioè che appunto provocano problemi e non sono più in linea con i lavori fatti, andrebbero comunicate  :violent: ai siti che rappresentano le Comunità dei programmatori.

È impegno dei programmatori rimanere aggiornati e non di chi sviluppa di informarci.....giustamente Minisimi mette a disposizione changelogs, commits e brevi news...poi sta a noi informaci...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 05 Marzo 2012, 16:33:28
È impegno dei programmatori rimanere aggiornati e non di chi sviluppa di informarci.....giustamente Minisimi mette a disposizione changelogs, commits e brevi news...poi sta a noi informaci...

Be'....non posso non ammettere, certo, la ragionevolezza di quanto hai scritto, Ceskho.  :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: alcresio - 07 Marzo 2012, 01:28:10
Sto provando su su tutte le modifiche della grid, release per release, e per ora corretto un baco se ne introduce un altro che era stato rimosso due release prima, e cosi via...
Però la sostanza migliora di release in release, a questo giro: Revision 4536, la velocità del rendering di centinaia di migliaia di righe è triplicata, peccato che la selezione delle righe abbia di nuovo dei problemetti...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 07 Marzo 2012, 02:40:48
Sto provando su su tutte le modifiche della grid, release per release, e per ora corretto un baco se ne introduce un altro che era stato rimosso due release prima, e cosi via...
alcresio... trattore  ;D
)⑇
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: alcresio - 08 Marzo 2012, 02:21:13
Sto provando su su tutte le modifiche della grid, release per release, e per ora corretto un baco se ne introduce un altro che era stato rimosso due release prima, e cosi via...
alcresio... trattore  ;D
)⑇
???
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 08 Marzo 2012, 14:14:32
Niente... è solo che a volte esce fuori di capa...  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: sotema - 08 Marzo 2012, 14:25:55
Cosa vuoi...è un artista!!! :rotfl:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 08 Marzo 2012, 16:31:26
Cosa vuoi...è un artista!!! :rotfl:

         


 ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 09 Marzo 2012, 16:20:52
seeee, vabbè...  :bad:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 09 Marzo 2012, 17:18:37
seeee, vabbè...  :bad:

             ✰                   ✰                  ✰                   ✰                ✰                    ✰                   ✰                                   ✰                ✰
     ✰                    ✰            ✰          ✰       ✰           ✰     ✰          ✰        ✰      ✰           ✰     ✰           ✰                    ✰    ✰           ✰     ✰             ✰     ✰              ✰           ✰                   ✰           ✰                    ✰       ✰           ✰     ✰          ✰        ✰      ✰      ✰      ✰           ✰     ✰           ✰     ✰           ✰            ✰      ✰           ✰     ✰        ✰      ✰           ✰     ✰          ✰    ✰           ✰     ✰          ✰     ✰         ✰      ✰           ✰     ✰       ✰      ✰           ✰     ✰      ✰      ✰           ✰     ✰       ✰      ✰     ✰           ✰     ✰          ✰        ✰           ✰     ✰      ✰    ✰           ✰     ✰          ✰        ✰            ✰     ✰          ✰        ✰        ✰    
✰          ✰               ✰                ✰                  ✰                        ✰                            ✰                   ✰                  ✰                   ✰                ✰                    ✰                   ✰                                   ✰                ✰
     ✰                    ✰            ✰          ✰       ✰           ✰     ✰          ✰        ✰      ✰           ✰     ✰           ✰                    ✰    ✰           ✰     ✰             ✰     ✰              ✰           ✰                   ✰           ✰                    ✰                   ✰                                   ✰                ✰               ✰          ✰       ✰           ✰     ✰                          ✰          ✰       ✰           ✰     ✰                     ✰          ✰       ✰           ✰     ✰    

.                                          
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: sotema - 13 Marzo 2012, 09:51:10
....fermatelo!!!
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 13 Marzo 2012, 12:07:36
oi... come' che si postano tutti questi messaggi fuori luogo?...   :nono: :ot:  :nono:

guardate che esiste un sezione del forum creata apposta... http://www.gambas-it.org/smf/index.php?board=20.0    :rotfl: :rotfl:
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: vuott - 13 Marzo 2012, 13:08:11
oi... come' che si postano tutti questi messaggi fuori luogo?...   :nono: :ot:  :nono:

E' per dare un po' di..... colore !   :P
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: md9327 - 13 Marzo 2012, 13:36:59
Se continui, ti chiamo per dare una mano a casa mia... giusto mi serve una mano alle pareti...  ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 01 Aprile 2012, 22:12:41
@milio


news sulla grid che non conosco?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Aprile 2012, 12:48:09
La GridView di gambas sembra funzionare in ogni sua parte... quindi, se vuoi, puoi anche aggiornare gambas :)

Io sto usando GridBox con l'ultima versione (4579) e funziona tutto a dovere... ho anche implementato con la colonna button il poter cambiare la picture, se ti interessa....

Devo ancora pero' aggiornare il progetto GridBox... per adesso sto andando avanti con il progetto di manutenzione macchinari e li ho la GridBox aggiornata...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 02 Aprile 2012, 15:04:51
La GridView di gambas sembra funzionare in ogni sua parte... quindi, se vuoi, puoi anche aggiornare gambas :)

Io sto usando GridBox con l'ultima versione (4579) e funziona tutto a dovere... ho anche implementato con la colonna button il poter cambiare la picture, se ti interessa....

Devo ancora pero' aggiornare il progetto GridBox... per adesso sto andando avanti con il progetto di manutenzione macchinari e li ho la GridBox aggiornata...

grazie come sempre, appena posso aggiornero', se dipendesse da me lascerei tutto allo stato in cui ho ora, è perfetto per le mie esigenze.
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 09 Maggio 2012, 19:11:16

Nuova release:

Aggiornamenti sulla gridview
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 09 Maggio 2012, 21:34:17

Nuova release:

Aggiornamenti sulla gridview

grande!! su gambas3 3.0.9 funge?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 09 Maggio 2012, 21:35:39
Prova... dovrebbe...    ;D
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 10 Maggio 2012, 18:40:38
Prova... dovrebbe...    ;D


non funge
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 10 Maggio 2012, 19:30:44
Cosa non funge? Che errori ti da?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 11 Maggio 2012, 08:27:08
Cosa non funge? Che errori ti da?

riga 30 'missing As in GridBoxPlus.class:30' in compilazione

Codice: [Seleziona]
Property Read ScrollW, ScrollWidth As Integer
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 11 Maggio 2012, 08:52:55
Capito... e' un modo di scrivere le proprietà sinonime (vedi .W con .Width) introdotte nella 3.1.0....

Che faccio? lo metto a posto o aggiornate gambas? :)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 11 Maggio 2012, 10:15:17
Capito... e' un modo di scrivere le proprietà sinonime (vedi .W con .Width) introdotte nella 3.1.0....

Che faccio? lo metto a posto o aggiornate gambas? :)

mi tocca aggiornare gambas, faccio una proposta, tenuto conto della popolarità del tuo lavoro: fare una pagina sul mio blog con le versione di gambas e la compatibilità con il componente, direi che si puo' partire da:

Gambas 3.0.9 - Gridbox 2.99.174

naturalmente sono le versioni dei software devono essere disponibili. Quasi quasi lo faccio che ne dici?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: splugenbrau - 11 Maggio 2012, 16:29:52
Alò..!? Ho letto di questo post solo ora:
é una magnifica idea di dotare le GridView e, magari anche le TableView
di campi con formule. Simile ai fogli di calcolo ma con in più
la possibilità di gestire centinaia di migliaia di record coi data base
semplicemente scorrendoli?!.
javascript:void(0);
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 11 Maggio 2012, 22:09:07

mi tocca aggiornare gambas, faccio una proposta, tenuto conto della popolarità del tuo lavoro: fare una pagina sul mio blog con le versione di gambas e la compatibilità con il componente, direi che si puo' partire da:

Gambas 3.0.9 - Gridbox 2.99.174

naturalmente sono le versioni dei software devono essere disponibili. Quasi quasi lo faccio che ne dici?

Si... è una buona idea... se hai voglia di farlo perche' no... :)

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 11 Maggio 2012, 23:13:23
Gambas 3.1.9 da svn=>non mi va e non riesco ad aprire gniente sono semidisperato >:(

Gambas 3.1.1. da yum=>gridbox mi da errori in apertura e tools non mi visualizza nulla(vedi immagini)
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 12 Maggio 2012, 00:09:04
ciao andy
Il tool di gridbox non va neanche a me, per il primo errore penso che non ti ha installato tutte le librerie
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 12 Maggio 2012, 10:50:04
ciao andy
Il tool di gridbox non va neanche a me, per il primo errore penso che non ti ha installato tutte le librerie

ciao, io ho risolto uso g3 versione 3.1.1 installata con yum su fedora16 e gridbox 2.99.174. g3 da svn mi da' problemi
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 12 Maggio 2012, 17:43:49
ma si apre anche il form tool?
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 12 Maggio 2012, 18:43:41
ma si apre anche il form tool?

REPOSITORY VERSIONI G3
http://sourceforge.net/projects/gambas/files/gambas3/

VERSIONE GRIDBOX

la versione gridbox 2.99.174 mi ha sempre funzionato, l'ultima uplodata da Milio non mi va, è la versione 2.99.180
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 12 Maggio 2012, 19:12:27
Non vedete il tool di installazione semplicemente perche'... lo tolto!  ;D

Avendo cambiato i percorsi delle cartelle, ho preferito momentaneamente toglierlo per non creare casini...
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 14 Giugno 2012, 23:30:08
Cambio di programma...  ;D

Come accennato nel post di QueryCreator ( http://www.gambas-it.org/smf/index.php?topic=1912.msg23946#msg23946 ) abbiamo deciso di continuare qui con la fusione dei due progetti... vedro' di rimetterci dentro tutti gli esempi e i tool per l'installazione dei sorgenti a breve (spero! :) )...

Inutile dire che il nuovo tool di installazione non sara' compatibile con le precedenti versioni di Gridbox anche perche', come gia' scritto sopra, ho dovuto spostare le cartelle di progetto sotto un unica cartella, in modo da aver piu' facile fare il processo di installazione...

riposto qui i sorgenti...


 
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 19 Giugno 2012, 00:22:40
Aggiunto un editor per la creazione di Query di tipo Insert.
L'editor facilita anche la creazione di codice gambas per l'eventuale inserimento della query nel metodo Connection.Exec()

Titolo: Re: Creazione componente: gb.gridbox
Inserito da: Golia - 27 Giugno 2012, 01:09:48
Dopo l'enorme lavoro di Milio arrivo io con i miei "esempietti"  :)
In allegato l'inizio del progetto di esempi "Biblioteca" (perdonate la fantasia  ;D)

Ci tengo a precisare che non ho scritto una riga di codice!! ne disegnato form!! ho fatto tutto con Query Creator.

(Vedi video http://www.youtube.com/watch?v=bCMEBcpmNv4&feature=youtu.be (http://www.youtube.com/watch?v=bCMEBcpmNv4&feature=youtu.be)
E' un pò come lavorare con Access, una volta capito il meccanismo, programmini così si fanno in 10 min se si ha già fatto il database, e per quanto riguarda creare il database..beh è in progetto, perchè se Milio dorme troppo poi stà male  ;),
Speriamo di arrivare fino in fondo, Query Creator sarà un ottimo tool per creare rapidamente gestionali
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: milio - 02 Ottobre 2013, 21:40:21
Ne e' passato del tempo....

Aggiornamento per versione 3.4.2 di gambas
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 15 Ottobre 2013, 22:36:49
Ne e' passato del tempo....

Aggiornamento per versione 3.4.2 di gambas


grazie!!! gridbox con la nuova versione di gambas mi da' questo errore , va cambiata la funzione
Titolo: Re: Creazione componente: gb.gridbox
Inserito da: andy60 - 06 Agosto 2017, 21:54:31
Ne e' passato del tempo....

Aggiornamento per versione 3.4.2 di gambas


ogni tanto ritorno, sono arrugginito, questa è l'ultima versione? Un caro saluto a tutti.

A