Gambas-it

Programmazione => Progetti degli utenti => Topic aperto da: md9327 - 21 Febbraio 2011, 23:37:23

Titolo: Classe CTable
Inserito da: md9327 - 21 Febbraio 2011, 23:37:23
Un salutone e un abbraccio a tutti.
Mi dispiace che non sono con voi da un bel pò di tempo, e ho anche notato che qualcuno mi ha pure cercato anche in altre bande.
Purtroppo la situazione non mi permette di avere molto tempo da dedicare al diletto ma, ad ogni modo, quel pochino che riesco a racimolare, penso sempre a questa banda di matti...  ;D

Comunque, e sempre sperando di poter ritornare a pieno regime, e come accennato, ho utilizzato qualche oretta la notte per scrivere qualcosina.

In allegato ho messo i sorgenti di una serie di classi e, in particolare, ho voluto riscrivere la classe TableView in modo da espanderne le sue potenzialità, particolarmente in fase di editing.
Preso spunto da qualche studio fatto in Java, ho riscritto la classe TableView, aggiungendo la possibilità di gestire più tipologie di dato, sia in fase di editing, sia in fase di rendering.
La cosa un pochino fastidiosa su cui ho penato un pochino è stata l'utilizzo in Gambas di alcune classi statiche non modificabile, quelle che nella documentazione iniziano con un punto, come appunto esistono nella GridView (che è una classe scritta in C++).
Dato che non volevo mettere le mani sui sorgenti in C++, oltre anche a motivi puramente didattici, ho preso i sorgenti di TableView e l'ho riscritta, utilizzando come base la classe UserControl.
Ad ogni modo, ho riscritto questa classe in modo da poter gestire graficamente più tipologie di dato, diversamente da quanto impostato nella classe originale TableView, aggiungendo vari ComboBox, ButtonBox, CheckBox, CurrencyBox, DateBox, DateTimeBox, IPAddressBox, MaskBox, NumberBox, PercentBox, SpinBox, TextBox e TimeBox. Oggetti che di norma si mettono in una form, e che possono essere sicuramente utili gestiti anche in una griglia di dati.
Molti dei componenti che ho menzionato sono stati da me creati, alcuni riscrivendo oggetti già presenti in Gambas, ecc.
Per poter gestire le classi nascoste, sono dovuto ricorrere a sistemi articolati, creando opportuni oggetti e gestendone gli eventi alla modifica di una qualsiasi loro proprietà. Questo mi ha permesso di gestire in modo dinamico le classi nascoste (es. ".GridViewData").

Sia il rendering (ovvero la presentazione del dato nella griglia), sia l'editing, vengono gestiti da opportune classi manipolate a livello di programmazione. Da queste è anche possibile derivarne di ulteriori aggiungendo ulteriori caratteristiche. La classe madre CTable gestirà le cose per voi, ma senza sapere cosa accade nelle sottoclassi.

Prima di procedere nella creazione della tabella (o griglia), è necessario creare una serie di colonne (a vostra discrezione) utilizzando per ognuna la classe CTableColumn e aggiungerle alla CTable attraverso le funzioni preposte. Per ogni colonna ho inserito anche la possibilità di renderla visibile o meno, questo perchè l'array dei dati potrebbe avere dei campi che devono essere mantenuti nascosti. Altre caratteristiche sono prese dalle proprietà .GridViewColumns e .GridViewColumn.
Ho anche aggiunto la funzione di sorting su singola colonna, che tiene conto del tipo e cerca di ottimizzare la procedura di sort.

Una volta definite le colonne, per visualizzare una rappresentazione dei vostri dati, basta passare a CTable un array di tipo Variant[] (righe), e in ogni elemento un'altro array di Variant[] (colonne).

Comunque, nel file compresso è presente anche una form di esempio. Non è proprio completa, ma dà un'idea delle funzionalità.

Nota per l'esperto di creazione classi di esportazioni (sapete chi...  :D ):
Nonostante abbia gestito le cose per poter creare classi esportabili, ho qualche problema nel caricarle come librerie esterne di altri progetti. Se hai tempo, magari gli dai un'occhiata, e vedi dove sbaglio.

NOTA IMPORTANTE!!!
La libreria è stata creata utilizzando Gambas3 e, nonostante i vari checkout dal repository, non mi ha dato problemi con le librerie, ma sicuramente ha altri problemi che spero risolvano. Devo dire che è migliorato in qualche cosina, specialmente riguardo lo sviluppo di applicazioni, ma di cose da fare ce ne sono... ;)

Ragazzi! Un salutone a tutti.

Citazione
[se volete scrivetemi direttamente alla mia mail, quella la leggo costantemente...]
Titolo: Re: Classe CTable
Inserito da: md9327 - 22 Febbraio 2011, 20:00:48
Nella classe CTable ho aggiunto la possibilità di selezionare ed evidenziare la singola colonna.
Titolo: Re: Classe CTable
Inserito da: md9327 - 23 Febbraio 2011, 21:25:06
Corretti alcuni bug, e aggiunte altri oggetti di rendering e editing.

Bye
Titolo: Re: Classe CTable
Inserito da: fsurfing - 23 Febbraio 2011, 21:50:07
a me da questo errore all' avvio :(

Titolo: Re: Classe CTable
Inserito da: md9327 - 23 Febbraio 2011, 22:07:52
Grazie fsurfing, sei sempre gentile nel trovare i miei errori... eheheheh

Scherzi a parte, sicuramente mi è sfuggita una libreria nell'elenco delle dipendenze.
Non ricordo dove MaskBox si trovi, dopo lo correggo, eventualmente puoi aggiungerlo per provare la libreria.

Thanks!!!
Titolo: Re: Classe CTable
Inserito da: md9327 - 23 Febbraio 2011, 22:11:08
Errata corrige!!!

La libreria gb.form è inclusa.
Mi pare strano, ma prova ad inserirla manualmente...
Titolo: Re: Classe CTable
Inserito da: fsurfing - 23 Febbraio 2011, 22:19:21
 :-[ 
forse sono io ch eho una versione di g3 troppo vecchia e non cè ancora la maskbox!
Titolo: Re: Classe CTable
Inserito da: Ceskho - 24 Febbraio 2011, 10:31:49
Ne approfitto per salutare l'amico md....spero che tu possa trovare un pò di respiro ora... ;)

Complimenti per il lavoro....non appena metto su G3 lo provo perchè sono interessatissimo...
Titolo: Re: Classe CTable
Inserito da: md9327 - 24 Febbraio 2011, 11:38:59
Ciao "brutto ceffo" !  ;D

Lo dico sempre, mò passa, mò passa, ma qui nun passa mai...

Comunque, riguardo a Gambas3, sicuramente il problema, ripensandoci, è dovuto alla versione scaricata. Io la scarico quando capita, ma la scarico... Devo dire che ad ogni scarico, qualche miglioria si vede...  :D

Ora ho in linea sia G3 che G2, la cosa è stata abbastanza semplice, visto che ho già tutte le librerie necessarie, che a suo tempo avevo installato sbattendomi su G2.

Al momento, a parte l'eliminazioni di alcune funzioni (a mio avviso utili), e il blocco improvviso e saltuario dell'ide, G3 porta sicuramente qualcosina di nuovo. Credevo però in qualcosa di più consistente.

Bè, alla prox.!

Un abbraccio a todos
Titolo: Re: Classe CTable
Inserito da: dex - 24 Febbraio 2011, 11:48:43
ciao md

ma la classe funziona solo su g3?

io ho un progetto che gira su g2, volendo inserire la classe che modifiche devo fare?
Titolo: Re: Classe CTable
Inserito da: md9327 - 24 Febbraio 2011, 13:55:00
E che ne sò? ...  :D

Bè, ho voluto provare la G3, e l'ho fatto creando questa classe.

Adesso non sò se funzionerebbe sulla G2, cosa che puoi provare creandoti un progetto e mettendoci dentro i sorgenti (solo le classi e le form).

Stasera magari ci provo, e poi ti dico...
Titolo: Re: Classe CTable
Inserito da: md9327 - 24 Febbraio 2011, 19:19:36
Altre implementazioni e correzioni.

Bye
Titolo: Re: Classe CTable
Inserito da: andy60 - 24 Febbraio 2011, 22:28:38
do' una guardata, anche se sto usando ancora g2 rispetto a g3, non comprendo la variazione di alcuni controlli. Grazie per la classe! :2birre:
Titolo: Re: Classe CTable
Inserito da: Ceskho - 25 Febbraio 2011, 11:18:42
Se qualcuno mi fa la cortesia di fare uno screenshot ad un form in cui funziona CTable, posso inserire l'immagine nell'articolo.

http://www.gambas-it.org/wp/?p=315

Grazie
Titolo: Re: Classe CTable
Inserito da: md9327 - 25 Febbraio 2011, 13:11:54
Per dex:

ho provato su G2 ma, a parte l'assenza di alcuni componenti che ho ricreato, ci sono molte proprietà di base (es. GridViw) che non sono presenti rispetto a G3.

Potrei pure lavorarci sopra, ma la cosa la vedo alquanto laboriosa.

Per cesko:

l'immagine in allegato è quella della form di esempio, inclusa nel tar.
Gli elementi, però, sono abbastanza, e non entrano tutti in un'unica foto.
Vedi se ti và bene...
Titolo: Re: Classe CTable
Inserito da: Ceskho - 25 Febbraio 2011, 15:06:11
Perfetto md...ho inserito l'immagine....

Però tu un giorno imparerai a scrivere il mio nick?  ;D
Titolo: Re: Classe CTable
Inserito da: md9327 - 26 Febbraio 2011, 01:35:03
Non ci penso nemmeno...  :P
Titolo: Re: Classe CTable
Inserito da: md9327 - 26 Febbraio 2011, 17:14:18
Altra aggiustatina al codice, alcune novità, e inseriti alcuni esempi per mostrarle.

Per ricapitolare, la libreria fornisce la classe base CTable, e una serie di classi e oggetti di contorno, ed essenziali (o quasi) al corretto utilizzo di CTable. A parte alcune classi necessarie a CTable, ho diviso le funzionalità di gestione della griglia/tabella in due blocchi distinti: editor e renderer, ovvero oggetti che gestiscono il dato in modalità di editing, e altri che ne gestiscono la presentazione a video. Alcuni di questi oggetti possono avere abilità di esecuzione, ovvero al doppio-click lanciare un'apposito evento Click, con cui è possibile effettuare alcune operazioni nel resto dell'applicazione, oppure anche di sola presentazione (es. un'etichetta senza alcuno scopo attivo).
Nella lista seguente l'elenco degli oggetti esportati dalla libreria e una nota sulla loro funzionalità.

CTableE' la classe principale, ovvero la griglia di gestione e presentazione dei dati. I dati da manipolare vengono forniti come array multidimensionale4 (righe,colonne), e possono essere di verso tipo, più o meno tutte le tipologie base gestite da Gambas (Integer, Date, Float, String).
CTableCellClasse usato da CTable per passare e gestire informazioni riguardanti una singola cella.
CTableColumnClasse usata per definire le proprietà di un'intera colonna (header e altro...). L'oggetto viene creato a parte e aggiunto poi alla CTable tramite le apposite funzioni.
CTableColumnsClasse usato da CTable per passare e gestire informazioni riguardanti le colonne della tabella.
CTableDataClasse usato da CTable per passare e gestire informazioni riguardanti una singola cella, in modalità rendering.
CTableRowClasse usato da CTable per passare e gestire informazioni riguardanti una singola riga.
CTableRowsClasse usato da CTable per passare e gestire informazioni riguardanti le righe della tabella.
CCellEditorClasse base per gli oggetti editor.
CCellButtonEditorDerivata da CCellEditor, permette di eseguire funzioni esterne tramite intercettazione dell'evento Click (ad esempio aprire una Dialog). Si presenta come un pulsante
CCellCheckEditorClasse di editing per valori Boolean tramite CheckBox
CCellColorEditorClasse per la selezione di colori tramite ColorBox.
CCellComboEditorClasse per la selezione di valori all'interno di una ComboBox (non editabile).
CCellCurrencyEditorClasse per la gestione di valori in virgola mobile.
CCellDateEditorClasse per la gestione di valori di tipo Date (solo anno, mese e giorno).
CCellDateTimeEditorClasse per la gestione di valori di tipo Date/Time.
CCellIPAddressEditorClasse per la gestione di indirizzi IP.
CCellMaskEditorClasse per la gestione di valori di tipo String tramite MaskBox.
CCellNumberEditorClasse per la gestione di valori di tipo Float tramite TextBox.
CCellPercentEditorClasse per la gestione di valori di tipo percentuale (0/100%).
CCellPictureEditorDerivata da CCellEditor, permette di eseguire funzioni esterne tramite intercettazione dell'evento Click (ad esempio aprire una Dialog). Si presenta con una immagine.
CCellProgressEditorClasse per la gestione di valori Float (compresi tra 0 e 1).
CCellSelectEditorClasse per la gestione di valori di tipo String tramite ButtonBox.
CCellSpinEditorClasse per la gestione di valori di tipo Integer tramite SpinBox.
CCellTextEditorClasse per la gestione di valori di tipo String tramite TextBox.
CCellTimeEditorClasse per la gestione di valori di tipo Time.
CCellRendererClasse base per gli oggetti di rendering.
CCellButtonRendererVisualizza una String (es. quella editata con CCellButtonEditor).
CCellCheckRendererVisualizza un valore Boolean.
CCellColorRendererVisualizza un valore Color.
CCellComboRendererVisualizza un valore String.
CCellCurrencyRendererVisualizza un valore Float in formato valuta.
CCellDateRendererVisualizza un valore Date.
CCellDateTimeRendererVisualizza un valore Date/Time.
CCellImageRendererVisualizza un'immagine.
CCellIPAddressRendererVisualizza un indirizzo IP.
CCellMaskRendererVisualizza una String nel formato definito nella Mask.
CCellNumberRendererVisualizza un Float con il numero di decimali stabilito.
CCellPercentRendererVisualizza una percentuale.
CCellPictureRendererVisualizza un'immagine.
CCellProgressRendererVisualizza un valore Integer tramite una barra colorata (0/100%).
CCellSelectRendererVisualizza un valore String.
CCellSpinRendererVisualizza un valore Integer.
CCellTextRendererVisualizza un valore String.
CCellTimeRendererVisualizza un valore Time.
CSelectAggiunge alcune opzioni alla classe Select di Gambas, utili per CTable.
CSortCostanti statiche per il sorting dei dati in CTable.
CTableHorizontalMoveColumnControlsPannello orizzontale con pulsanti di movimento per le colonne in una CTable. Il collegamento alla CTable avviene tramite la proprietà Table. L'oggetto può essere inserito in qualsiasi punto di una Form.
CTableVerticalMoveColumnControlsPannello verticale con pulsanti di movimento per le colonne in una CTable. Il collegamento alla CTable avviene tramite la proprietà Table. L'oggetto può essere inserito in qualsiasi punto di una Form.
CTableHorizontalMoveRowControlsPannello orizzontale con pulsanti di movimento per le righe in una CTable. Il collegamento alla CTable avviene tramite la proprietà Table. L'oggetto può essere inserito in qualsiasi punto di una Form.
CTableVerticalMoveRowControlsPannello verticale con pulsanti di movimento per le righe in una CTable. Il collegamento alla CTable avviene tramite la proprietà Table. L'oggetto può essere inserito in qualsiasi punto di una Form.

NOTA: alcuni degli oggetti di rendering sono stati creati pensando all'assonanza con le relative classi di editing. In alcuni casi il legame è molto stretto, per cui si consiglia di utilizzare per lo stesso dato la coppia renderer/editor.

Le classi di rendering e di editing le ho create cercando di coniugare l'aspetto grafico (es. i controlli utilizzati di base), e l'effettiva utilità pratica all'interno della griglia. Al momento, ho praticamente usato tutti i controlli, ma questo non preclude la possibilità di implementarne di nuovi, o di specializzati derivandoli da quelli già esistenti. A voi lascio la fantasia di crearne di nuovi.
La logica che ho implementato credo sia abbastanza malleabile da permettere di aggiungere ulteriori caratteristiche, senza dover necessariamente andare a mettere le mani sulla classe CTable. Come ho accennato nel primo post, l'idea è derivata dall'ambiente java e dall'esperienza e lo studio delle librerie utilizzate da questo linguaggio, e cercando di trasferirne la tecnologia anche su Gambas.
E' ovvio che alcuni limiti ci sono, per cui al momento la grafica è quella che è...

Bye
Titolo: Re: Classe CTable
Inserito da: andy60 - 01 Marzo 2011, 11:13:20
E che ne sò? ...  :D

Bè, ho voluto provare la G3, e l'ho fatto creando questa classe.

Adesso non sò se funzionerebbe sulla G2, cosa che puoi provare creandoti un progetto e mettendoci dentro i sorgenti (solo le classi e le form).

Stasera magari ci provo, e poi ti dico...

sono interessato anche io...stto ancora sviluppando sotto g2, anche xche' alcune cose di g3 non le sopporto proprio
Titolo: Re: Classe CTable
Inserito da: Golia - 01 Marzo 2011, 12:56:34
Ciao Md9327!! sono contento di rileggerti  :2birre:
Ho dato un'occhiata veloce al tuo progetto, ho poco tempo in questo periodo...
Mi sembra che sia molto simile (correggimi se sbaglio) al progetto di milio, GridBox.
Hai mai provato questo componente? Dico questo perchè magari invece di 2 progetti simili si potrebbe fare un unico megaprogetto.
Questo è solo il mio pensiero, dimmi se sbaglio.

Intanto ti auguro di continuare serenamente con i tuoi progetti
Ciao  :2birre: :2birre:
Titolo: Re: Classe CTable
Inserito da: md9327 - 01 Marzo 2011, 13:44:34
Ciao Golia,

bè, siamo nello stesso binario... ma morto... ehehehe

Scherzo, no, faccio ammenda ma non ho mai dato uno sguardo a GridBox, anche se ogni tanto ne leggevo i post.
In effetti, poi ci ho pensato ricordandomi di quel progetto, ma siccome dire che sono fuso e dire poco, ormai avevo messo in piedi la cosa e sono andato avanti.

Comunque, dietro cospargimento di cenere sul capo, provvederò quanto prima a scaricarmi GridView, così da vederne le funzionalità e dove sono arrivati.

Ma, a parte questo, la mia idea iniziale è stata quella di costruire una serie di librerie, in particolare legate al database. Nella fattispecie, e in un prox futuro, espanderò la CTable per gestire tabelle (e viste) su db. Infatti, ho già pronta una nuova libreria CDatabase che, seppur basandosi sulle classi Gambas, permette di gestire in maniera più autonoma l'interazione con i database.

Appena ho un attimo posto anche questa.

Dopodiche penserò ad espandere CTable, aggiungendo anche controlli grafici per il movimento, la paginazione, la gestione (inserimento, modifica e cancellazione), e via dicendo.

Avevo fatto stà cosa con java, e mò la riporterò anche su gambas, con l'aggiunta dell'esperienza fatta con pgDesigner... (quest'ultima dovrò prima o poi renderla ufficiale, perchè ormai è terminata...).
Titolo: Re: Classe CTable
Inserito da: andy60 - 01 Marzo 2011, 23:07:48
A nome di Tutti un grazie grande come un casale in Toscana ...è doveroso
Titolo: Re: Classe CTable
Inserito da: md9327 - 02 Marzo 2011, 21:48:54
Ho aggiunto un'altro controllo: CCellTextAreaEditor

Questo controllo, in edit, apre un piccolo pannello con una TextArea, che permette di inserire testi complessi, diversamente dalla TextBox. Date le caratteristiche di questo controllo, nel pannello sono presenti due pulsanti: save e cancel, rispettivamente salvano il testo modificato o annulla la modifica. Al termine l'editor viene chiuso.
Al momento le dimensioni del pannellino sono fisse, poi penserò ad aggiungere le proprietà adatte, anche se comunque è possibile sovrascrivere il metodo Show(), modificando opportunamente le dimensioni.
Ho anche fatto in modo che il pannellino rientri in qualche modo nell'area della CTable, se questo viene rilevato (es. l'editing sull'ultima colonna della CTable). Ovviamente è soggetto a correzione, nel caso l'area della CTable sia troppo piccola (sarebbe possibile, ovviamente). Ci penserò su...

Bye
Titolo: Re: Classe CTable
Inserito da: andy60 - 03 Marzo 2011, 19:41:59
a me da questo errore all' avvio :(



anke a me stesso errore, anche con l'ultima versione uplodata da md, pero', ricompilando g3, l'errore se ne e' andato:-)!!
Titolo: Re: Classe CTable
Inserito da: Taurus dei miracoli - 03 Marzo 2011, 20:22:13
Ho provato ad implementare il componente in un progetto ma non sono riuscito... :hatecomputer:
...come devo fare? :(
Titolo: Re: Classe CTable
Inserito da: md9327 - 04 Marzo 2011, 09:45:33
Al momento la libreria è utilizzabile includendola direttamente nel progetto.

L'unico oggetto grafico che è possibile aggiungere in una Form è la CTable, gli altri oggetti, seppur visibili nella toolbar di gambas, non sono gestiti all'interno dell'ide. La codifica deve essere effettuata a livello di codice, ed è per questo che all'interno ho lasciato degli esempi.

La cosa che potete provare, per prima cosa, è provare direttamente gli esempi allegati. Se funzionano, significa che la versione gambas3 è corretta, altrimenti è inutile utilizzarla (ricordo che gambas3 è ancora in fase di sviluppo...).

Comunque, gli aggiornamenti che compilo, mi danno anomalie diverse ogni volta, ma in particolare con l'ide. Una cosa fastidiosa che ho notato è che a volte non intercetta gli errori, fermandosi di blocco senza dire nulla. Solo inserendo una CATCH la cosa viene gestita (parlo sempre all'interno dell'ide).
Inoltre, spesso e volentieri l'ambiente ide và in crash e sparisce, come anche la funzione di autocompletamento.

Ovviamente queste anomalie sono comprensibili...

Fatemi sapere se almeno gli esempi funzionano.
Titolo: Re: Classe CTable
Inserito da: andy60 - 12 Marzo 2011, 08:28:14
@md***

Ciao Luigi mi chiedevo cosa pensi delle seguenti caratteristiche:

1. sort per colonna con un piccolo bottone sulla riga delle intestazioni. Sarebbe molto utile.
2. possibilità di cliccare con il tasto dx del mouse su una singola intestazione e di far scomparire/comparire una colonna

Sempre un caro saluto :2birre:

Titolo: Re: Classe CTable
Inserito da: md9327 - 13 Marzo 2011, 15:02:17
Ciao Andy,

1. il sort è già presente, basta il doppio click sull'intestazione. Ovviamente è valido solo se i dati sono sortabili (una Picture ovviamente no)
2. la funzione può essere eseguita utilizzando l'evento ColumnClick, tramite la cui intercettazione puoi attivare l'hide della colonna.

Non ho implementato menu popup, appunto per lasciare libero arbitrio allo sviluppatore. I metodi ci sono, come anche le proprietà adatte. Implementare un qualcosa di troppo specializzato, credo sia un pò limitativo.

Nella prox, cercherò di implementare ulteriori controlli, legati a CTable che, come per i pulsanti di movimento (inclusi nella libreria), permettono di agire direttamente sui dati della griglia (es. insert, update, delete, ecc.). A seguire penso di aggiungere alcune funzioni che permettono di collegare un db alla CTable. La classe CDatabase l'ho preparata apposta per questo, anche se non è completamente terminata.
Titolo: Re: Classe CTable
Inserito da: andy60 - 13 Marzo 2011, 21:18:20
Ciao Andy,

1. il sort è già presente, basta il doppio click sull'intestazione. Ovviamente è valido solo se i dati sono sortabili (una Picture ovviamente no)
2. la funzione può essere eseguita utilizzando l'evento ColumnClick, tramite la cui intercettazione puoi attivare l'hide della colonna.

Non ho implementato menu popup, appunto per lasciare libero arbitrio allo sviluppatore. I metodi ci sono, come anche le proprietà adatte. Implementare un qualcosa di troppo specializzato, credo sia un pò limitativo.

Nella prox, cercherò di implementare ulteriori controlli, legati a CTable che, come per i pulsanti di movimento (inclusi nella libreria), permettono di agire direttamente sui dati della griglia (es. insert, update, delete, ecc.). A seguire penso di aggiungere alcune funzioni che permettono di collegare un db alla CTable. La classe CDatabase l'ho preparata apposta per questo, anche se non è completamente terminata.

cool
Titolo: Re: Classe CTable
Inserito da: md9327 - 14 Marzo 2011, 20:15:19
In questa versione ho aggiunto altri due controlli:

CTableHorizontalEditControls
CTableVerticalEditControls

che sono due panelli contenenti i pulsanti per le azioni di modifica della CTable: Add, Edit e Delete.
Come per quelli di movimento, li ho separati in due per posizionamento: orizzontale o verticale.
Diversamente però da quelli di movimento, è necessario intercettare gli eventi dei pulsanti (vedi esempio allegato), e agire in modo da aggiornare l'array dati (vedere sempre esempio per come fare).

Bye
Titolo: Re: Classe CTable
Inserito da: andy60 - 17 Marzo 2011, 11:16:00
Questo lavoro che stai facendo penso sia utilissimo, vedo di fare dei post sul blog, esempi ed help, poi giro il tutto per il giornalino. La gestione della tabella con all'interno anche i checkbox permette di implementare maschere molto simili a quelle che ho fatto con speedCRM su Access (un crm professionale per gestire l'attività dei consulenti finanziari).
Titolo: Re: Classe CTable
Inserito da: md9327 - 18 Marzo 2011, 19:59:31
Questo mi fà piacere, vuol dire un lavoro che non và a vuoto.

Pensa che la spinta è stata proprio quella della mancanza del controllo CheckBox nell TableView...  :D

Comunque, ora è tutto all'interno della nuova CLib...
Titolo: Re: Classe CTable
Inserito da: andy60 - 19 Marzo 2011, 17:42:59
Ti allego il software che vorrei tradurre under gambas, capirai xche' mi piace il tuo lavoro ;) cmq al contrario di access, con gambas non faro' un software mdi anke perche' non penso possa farsi.
Titolo: Re: Classe CTable
Inserito da: md9327 - 19 Marzo 2011, 18:21:32
Scusa andy, ma le immagini mi sembra si riferiscano ad un progetto Access, o sbaglio?
Vuoi realizzare una cosa del genere, o è per avere un'idea delle possibilità di implementazione di CTable?
Titolo: Re: Classe CTable
Inserito da: andy60 - 19 Marzo 2011, 18:33:21
Scusa andy, ma le immagini mi sembra si riferiscano ad un progetto Access, o sbaglio?
Vuoi realizzare una cosa del genere, o è per avere un'idea delle possibilità di implementazione di CTable?

ctable mi sara' molto utile x implementare in gambas quella fom con i check box che ho postato e che si riferisce ad un app access
Titolo: Re: Classe CTable
Inserito da: md9327 - 20 Marzo 2011, 17:18:54
Ha, ok... bè, mi davvero piacere!
Titolo: Re: Classe CTable
Inserito da: andy60 - 20 Marzo 2011, 23:56:39
Ha, ok... bè, mi davvero piacere!

prima di questo porting sto accelerando il rifacimento di myZone per gambas3...indovina cosa ho dovuto disattivare nella nuova versione....pdf report...
Titolo: Re: Classe CTable
Inserito da: md9327 - 21 Marzo 2011, 12:23:41
Prova a prendere l'ultima versione di CLib, in cui ho messo la versione CPdfWriter, opportunamente convertita per Gambas3.

Bye
Titolo: Re: Classe CTable
Inserito da: andy60 - 21 Marzo 2011, 21:29:42
Prova a prendere l'ultima versione di CLib, in cui ho messo la versione CPdfWriter, opportunamente convertita per Gambas3.

Bye

se non stai a dieta mi farà piacere offrirti na birra sul serio, prima o poi, grazie di cuore :2birre:
Titolo: Re: Classe CTable
Inserito da: md9327 - 22 Marzo 2011, 15:01:31
Dieta?!? MAI!!! E poi non sono grasso... un pò di pancetta, ma data dall'età...  :P

Per la birra sono sempre pronto, se poi è scura ... mejo!
Titolo: Re: Classe CTable
Inserito da: andy60 - 22 Marzo 2011, 15:04:42
Dieta?!? MAI!!! E poi non sono grasso... un pò di pancetta, ma data dall'età...  :P

Per la birra sono sempre pronto, se poi è scura ... mejo!

ti scrivo in pvt