Formule e funzionalità

Completato

Usando le formule è possibile cambiare il modo in cui i controlli rispondono e funzionano. Ad esempio, in determinati scenari è possibile nascondere un controllo sulla schermata fino a quando non si verifica un'altra azione. Per farlo, è sufficiente scrivere una semplice formula per aggiornare la proprietà Visible del controllo. Oppure, invece di nascondere il controllo, è possibile impostare la proprietà DisplayMode su View, rimuovendo in questo modo la possibilità di modificarlo. È possibile implementare questo tipo di formula in molti scenari di un'app canvas. Usando le formule nell'app canvas per modificare le proprietà DisplayMode e/o Visible di un controllo, è possibile sviluppare app più intuitive.

Di seguito si vedrà come applicare questa formula per mostrare e nascondere un pulsante in una raccolta in base alle informazioni presenti nell'origine dati. In questo esempio si crea una raccolta denominata "TestScoresCollection". Quindi, sarà possibile aprire un'app canvas esistente e creare una nuova schermata.

  1. Inserire un controllo Pulsante nella schermata.

  2. Impostare la proprietà OnSelect del pulsante su:

    ClearCollect(TestScoresCollection,{Name:"Student 1", TestScore:"B"},{Name:"Student 2", TestScore:"C"},{Name:"Student 3", TestScore:"A"},{Name:"Student 4", TestScore:"C"},{Name:"Student 5", TestScore:"A"})
    
  3. Per generare la raccolta TestScoresCollection tenere premuto il tasto ALT (oppure impostare l'app in modalità di anteprima) e selezionare il pulsante.

  4. Inserire un controllo Raccolta verticale nella schermata e modificarne il layout in Titolo e sottotitolo

  5. Selezionare TestScoresCollection come origine dati. La raccolta dovrebbe avere un aspetto simile al seguente screenshot.

    Screenshot delle informazioni sui punteggi dei test della raccolta.

  6. Selezionare la prima riga della raccolta e inserire un nuovo pulsante nella raccolta stessa.

  7. Modificare la proprietà Text del pulsante in "Retake Test".

  8. Con il pulsante ancora selezionato, andare alla proprietà Visible e inserire il seguente codice, in modo che questo pulsante sia visibile solo per i voti degli studenti diversi da "A" o "B".

    If(ThisItem.TestScore = "A" Or ThisItem.TestScore = "B", false,true)
    

    Notare che quando si inserisce questo codice, il pulsante non è più visibile per gli studenti con un voto "A" o "B". Se si esegue una ricerca nel campo di input della formula la proprietà Visible, si noterà il pulsante Copilot. Si può usare Copilot per ottenere maggiori informazioni su questa o su qualsiasi altra formula nell'app.

  9. Selezionare il pulsante Copilot nella barra della formula, quindi scegliere Spiega questa formula. Il risultato sarà in qualche misura simile a questo screenshot.

    Screenshot del pulsante Retake Test da visualizzare solo in caso di voti diversi da A o B.

    È possibile usare la funzionalità Copilot Spiega questa formula per riuscire a comprendere meglio le formule presenti nell'app. Inoltre, è possibile usare il pulsante Copia per acquisire la spiegazione di Copilot e aggiungerla come commento nel codice. Per aggiungere commenti nel codice, aggiungere una doppia barra "//" prima di qualsiasi riga del codice. La doppia barra fa sì che Power Apps ignori il testo che segue, quindi si tratta di una caratteristica utile ai fini della documentazione.

    //This expression checks if the TestScore of the current item is equal to "A" or "B". If it is, the expression returns false. Otherwise, it returns true.
    

Ora si è usata questa formula per la proprietà View di un pulsante, ma è possibile applicare la logica per influenzare la modalità di visualizzazione del pulsante. In questo caso, non si è aggiunto codice alla proprietà OnSelect del pulsante "Retake Test", ma si può comprendere il controllo esercitato sul comportamento dell'app modificando il modo in cui rispondono i controlli. La nostra formula restituisce true o false, e questo è tutto ciò che Power Apps cerca nella proprietà Visible. È anche possibile abbreviare questo codice perché si tratta di una risposta true/false, ma questo argomento verrà trattato nella successiva unità.