Scopo
Questa funzione permette di identificare questo campo fra tutti quelli dello stesso pannello.
Può essere usata, ad esempio, per sapere per quale campo di pannello è stato notificato l'evento di OnUpdatingRow.
Sintassi
int pfidx = 0 // Indice campo di pannello
//
pfidx := Pannello.Campo.Me()
//
pfidx := Pannello.Campo.Me()
Argomenti
Questa funzione non ha argomenti.Valore di ritorno
Viene ritornato un numero intero che identifica il campo fra tutti gli altri campi presenti nello stesso pannello.
Esempio di codice
// *******************************************************
// Called when a field in a row has been changed by a user
// *******************************************************
event Prodotti.Prodotti.OnUpdatingRow(
int Column // Column that has been changed.
boolean FieldModified //
boolean FieldWasModified //
boolean RowWasModified //
boolean Inserting // This parameter is TRUE if the row is a new row
inout boolean Cancel //
)
{
// Se sto validando il campo Nome Prodotto....
if Column = Prodotti.NomeProdotto.Me()
{
// Imposto il nome del prodotto al nome del fornitore per prova.
if Prodotti.NomeProdotto = AAA
{
Prodotti.NomeProdotto := Prodotti.NomeSocietaFornitori.GetValueAt(Prodotti.
ValidatingRow() + ONE)
}
//
// La lunghezza del nome del prodotto deve essere almeno 5 caratteri
if Length(Prodotti.NomeProdotto) < C5
{
// Segnalo un errore, non sarà possibile salvare i dati nel database
Prodotti.NomeProdotto.SetErrorText(MSG Nome Troppo Corto)
}
}
//
// Se la scorta è nulla, la inizializzo a 10 unità
if IsNull(Prodotti.Scorte)
{
Prodotti.Scorte := C10
}
}
// Called when a field in a row has been changed by a user
// *******************************************************
event Prodotti.Prodotti.OnUpdatingRow(
int Column // Column that has been changed.
boolean FieldModified //
boolean FieldWasModified //
boolean RowWasModified //
boolean Inserting // This parameter is TRUE if the row is a new row
inout boolean Cancel //
)
{
// Se sto validando il campo Nome Prodotto....
if Column = Prodotti.NomeProdotto.Me()
{
// Imposto il nome del prodotto al nome del fornitore per prova.
if Prodotti.NomeProdotto = AAA
{
Prodotti.NomeProdotto := Prodotti.NomeSocietaFornitori.GetValueAt(Prodotti.
ValidatingRow() + ONE)
}
//
// La lunghezza del nome del prodotto deve essere almeno 5 caratteri
if Length(Prodotti.NomeProdotto) < C5
{
// Segnalo un errore, non sarà possibile salvare i dati nel database
Prodotti.NomeProdotto.SetErrorText(MSG Nome Troppo Corto)
}
}
//
// Se la scorta è nulla, la inizializzo a 10 unità
if IsNull(Prodotti.Scorte)
{
Prodotti.Scorte := C10
}
}
- Il valore ritornato da questa funzione può cambiare se l'applicazione viene ricompilata, pertanto non deve essere memorizzato sul database e non ci si deve fare affidamento come se fosse permanente.
- L'unica garanzia che si ha è che tutti i campi del pannello avranno numeri di identificazione univoci.
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680