Scopo
Tramite questa procedura è possibile mostrare o nascondere il campo. Questa è una proprietà dinamica del campo di pannello.
Sintassi
Pannello.Campo.SetVisible(stato)
Argomenti
Stato | Se impostato a True il campo sarà visible, altrimenti sarà nascosto. |
Fattori di visibilità
Un campo di pannello è visibile se si verificano tutte le seguenti condizioni:
- Non appartiene a nessuna pagina di pannello, oppure se la pagina a cui appartiene è quella selezionata.
- Non appartiene a nessun gruppo, oppure il gruppo a cui appartiene è visibile.
- Il campo appartiene al layout attuale del pannello. Se il pannello mostra la lista deve essere attivo il flag Show In List, se il pannello mostra il dettaglio, deve essere attivo il flag Show In Form.
- Il campo ha il flag Initially Visible (presente nella videata delle proprietà del campo all'interno di Instant Developer) impostato a True, oppure è stata utilizzata la procedura SetVisible (True) per renderlo visibile.
- Non è stata utilizzata la procedura SetVisible (False) all'interno dell'evento OnDynamicProperties per nascondere una determinata cella della lista, oppure il campo è statico.
- Non è presente un divieto di visibilità del campo in base al ruolo attivo nella sessione in corso.
Regole proprietà dinamiche
- E' possibile nascondere una particolare cella della lista utilizzando la SetVisible (False) all'interno dell'evento di OnDynamicProperties, ma non è possibile mostrare una cella della lista utilizzando la SetVisible (True) in quell'evento. Questo perchè, per ragioni di sicurezza, se il campo è invisibile non ne può essere mostrata una singola cella.
- Se si rende invisibile una cella all'interno dell'evento di OnDynamicProperties non è necessario preoccuparsi di renderla successivamente visibile ma è sufficiente non renderla più invisibile all'interno dello stesso evento.
- Le regole delle proprietà dinamiche non si applicano ai campi statici.
- Non è possibile usare questa proprietà nell'evento di OnUpdatingRow. Infatti dopo tale evento scatta la gestione di OnDynamicProperties che resetta lo stato.
Esempio di codice
// ***********************************
// Fired when the panel changes status
// ***********************************
event Prodotti1.Prodotti.OnChangeStatus(
int OldStatus //
)
{
// Mostro lo stato del pannello esplicitamente
Prodotti.StatoPannello.Caption := Stato Pannello +c Decode(Prodotti.Status(),
PanelStatus)
//
// Mostro la somma dei prodotti solo se non sono in stato
// inserimento criteri di ricerca
Prodotti.Somma.SetVisible(Prodotti.Status() <> QBE)
//
// Aggiorno il conteggio delle scorte.
// Deve essere fatto anche nell'evento di AfterFind e OnUpdatingRow
Prodotti.Somma.Caption := ToString(Prodotti.Scorte.Sum())
//
// Pulisco i campi Where Clause
Prodotti.WH.Caption := Empty String
Prodotti.SWH.Caption := Empty String
}
// Fired when the panel changes status
// ***********************************
event Prodotti1.Prodotti.OnChangeStatus(
int OldStatus //
)
{
// Mostro lo stato del pannello esplicitamente
Prodotti.StatoPannello.Caption := Stato Pannello +c Decode(Prodotti.Status(),
PanelStatus)
//
// Mostro la somma dei prodotti solo se non sono in stato
// inserimento criteri di ricerca
Prodotti.Somma.SetVisible(Prodotti.Status() <> QBE)
//
// Aggiorno il conteggio delle scorte.
// Deve essere fatto anche nell'evento di AfterFind e OnUpdatingRow
Prodotti.Somma.Caption := ToString(Prodotti.Scorte.Sum())
//
// Pulisco i campi Where Clause
Prodotti.WH.Caption := Empty String
Prodotti.SWH.Caption := Empty String
}
Ultima modifica: 12/09/2024 / Validità: da 6.5.2680