Alcuni sviluppatori ritengono che le azioni automatiche siano per i principianti. Tuttavia, potrebbero essersi persi molte delle potenzialità che abbiamo aggiunto negli ultimi anni. Le azioni standard, come First Record o color?value=redpossono essere assegnate a un pulsante nell’interfaccia utente o tramite programmazione. L’azione può essere assegnata a una voce di menu, a un menu contestuale o invocata con un comando. Un vantaggio è che 4D gestisce automaticamente la disattivazione della voce di menu o del pulsante quando l’azione non è applicabile (ad esempio, se non c’è un record successivo).
E a partire da 4D v16 R3, l’elenco delle azioni standard si sta ampliando: sono state aggiunte oltre 100 nuove azioni standard per 4D Write Pro e Styled Text, che consentono di costruire, ad esempio, una barra degli strumenti senza scrivere una riga di codice!
In sintesi, è possibile utilizzare le azioni standard in 3 modi diversi:
- Associare un’azione standard a un oggetto: in fase di progettazione (utilizzando l’elenco delle proprietà) o tramite programmazione.
- Associare un’azione standard a una voce di menu: in fase di progettazione (utilizzando la casella degli strumenti) o tramite programmazione
- Utilizzate i nuovi INVOKE ACTION e Get action info comandi
Associare un’azione standard a un oggetto
In fase di progettazione
Con l’elenco delle proprietà è possibile associare un’azione standard a un oggetto del modulo attivo. In questo esempio, l’azione standard Elimina record è associata a un pulsante.
Per maggiori dettagli, consultare questo articolo della documentazione.
Per programmazione
Durante l’esecuzione dell’applicazione, è possibile associare dinamicamente, per il processo corrente, un’azione standard a un oggetto tramite programmazione. In questo modo, si sovrascrive l’azione standard definita dall’elenco di proprietà.
Ad esempio, si desidera associare l’azione Delete Record azione standard a un pulsante “btnCancella”:
OBJECT SET ACTION(*; "btnDelete";ak delete record)
o se si utilizza il valore invece della costante:
OBJECT SET ACTION(*; "btnDelete"; "deleteRecord")
E se si usa il valore invece della costante, si può anche passare un parametro con l’azione. In questo esempio, si applica il colore magenta a un testo selezionato.
OBJECT SET ACTION(*; "btnDelete"; "color?value=magenta")
Per maggiori dettagli, consultare la documentazione di questi comandi:
Associare un’azione standard a una voce di menu
In fase di progettazione
È possibile assegnare un’azione standard a una voce di menu utilizzando l’editor di menu. Ad esempio, per aggiungere una voce di menu per aprire il Centro di manutenzione e sicurezza 4D, è sufficiente selezionare l’azione msc come azione standard associata nel menu a comparsa:
Quando si esegue l’applicazione, viene visualizzato il menu:
È possibile creare un sottomenu con un’azione standard. Ad esempio, per aggiungere un sottomenu per applicare lo stile del carattere (come Grassetto, Corsivo…), è sufficiente selezionare l’azione fontStyle come azione standard associata nel menu a comparsa:
Quando si esegue l’applicazione, viene visualizzato il menu:
Per ulteriori dettagli, consultare questo articolo della documentazione.
Per programmazione
È anche possibile passare un’azione standard al comando SET MENU ITEM PROPERTY . Da 4D v16 R3, se al comando APPEND MENU ITEM si passa la costante ak standard action title invece di un nome di titolo, 4D utilizza il nome dell’azione localizzata.
Ad esempio, in un menu a comparsa per aggiungere una voce di menu che consenta di andare al primo, all’ultimo o al prossimo record, si scrive il seguente codice:
- Nel metodo Form:
Case of
: (Form event=On Load) := ( ; ) ( ;-1; ; ) ( ; ) ( ;-1; ; ) ( ; ) ( ;-1; ; ) : ( = ) ( )
// create menu
menuCreate menu
//insert first record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak first record
//insert last record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak last record
//insert next record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak next record
Form eventOn Unload
// release menu
RELEASE MENUmenu
End case
- Nel metodo del pulsante che visualizza il menu a comparsa:
$val:=Dynamic pop up menu(menu)
Quindi, quando si esegue l’applicazione in una lingua diversa, il menu viene visualizzato:
Per ulteriori dettagli, consultare la documentazione relativa a questi comandi:
- GET MENU ITEM PROPERTY command
- SET MENU ITEM PROPERTY command
- Comando APPEND MENU ITEM
- Comando INSERISCI ARTICOLO MENU
INVOKE ACTION comando
Il comando INVOKE ACTION aggiunto in 4D v16 R3, attiva l’azione standard definita dal parametro azione, opzionalmente nel contesto. target contesto. Per sapere se l’azione standard è applicabile e valida nel contesto corrente, è possibile utilizzare il nuovo comando Get action info comando.
La sintassi è:
INVOKE ACTION ( action {; target} )
Ad esempio, per modificare l’apertura del MSC, si può scrivere:
C_OBJECT($actionInfo)
// Check if this standard action is available and valid in this current context
$actionInfo :=Get action info(ak paste;ak current form)
If (OB Get($actionInfo; "enabled")
// This standard action is enabled
INVOKE ACTION (ak paste;ak current form)
Else
ALERT ("Questa azione è impossibile. La clipboard è vuota.")
End if
Per maggiori dettagli, leggete la documentazione di questi comandi: