Autore Topic: [RISOLTO]Editare Tableview  (Letto 1787 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
[RISOLTO]Editare Tableview
« il: 17 Novembre 2009, 21:28:32 »
Ciao raga

sono alle prese con l'ennesimo problema e mi serve un vostro aiuto.

ho una tableview che con edit riesco ad editare le singole celle, ma appena ne esco i dati vengono cancellati.

come si fà a rendere permanenti i dati inseriti?

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Editare Tableview
« Risposta #1 il: 17 Novembre 2009, 22:56:02 »
Non ho mai usato TableView, però penso che per memorizzare i dati devi comunque metterli nel database.
Interessa anche a me, quando ho tempo provo a guardare nel frattempo se risolvi fammi sapere

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Editare Tableview
« Risposta #2 il: 17 Novembre 2009, 23:01:05 »
il problema è proprio l'immissione dei dati

io dovrei usare tableview per immettere i dati e poi salvarli nel database.

ora caricarli o salvarli nel database non è un problema, ma l'issione si, la cosa strana è che fa immettere dati ma non li conserva quando la cella perde il focus

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Editare Tableview
« Risposta #3 il: 17 Novembre 2009, 23:07:16 »
Non so come funziona, se si jnterpreta come una gridview che ogni riga è un record e che ogni colonna è un campo ad ogni spostamento basterebbe aggiornare il database...non saprei
Certo che sarebbe prorpio comodo inserire i dati così

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Editare Tableview
« Risposta #4 il: 17 Novembre 2009, 23:16:33 »
per caricare i dati tableview funziona come GridView, quindi anche salvarli è altrettanto semplice.

vedi esempio

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Editare Tableview
« Risposta #5 il: 18 Novembre 2009, 23:24:44 »
Interessante... provo a vedere meglio collegandomi al database, ..quando ho un pò di tempo :-D  se risolvi fammi sapere , ciao

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Editare Tableview
« Risposta #6 il: 18 Novembre 2009, 23:29:14 »
la soluzione in parte la conosco, è la stessa che usavo con visualbasic per inserire i dati nelle griglie, soluzione un pò macchinosa e laboriosa.
intercettare i tasti caricarli in una stringa e scaricarli nella cella

pensavo che con tableview sarebbe stato più semplice.

cmq ti tengo aggiornato

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Editare Tableview
« Risposta #7 il: 19 Novembre 2009, 01:57:19 »
Ora non mi sono messo a guardare nella doc, ma penso che la conferma delle variazioni fatte in una cella, sia da intercettare con un evento (magari un lostfocus). Dopodiche, il passo successivo credo sia abbastanza semplice.

Forse ho capito male, ma credo che intercettare la pressione dei tasti, sia un pò artificiosa e lenta... ma forse ho capito male...

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Editare Tableview
« Risposta #8 il: 19 Novembre 2009, 14:51:22 »
@ md9327

no non hai capito male, l'intecettazione dei tasti era una procedura che usavo in visualbasic,  nelle griglie dove non era possibile inserire direttamente nelle celle.

tableview è diverso permette l'inserimento.

avevo pensato pure io al lostfocus, solo che mi chiedevo come fosse possibile avere l'indirizzo della cella?

ho considerato anche last, ma non so se le celle della tableview vengono considerate come gruppo.
appena ho un pò di tempo mi metto all'opera.

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Editare Tableview
« Risposta #9 il: 19 Novembre 2009, 22:27:41 »
In teoria io farei così
Carico i dati dal database nella griglia, in più metto una riga vuota. Se il daatabase è vuoto, solo la riga vuota. ad ogni spostamento aggiorno il database e ricarico la griglia, se aggiungo qualcosa nella riga vuota, aggiungo un record al database e quando ricarico aggiunge sempre un'altra riga... :-?  credo sia così..

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Editare Tableview
« Risposta #10 il: 19 Novembre 2009, 23:13:58 »
Perdona, ma il tuo discorso mi ha incasinato il cervello... :-)
...forse è colpa dell'ora...

La cella su cui sei puntato, si può risolvere interrogando Row e Column, che dovrebbero riportati la cella corrente. Stessa cosa con la posizione del mouse, credo ci siano le funzioni che permettono di decodificarla in coordinate testuali.

COmunque, dovresti provare con l'evento Change, che forse si scatena quando il contenuto cambia (es. con il tasto enter).

A suo tempo, avevo creato un piccola logica che, come già fatto in altri linguaggi, utilizzava un campo di testo, che appariva esattamente sulla cella desiderava, quando volevo modificarla, e scompariva alla fine. Questo, intercettando solo determinati tasti, mi permetteva di capire quando volevo uscire, fare le dovute validazioni, le conversioni, e infine aggiornare la cella della griglia.

Ad oggi non uso neanche più questo sistema, ma non uso neppure il sistema fornito da GridView, preferendo logiche più semplici, che non cercano di utilizzare lo stesso controllo per tutto.

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Editare Tableview
« Risposta #11 il: 19 Novembre 2009, 23:53:57 »
@golia

considera che con il tempo il database aumenta molto di dimensioni e in questo caso caricare di continuo dal database sovraccarica inutilmente le risorse.

la soluzione è più semplice nell'evento keypress o change si carica in una variabile il contenuto della cella, nell'evento lostfocus o leave si scarica la variabile nella cella.

per ora è pura teoria non ho avuto modo di verificare

@md9327

Codice: [Seleziona]
A suo tempo, avevo creato un piccola logica che, come già fatto in
 altri linguaggi, utilizzava un campo di testo, che appariva esattamente
 sulla cella desiderava, quando volevo modificarla,
e scompariva alla fine.


avevo fatto la stessa cosa ma con le combo, le facevo diventare visibili solo quando mi trovavo su alcune celle e scomparivano all'uscita.
qui dovevo fare la stessa cosa ed avevo cominciato con una griglia, poi ho visto tableview e pensavo che fosse più semplice.

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Editare Tableview
« Risposta #12 il: 20 Novembre 2009, 01:29:43 »
raga risolto

basta aggiungere:

Codice: [Seleziona]
PUBLIC SUB TableView1_Save(Row AS Integer, Column AS Integer, Value AS String)

 TableView1[row, column].text = value

END

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Editare Tableview
« Risposta #13 il: 20 Novembre 2009, 09:25:51 »
@md9327
Citazione
Perdona, ma il tuo discorso mi ha incasinato il cervello...

 :-) si si, ormai non mi capisco più neanch'io :-)

@desadex
Faresti un'esempietto?

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: Editare Tableview
« Risposta #14 il: 20 Novembre 2009, 14:39:39 »
@Golia

prova questa tableview funzionante