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

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #60 il: 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

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #61 il: 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

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #62 il: 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 ;)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #63 il: 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 ;)
« Ultima modifica: 21 Aprile 2010, 14:15:10 da milio »

Offline Will32

  • Maestro Gambero
  • ****
  • Post: 273
  • Evviva Linux e la Programmazione
    • Mostra profilo
    • TuttoComputer
Re: Creazione componente: gb.gridbox
« Risposta #64 il: 23 Aprile 2010, 18:43:10 »
Allora, a che punto siamo ??  :P

Visita le comunità di Gambas, programma e diventa nostro amico :2birre:

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #65 il: 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 :)


Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #66 il: 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?

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Creazione componente: gb.gridbox
« Risposta #67 il: 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...

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #68 il: 26 Aprile 2010, 12:01:05 »
Potresti creare un campo index o roba simile...

In che senso ?

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Creazione componente: gb.gridbox
« Risposta #69 il: 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....

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #70 il: 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


Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #71 il: 26 Aprile 2010, 15:06:15 »
ha, dimenticavo  :D , il pacchetto si chiama gambas2-gb-gridedit

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.271
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #72 il: 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? :( )

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Creazione componente: gb.gridbox
« Risposta #73 il: 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

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Creazione componente: gb.gridbox
« Risposta #74 il: 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...