come vaccio a creare una nuova riga, sapere che riga è e comunicarlo all'altro form in modo che quando deve poi salvare sappia su quale riga.
quando si dblclick su una riga: come sapere su quale riga si è cliccato e a quale id corrisponde e comuncarlo all'altro form in modo che sappia dove deve poi andare a salvare
quando si salva come posso fare in modo che salvi sulla riga giusta?...
il problema principale è comunicare continuamente su quale riga si sta lavorando...
Cerco di rispondere con ordine alle 4 domande:
1) Mi sembra di capire che le righe della griglia riportano i record del DB. nella stessa sequenza di lettura dal DB. stesso, perciò
Per creare una nuova riga dovrai rilevare, se no lo sai già, il n° di righe componenti la glriglia:
ripetere l'istruzione di dichiarazione del n° di righe:
Per sapere qual'è l'ultima riga aggiunta basta togliere 1 a ITotRighe, in modo da sapere l'esatto puntamento alla riga di riferimento del momento.
La 2
a parte della domanda è ripetuta nella domanda successiva, perciò rispondo dopo.
2)
iNuRiga=grid_db.row 'estrai il n° di riga sulla quale hai cliccato (1 o 2 volte non importa).
Tieni conto poi che iNuriga sarà uguale al numero di riga, a partire dalla prima superiore, diminuita di uno (per riga n.8, InuRiga=7)
Per comunicare il contenuto di iNuriga all'altro Form devi solo scegliere:
1a) definire iNuriga come public nelle dichiarazioni della Form di partenza (Form1), di modo che da una procedura qualsiasi della Form n.2 puoi andarlo a prelevare con:
1b) dichiararare la variabile in un modulo come public in modo che sia vista da tutto il programma:
Public Sub Modulo_1()
Public iNuRiga as integer
End
In questo caso però nella Form contenente la griglia dovrai valorizzarla con
Modulo1.iNuRiga = rid_db.row
Per leggerla, farai:
1c) dichiarare la variabile in una nuova Classe come Public dove andrai a scrivere o leggere a tuo piacimento.
Nuova Classe = Variabili_Comuni
Public iNuRiga as integer
Public Function Usa_iNuRiga(VarInput)
iNuRiga = VarInput
End
Nella Form1 scriverai:
Variabili_Comuni.Usa_iNuRiga(rid_db.row)
mentre nella Form2, la leggerai con:
iIndRiga = Variabili_Comuni.iNuRiga
Per ora non dispongo di Gambas, quindi non ho potuto verificare tutto quanto ho scritto sopra, ma dovrebbe essere tutto come ho indicato.
3) Per salvare i dati sulla Riga corretta, devi riprendere, per es. il valore di Variabili_Comuni.iNuRiga.
Perciò nella Form1:
iRg = Variabili_Comuni.iNuRiga
grid_db[iRg,0] dato1
grid_db[iRg,1] dato2
--- bla --- bla --- bla ---
grid_db[iRg,n] daton
4) Per conoscere in quale riga sei posizionato, là dove ne avrai bisogno, non dovrai fare altro che ripetere l'istruzione vista nella risposta 2)
Se è tutto chiaro, vuol dire che ho risposto bene, se invece non dovesse essere così, ti conviene metterti a stuidiare un bel pò prima di ordinare il prossimo piatto.
P.S.
Un consiglio. Se e quando ti capiterà di affrontare più argomenti, spalmali in successione, risolvendoli uno dopo l'altro. Potrai ricevere risposte più ragionate e quindi più dettagliate. Questa volta ho sbagliato anch'io. Avrei dovuto rispondere solo alla prima domanda, già sufficientemente articolata, rimandando la discussione delle altre alla chiara conclusione della prima.