It is currently 7 June 2025, 15:24 Advanced search

Esiste un metodo diretto per bloccare editing sul record ?

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

Esiste un metodo diretto per bloccare editing sul record ?

Postby r.menoncin » 19 January 2011, 8:34

Ciao a tutti.

Ho questa problematica: sono in editing su una griglia (immaginaniamo le righe di un ordine).

Devo bloccare la modifica delle celle sulle righe CHIUSE e sbloccarla sulle APERTE.

Attualmente intervengo sull'evento OnChangeRow e invoco il metodo SetEnabled per ogni campo.

E' corretto così o esiste un modo più diretto ?

Grazie

Roby
r.menoncin
 
Posts: 23
Joined: 29 October 2010, 14:20

Re: Esiste un metodo diretto per bloccare editing sul record

Postby r.bianco » 19 January 2011, 11:17

Penso sia più appropriato usare On Dynamic Properties del pannello.
only work and no play makes jack a dull boy
r.bianco
 
Posts: 4979
Joined: 8 November 2010, 16:46

Re: Esiste un metodo diretto per bloccare editing sul record

Postby g.lanzi » 25 January 2011, 14:05

Come suggerisce Riccardo, l'evento da usare è l'OnDynamicProperties. Però c'è qualcosa che si può aggiungere.
Effettuando il controllo nell'OnDynamicProperties non viene presa in considerazione la riga corrente, ma l'ultima attualmente visibile. Questo non è né un bene né un male, ma occorre valutare quale evento usare a seconda dell'effetto che si vuole ottenere.

L'evento di OnDynamicProperties è un evento ricorrente che permette di modificare le proprietà delle singole celle della lista. Quando si imposta campo.enabled = false lo si imposta solo per una cella. Per la prossima riga il valore predefinito rimane quello di design time, o quello specificato in un evento non ricorrente come form.Load.
L'evento di OnChangeRow è invece indicato per modificare le proprietà di un bottone o di un campo fuori lista, perché questi ultimi sono legati alla riga corrente. Effettuando campo.enabled = false viene disabilitata l'intera colonna, non la singola cella. Quando si modifica una proprietà di campo in un evento non ricorrente come questo è indispensabile che il codice rimetta anche le cose a posto.


Riassumendo:
1) onDynamicProperties per modificare le celle, della tabella o del dettaglio non importa in base al valore della riga di appartenenza
2) onChangeRow per modificare tutta una colonna o per cambiare le proprietà di un oggetto non ricorrente, come un bottone, a seconda della riga selezionata.
Giuseppe Lanzi
Director of Support services
Pro Gamma S.p.A.
User avatar
g.lanzi
Pro Gamma
Pro Gamma
 
Posts: 3504
Joined: 29 September 2010, 10:24
Location: Bologna


Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: No registered users and 39 guests

cron