Informazioni sui riferimenti record e sulle ricerche polimorfiche nelle app canvas

Quando hai scritto una ricerca a scuola, probabilmente hai fornito l'elenco dei tuoi riferimenti alla fine. Non hai incluso una copia del materiale di base effettivamente utilizzato, ma piuttosto un collegamento Web, un titolo e l'autore del libro o altre informazioni in modo che qualcuno potesse rintracciare la fonte originale. Hai combinato diversi tipi di fonti in un unico elenco, articoli di giornale accanto a registrazioni audio, ognuno con propri dettagli specifici per una corretta citazione. Ad esempio, gli articoli di Wikipedia spesso includono a lungo elenco di riferimenti.

Nelle app canvas, lavori spesso con copie di record scaricati dalle origini dati. Utilizzi le funzioni LookUp e Filter e la proprietà Selected del controllo Raccolta per identificare il record specifico desiderato. Tutti i record da Filtro o Selezionato saranno dello stesso tipo di tabella, quindi puoi utilizzare i campi con una semplice notazione Campo. Queste copie spesso includono informazioni di riferimento in modo da poter utilizzare la funzione Patch per aggiornare l'origine.

Le app canvas supportano anche i riferimenti di record. Proprio come il riferimento di una ricerca, il riferimento di record si riferisce a un record senza includerne la copia completa. Tale riferimento può fare riferimento a un record in qualsiasi tabella. Inoltre, come i riferimenti ai documenti di ricerca, puoi combinare record di tabelle diverse in un'unica colonna.

Molte operazioni sui riferimenti ai record sono identiche a quelle per i record. Puoi confrontare i riferimenti dei record tra loro e con i record completi. Puoi impostare il valore di un riferimento record con la funzione Patch proprio come faresti con una ricerca con un record completo.

C'è un'importante differenza di utilizzo: non è possibile accedere direttamente ai campi di un riferimento record senza prima stabilire a quale tabella si riferisce. Questo perché le app canvas richiedono che tutti i tipi siano noti quando si scrivono le formule. Poiché non conosci il tipo di riferimento di un record fino a quando l'app non è in esecuzione, non puoi utilizzare la notazione semplice .Field direttamente. Devi prima determinare dinamicamente il tipo di tabella con la funzione IsType e quindi utilizzare la notazione Campo sul risultato della funzione AsType.

Tipo di tabella fa riferimento allo schema di ogni record in una tabella. Ogni tabella ha un insieme univoco di campi con nomi e tipi di dati diversi. Ogni record della tabella eredita tale struttura; due record hanno lo stesso tipo di tabella se provengono dalla stessa tabella.

Nota

Puoi scegliere tra molti connettori diversi per connetterti a diversi tipi di origini dati per le app canvas. Tuttavia, quando si lavora con app canvas all'interno di Power Apps Studio, le colonne in Microsoft Dataverse sono indicate come campi simili a tutte le altre origini dati. Colonna viene utilizzato solo quando si fa riferimento a una colonna all'interno di Dataverse. Altre informazioni: aggiornamenti terminologici di Dataverse

Ricerche polimorfiche

Microsoft Dataverse supporta le relazioni tra i record. Ciascun record nella tabella Account include una colonna di ricerca Contatto primario su un record nella tabella Contatti. La ricerca può fare riferimento solo a un record in Contatti e non può fare riferimento a un record, ad esempio, nella tabella Team. Quest'ultimo dettaglio è importante perché sai sempre quali colonne saranno disponibili per la ricerca.

Dataverse supporta anche le ricerche polimorfiche, che possono fare riferimento a un record da qualsiasi tabella in un set. Ad esempio, la colonna Proprietario può fare riferimento a un record nella tabella Utenti o la tabella Team. La stessa colonna di ricerca in record diversi potrebbe fare riferimento a record in tabelle diverse. In questo caso, non sempre sai quali colonne saranno disponibili.

I riferimenti ai record canvas sono progettati per lavorare con ricerche polimorfiche in Dataverse. Puoi inoltre utilizzare i riferimenti ai record al di fuori di questo contesto, che costituisce la differenza tra i due concetti.

Nella sezione successiva, inizierai a esplorare questi concetti lavorando con la ricerca Owner.

Mostra le colonne del proprietario di un record

Ogni tabella in Dataverse include una colonna Proprietario. Questa colonna non può essere rimossa, non puoi aggiungerne un'altra e richiede sempre un valore.

Per mostrare quella colonna nella tabella Account:

  1. Accedi a Power Apps.

  2. Nel riquadro a sinistra, seleziona Dati > Tabelle.

  3. Nell'elenco delle tabelle, seleziona Account.

  4. Nell'angolo in alto a destra, apri l'elenco dei filtri (che è impostato su Predefinito per impostazione predefinita), quindi seleziona Tutti.

  5. Scorri verso il basso fino a che non appare la colonna Proprietario.

    Colonna Proprietario nella tabella Account.

Questa colonna di ricerca può fare riferimento a un record nella tabella Team o nella tabella Utenti. Non tutti i record in queste tabelle hanno l'autorizzazione per essere un Proprietario; controlla i ruoli supportati se riscontri un problema.

Questo grafico mostra una semplice raccolta di Account, dove la tabella Account è stata aggiunta all'app come origine dati:

Account mostrati in un controllo Raccolta.

Importante

In questo argomento, le immagini mostrano alcuni nomi e altri valori che non fanno parte dei dati di esempio forniti con Dataverse. I passaggi dimostrano in modo accurato come configurare i controlli per un determinato risultato, ma la tua esperienza varia in base ai dati della tua organizzazione.

Per mostrare il proprietario di ciascun account nella raccolta, potresti utilizzare la formula ThisItem.Owner.Name. Tuttavia, il campo del nome nella tabella Team è Nome team e il campo del nome nella tabella Utente è Nome completo. L'app non può sapere con quale tipo di ricerca stai lavorando finché non esegui l'app e può variare tra i record nella tabella Account.

Hai bisogno di una formula che possa adattarsi a questa varianza. È inoltre necessario aggiungere le origini dati per i tipi di tabella che Proprietario potrebbe rappresentare (in questo caso, Utenti e Team). Aggiungi queste tre origini dati alla tua app:

Tabelle Account, Team e Utenti nel riquadro Dati.

Con queste origini dati attive, utilizza questa formula per visualizzare il nome di un utente o di un team:

If( IsType( ThisItem.Owner, Teams ),
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Account visualizzati in un controllo Raccolta con il campo Proprietario visualizzato.

In questa formula, la funzione IsType verifica il campo Proprietario a fronte della tabella Team. Se è di quel tipo di tabella, la funzione AsType lo converte in un record Team. A questo punto puoi accedere a tutti i campi della tabella Team, tra cui Nome team, utilizzando la notazione Campo. Se IsType determina che Proprietario non è un record nella tabella Teams, quel campo deve essere un record nella tabella Utenti perché il campo Proprietario è obbligatorio (non può essere vuoto).

Per utilizzare qualsiasi campo di un riferimento a un record, devi prima utilizzare la funzione AsType per trasmetterlo a un tipo di tabella specifico. Non puoi accedere ai campi direttamente dal campo Proprietario perché il sistema non sa quale tipo di tabella si desidera utilizzare.

La funzione AsType restituisce un errore se il campo Proprietario non corrisponde al tipo di tabella richiesto, quindi puoi utilizzare la funzione IfError per semplificare questa formula. Innanzitutto, attiva la funzione sperimentale Gestione degli errori a livello di formula:

Attivazione sperimentazione della gestione degli errori a livello di formula.

Quindi sostituisci la formula precedente con questa:

IfError(
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Filtro basato su un proprietario

Congratulazioni: hai finito l'aspetto più difficile di un riferimento record. Altri casi d'uso sono più semplici perché non accedono ai campi del record. Ad esempio il filtro che esplorerai in questa sezione.

Aggiungi un controllo Casella combinata sopra la raccolta e imposta queste proprietà del nuovo controllo:

  • Items: Users
  • SelectMultiple: false

Controllo combo-box aggiunto sopra la raccolta con la proprietà Items impostata su Users.

Per filtrare la raccolta in base a un utente specifico selezionato da questa casella combinata, imposta la proprietà Items della raccolta su questa formula:

Filter( Accounts, Owner = ComboBox1.Selected )

Raccolta filtrata in base al valore impostato nel controllo combo-box.

Importante

Le istruzioni in questo argomento sono accurate se segui esattamente i passaggi. Tuttavia, qualsiasi formula che fa riferimento a un controllo con il suo nome ha esito negativo se il controllo ha un nome diverso. Se elimini e aggiungi un controllo dello stesso tipo, il numero alla fine del nome del controllo cambia. Per qualsiasi formula che mostra un errore, verifica che contiene i nomi corretti di tutti i controlli.

Non è necessario usare IsType o AsType perché stai confrontando i riferimenti record con altri riferimenti record o record completi. L'app conosce il tipo di tabella di ComboBox1.Selected perché deriva dalla tabella Utenti. Gli account per i quali il proprietario è un team non corrispondono al criterio di filtro.

Può diventare più elaborato il supporto del filtro in base a un utente o un team.

  1. Fai spazio nella parte superiore dello schermo ridimensionando la raccolta e spostando la casella combinata, inserisci un controllo Pulsante di opzione sopra la raccolta quindi imposta queste proprietà per il nuovo controllo:

    • Items: [ "All", "Users", "Teams" ]
    • Layout: Layout.Horizontal
  2. Per il controllo Casella combinata, imposta questa proprietà (se la casella combinata scompare, seleziona Users nel controllo Pulsante di opzione):

    • Visible: Radio1.Selected.Value = "Users"
  3. Copia e incolla il controllo Casella combinata, sposta la copia direttamente sull'originale, quindi imposta queste proprietà per la copia:

    • Items: Teams
    • Visible: Radio1.Selected.Value = "Teams"

    L'app visualizzerà solo una casella combinata alla volta, a seconda dello stato del controllo Pulsante di opzione. Poiché sono direttamente uno sopra l'altro, sembreranno avere lo stesso controllo che ne modifica il contenuto.

  4. Infine, imposta la proprietà Items del controllo Raccolta su questa formula:

    Filter( Accounts,
        Radio1.Selected.Value = "All"
        Or (Radio1.Selected.Value = "Users" And Owner = ComboBox1.Selected)
        Or (Radio1.Selected.Value = "Teams" And Owner = ComboBox1_1.Selected)
    )
    

    Raccolta filtrata che mostra tutti i record o uno specifico utente o team.

Con queste modifiche, puoi mostrare tutti i record o filtrarli in base a un utente o un team:

Animazione che mostra diversi risultati filtrati in base al controllo Pulsante di opzione e alle caselle combinate.

La formula è completamente delegabile. La parte che confronta i valori dei pulsanti di opzione è una costante in tutti i record e viene valutata prima di inviare il resto del filtro a Dataverse.

Se desideri filtrare il tipo di proprietario, puoi utilizzare la funzione IsType, ma non è ancora delegabile.

Filtra per tipo di proprietario utilizzando IsType.

Aggiornare il proprietario utilizzando Patch

Puoi aggiornare il campo Owner allo stesso modo di qualsiasi altra ricerca. Per impostare il proprietario dell'account attualmente selezionato sul primo team:

Patch( Accounts, Gallery1.Selected, { Owner: First( Teams ) } )

Questo approccio non differisce da una ricerca normale perché l'app conosce il tipo First( Teams ). Se desideri invece il primo utente, sostituisci quella parte con First( Users ). La funzione Patch sa che il campo Proprietario può essere impostato su uno di questi due tipi di tabella.

Per aggiungere questa funzionalità all'app:

  1. Nel riquadro Visualizzazione ad albero, seleziona il controllo Pulsante di opzione e i due controlli Casella combinata allo stesso tempo.

  2. Nel menu con i puntini di sospensione, seleziona Copia questi elementi.

    Copia di più controlli usando la visualizzazione ad albero.

  3. Nello stesso menu, seleziona Incolla.

    Come incollare più controlli usando la visualizzazione ad albero.

  4. Sposta i controlli copiati a destra della raccolta.

    Controlli copiati spostati a destra della raccolta.

  5. Seleziona il controllo Pulsante di opzione e cambia queste proprietà:

    • Items: [ "Users", "Teams" ]
    • Impostazione predefinita: If( IsType( Gallery1.Selected.Owner, Users ), "Users", "Teams" )

    Rimosse tutte le scelte dal controllo Pulsante di opzione.

  6. Nel controllo Pulsante di opzione, seleziona Users in modo che il controllo Casella combinata che elenca gli utenti sia visibile.

  7. Seleziona il controllo Casella combinata visibile quindi imposta la proprietà DefaultSelectedItems su questa formula:

    If( IsType( Gallery1.Selected.Owner, Users ),
        AsType( Gallery1.Selected.Owner, Users ),
        Blank()
    )
    

    Proprietà predefinita impostata per la casella combinata Users.

  8. Nel controllo Pulsante di opzione, seleziona Teams in modo che il controllo Casella combinata che elenca i team sia visibile.

  9. Seleziona controllo Pulsante di opzione per annullare la selezione del controllo Casella combinata ora invisibile per gli utenti.

  10. Seleziona il controllo Casella combinata visibile per i team quindi impostane la proprietà DefaultSelectedItems su questa formula:

    If( IsType( Gallery1.Selected.Owner, Teams ),
        AsType( Gallery1.Selected.Owner, Teams ),
        Blank()
    )
    

    Proprietà predefinita impostata per la casella combinata Teams.

  11. Inserisci un controllo Pulsante, spostalo sotto il controllo Casella combinata, quindi imposta la proprietà Text dei pulsanti su "Patch Owner".

  12. Imposta la proprietà OnSelect del pulsante su questa formula:

    Patch( Accounts, Gallery1.Selected,
        { Owner: If( Radio1_1.Selected.Value = "Users",
                     ComboBox1_2.Selected,
                     ComboBox1_3.Selected ) } )
    

    Formula impostata sul controllo Pulsante.

Il controlli Pulsante di opzione e Casella combinata copiati mostrano il proprietario per l'account attualmente selezionato nella raccolta. Con gli stessi controlli, puoi impostare il proprietario dell'account su qualsiasi team o utente selezionando il pulsante:

Animazione che mostra la patch del proprietario con un utente o un team.

Mostrare il proprietario utilizzando un modulo

Puoi mostrare un campo Owner all'interno di un modulo aggiungendo una scheda personalizzata. Al momento della stesura di questo documento, non è possibile modificare il valore del campo con un controllo form.

  1. Inserisci un controllo Modulo modifica e ridimensionalo e spostalo nell'angolo in basso a destra.

  2. Nella scheda Proprietà vicino al lato destro dello schermo, apri l'elenco Origine dati, quindi seleziona Accounts.

    Controllo Form che mostra campi aggiuntivi con valori vuoti.

  3. Imposta la proprietà Item del modulo su Gallery1.Selected.

    Controllo Form che mostra campi aggiuntivi popolati dall'elemento selezionato nella raccolta.

  4. Nella scheda Proprietà lungo il lato destro dello schermo seleziona Modifica campi.

  5. Nel riquadro Campi, seleziona i puntini di sospensione, quindi seleziona Aggiungi una scheda personalizzata.

    Comando per l'aggiunta di una scheda personalizzata.

    La nuova scheda appare nella parte inferiore del controllo form.

  6. Ridimensiona la scheda come necessario per visualizzare tutto il testo.

    Scheda personalizzata inserita, vuota.

  7. Inserisci un controllo Etichetta nella scheda personalizzata, quindi imposta la proprietà Text dell'etichetta sulla formula che hai usato nella raccolta:

    If( IsType( ThisItem.Owner, Teams ),
        "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
        "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )
    

    Scheda personalizzata che mostra il campo Owner in un controllo Etichetta.

Per ogni selezione nella raccolta, nel modulo vengono visualizzati più campi dell'account, incluso il proprietario del record. Se cambi il proprietario utilizzando il pulsante Patch, anche il controllo form mostra tale modifica.

Animazione che mostra il controllo form in risposta alle modifiche nella raccolta.

Mostra le colonne di un cliente

In Dataverse, la colonna di ricerca Cliente è un'altra ricerca polimorfica molto simile a Proprietario.

Proprietario è limitato a uno per tabella, ma le tabelle possono includere zero, una o più colonne di ricerca Cliente. La tabella di sistema Contatti include la colonna Nome società, che è una colonna di ricerca Cliente.

Tabella dei contatti che mostra la colonna Nome società come tipo di dati Cliente non obbligatorio.

Puoi aggiungere altre colonne di ricerca Cliente a una tabella selezionando il tipo di dati Cliente per una nuova colonna.

Tipo di dati del cliente dall'elenco dei tipi di dati durante la creazione di una colonna.

Un campo di ricerca Cliente può fare riferimento a un record nella tabella Account o nella tabella Contatti. Userai le funzioni IsType e AsType con queste tabelle, quindi ora è un buon momento per aggiungerle come origini dati (puoi lasciare Team e Utenti).

Tabelle Account, Utenti e Contati nel riquadro Dati.

Il trattamento dei campi Customer e Owner è così simile che puoi letteralmente copiare l'app (File > Salva come e quindi specifica un nome diverso) e apportare queste semplici sostituzioni:

Titolo Owner di esempio Customer di esempio
Ovunque Proprietario 'Nome cliente'
Ovunque Utenti Account
Ovunque Team Contatti
Proprietà Items della raccolta Account Contatti
Proprietà Items del modulo Account Contatti
Il primo argomento di Patch
nella proprietà OnSelect del pulsante
Account Contatti
Proprietà Items del pulsante di opzione del filtro [ "All", "Users", "Teams" ] [ "All", "Accounts", "Contacts" ]
Proprietà Items del pulsante di opzione della patch [ "Users", "Teams" ] [ "Accounts", "Contacts" ]
Proprietà Visible della casella combinata "Users" e "Teams" "Accounts" e "Contacts"

Ad esempio, la nuova raccolta deve avere questa proprietà Items:

Filter( Contacts,
    Radio1.Selected.Value = "All"
    Or (Radio1.Selected.Value = "Accounts" And 'Company Name' = ComboBox1.Selected)
    Or (Radio1.Selected.Value = "Contacts" And 'Company Name' = ComboBox1_1.Selected)
)

App del cliente derivata dall'app del proprietario con semplici modifiche applicate.

Due importanti differenze tra Customer e Owner richiede un aggiornamento delle formule all'interno della raccolta e del modulo:

  1. Le relazioni uno a a molti tra Account e Contatti hanno la precedenza quando si fa riferimento a questi tipi di tabella per nome. Al posto di Accounts, usa [@Accounts] e al posto di Contacts, usa [@Contacts]. Usando l'operatore di disambiguazione globale, assicurati di fare riferimento al tipo di tabella in IsType e AsType. Questo problema esiste solo nel contesto record della galleria e dei controlli del modulo.

  2. Il campo Owner deve avere un valore, ma i campi Customer possono essere vuoti. Per mostrare il risultato corretto senza un nome di tipo, prova questo caso con la funzione IsBlank e mostra invece una stringa di testo vuota.

Entrambe queste modifiche sono nella stessa formula, che appare nella scheda personalizzata nel modulo, così come nella proprietà Text del controllo Etichetta della raccolta:

If( IsBlank( ThisItem.'Company Name' ), "",
    IsType( ThisItem.'Company Name', Accounts ),
        "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name',
    "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)

Aggiornare la proprietà Text del controllo Etichetta del sottotitolo nella raccolta.

Con queste modifiche, puoi visualizzare e modificare il campo Nome azienda nella tabella Contatti.

Animazione che mostra come la selezione di un contatto modifica gli altri controlli e il modulo.

Comprendere le colonne di ricerca Tema

La colonna di ricerca Tema è leggermente diversa da quelle su cui hai già lavorato in questo argomento. Inizierai applicando gli schemi che questo argomento ha descritto in precedenza, quindi imparerai altri trucchi.

Puoi iniziare semplicemente con la tabella Fax. Questa tabella include una colonna di ricerca Tema polimorfica, che può fare riferimento a Account, Contatti e altre tabelle. Puoi prendere l'app per Customers e modificarla per Fax.

Titolo Customer di esempio Fax di esempio
Ovunque 'Nome cliente' Tema
Proprietà Items della raccolta Contatti Fax
Proprietà Items del modulo Contatti Fax
Il primo argomento di Patch
nella proprietà OnSelect del pulsante
Contatti Fax

Ancora una volta, dovrai aggiungere un'origine dati: questa volta per Fax. Nella scheda Visualizza seleziona Origini dati:

Riquadro Dati che mostra le tabelle Account, Utenti e Contatti e Fax.

Una differenza importante per Regarding è che non è limitato a Accounts e Contacts. Infatti l'elenco delle tabelle è estensibile con tabelle personalizzate. La maggior parte dell'app può accogliere questo punto senza modifiche, ma devi aggiornare la formula per l'etichetta nella raccolta e nel modulo:

If( IsBlank( ThisItem.Regarding ), "",
    IsType( ThisItem.Regarding, Accounts ),
        "Account: " & AsType( ThisItem.Regarding, Accounts ).'Account Name',
    IsType( ThisItem.Regarding, Contacts ),
        "Contacts: " & AsType( ThisItem.Regarding, Contacts ).'Full Name',
    ""
)

Proprietà Text aggiornata per il controllo dei sottotitoli per le ricerche Regarding.

Dopo aver apportato queste modifiche, usi la ricerca Regarding proprio come hai fatto con le ricerche Owner e Customer.

Animazione che mostra come la selezione di un elemento nella raccolta modifica gli altri controlli e il modulo.

Informazioni sulle relazioni di Regarding

Regarding si differenzia da Owner e Customer perché il primo comporta una relazione molti-a-uno. Per definizione, una relazione inversa da uno a molti ti consente di scrivere First( Accounts ).Faxes.

Facciamo il backup e guardiamo le definizioni della tabella. Nelle tabelle Dataverse come Fax, Attività, Email, Appunti, Telefonate, Lettere e Chat sono designati come impegni. Puoi anche creare le tue tabelle di impegni personalizzate. Quando visualizzi o crei una tabella degli impegni, le relative impostazioni vengono visualizzate in Altre impostazioni.

Impostazione della tabella degli impegni durante la creazione di una tabella.

Altre tabelle possono essere correlate a una tabella degli impegni se sono abilitate come attività dell'impegno nelle impostazioni della tabella. Account, Contatti e molte altre tabelle standard sono così designate (di nuovo, sotto Altre impostazioni).

Impostazione dell'attività dell'impegno durante la creazione di una tabella.

Tutte le tabelle degli impegni e le attività-degli impegni hanno una relazione implicita. Se cambi il filtro in Tutti nella parte superiore della schermata, seleziona la tabella Fax, quindi seleziona la scheda Relazioni, tutte le tabelle che possono essere un obiettivo della ricerca Tema vengono visualizzate.

Relazioni della tabella Fax che mostrano le relazioni molti a uno di Tema.

Se mostri le relazioni per la tabella Account, vengono visualizzate tutte le tabelle che possono essere origine di un campo di ricerca Tema.

Relazioni della tabella Account che mostrano le relazioni uno a molti Tema.

Che cosa significa tutto questo?

  • Quando si scrivono formule, è necessario considerare che l'elenco delle tabelle degli impegni non è fisso e che è possibile crearne di proprie. La formula deve gestire in modo appropriato una tabella degli impegni imprevista.
  • Gli impegni e le attività di tipo impegno hanno una relazione uno-a-molti. Puoi facilmente chiedere tutti i fax relativi a un account.

Per esplorare questo concetto nell'app:

  1. Aggiungi un'altra schermata.

    Inserisci una schermata vuota.

  2. Inserisci un controllo Raccolta, ridimensionalo, quindi spostalo sul lato sinistro dello schermo.

  3. Nella scheda Proprietà vicino al lato destro della schermata, imposta la proprietà Items della raccolta su Accounts.

    Imposta Items su Accounts nel riquadro delle proprietà.

  4. Imposta il layout della raccolta su Titolo, quindi imposta il campo del titolo su Nome account.

    Imposta il layout sul titolo per il controllo Raccolta nel riquadro delle proprietà.

  5. Aggiungi una seconda raccolta, ridimensionala, quindi spostala sul lato destro dello schermo.

  6. Imposta la proprietà Items della nuova raccolta su Gallery2.Selected.Faxes.

    Questo passaggio restituisce l'elenco filtrato di fax per un determinato account.

    Imposta la proprietà Items della raccolta che mostra i fax.

  7. Imposta il layout della raccolta su Titolo e sottotitolo, quindi imposta il campo del titolo per mostrare il campo Oggetto (che potrebbe essere in minuscolo oggetto).

    Imposta il titolo nel campo Oggetto.

Quando selezioni un elemento nell'elenco degli account, l'elenco dei fax mostra i fax solo per quell'account.

Animazione che mostra la selezione nella raccolta degli account che guida l'elenco dei fax.

Tabella impegni

Come descritto nella sezione precedente, puoi mostrare tutti i fax per un account. Tuttavia, puoi anche mostrare tutti gli impegni per un account, inclusi fax, messaggi e-mail, telefonate e altre interazioni.

Per quest'ultimo scenario, utilizzi la tabella Impegno. Puoi mostrare questa tabella attivando Tutto nell'angolo in alto a destra per rimuovere il filtro dall'elenco delle tabelle.

Elenco delle tabelle che mostrano la tabella Impegno.

La tabella Impegno è speciale. Ogni volta che aggiungi un record alla tabella Fax, il sistema crea anche un record nella tabella Impegno con le colonne comuni a tutte le tabelle di impegno. Di quelle colonne, Oggetto è una delle più interessanti.

Puoi mostrare tutti gli impegni cambiando una sola riga dell'esempio precedente. Sostituisci Gallery2.Selected.Faxes con Gallery2.Selected.Activities.

Modifica della proprietà Items per la seconda raccolta, passando dai fax agli impegni.

I record provengono dalla tabella Impegno, ma puoi comunque usare la funzione IsType per identificare di che tipo di impegno si tratta. Di nuovo, prima di utilizzare IsType con un tipo di tabella, è necessario aggiungere l'origine dati.

Riquadro dati che mostra tutte le tabelle richieste per la funzione IsType.

Usando questa formula, puoi mostrare tipo di record in un controllo Etichetta all'interno della raccolta:

If( IsType( ThisItem, Faxes] ), "Fax",
    IsType( ThisItem, 'Phone Calls' ), "Phone Call",
    IsType( ThisItem, 'Email Messages' ), "Email Message",
    IsType( ThisItem, Chats ), "Chat",
    "Unknown"
)

Imposta la proprietà text sulla formula per mostrare le informazioni per fax, telefonate e altri impegni.

Puoi usare AsType anche per accedere ai campi del tipo specifico. Ad esempio, questa formula determina il tipo di ogni impegno e, per le telefonate, mostra il numero di telefono e la direzione della chiamata dalla tabella Numeri di telefono:

If( IsType( ThisItem, Faxes ), "Fax",
    IsType( ThisItem, 'Phone Calls' ),
       "Phone Call: " &
       AsType( ThisItem, 'Phone Calls' ).'Phone Number' &
       " (" & AsType( ThisItem, 'Phone Calls' ).Direction & ")",
    IsType( ThisItem, 'Email Messages' ), "Email Message",
    IsType( ThisItem, Chats ), "Chat",
    "Unknown"
)

Proprietà text espansa con ulteriori informazioni per una telefonata.

Di conseguenza, l'app mostra un elenco completo di impegni. Il campo Oggetto viene visualizzato per tutti i tipi di impegno, indipendentemente dal fatto che la formula li tenga in considerazione o meno. Per i tipi di impegni che conosci, puoi mostrare i nomi dei tipi e le informazioni specifiche per ogni impegno.

Schermata completata che mostra le informazioni per diversi tipi di impegno.

Tabella delle note

Finora, tutti gli esempi di Tema sono stati basati sugli impegni, ma la tabella Note rappresenta un altro caso.

Quando crei una tabella, puoi abilitare gli allegati.

Abilitazione di allegati e note durante la creazione di una tabella.

Se selezioni la casella di controllo per abilitare gli allegati, creerai una relazione Tema con la tabella Note, come mostra questo grafico per tabella Account:

Tabella Account che mostra la relazione sulle Note tramite una relazione uno a molti.

A parte questa differenza, usi la ricerca Regarding nello stesso modo in cui utilizzi gli impegni. Le tabelle abilitate per gli allegati hanno una relazione uno a molti con Note, come in questo esempio:

First( Accounts ).Notes

Nota

Al momento della stesura di questo documento, la ricerca Tema non è disponibile per la tabella Note. Non puoi leggere o filtrare in base alla colonna Tema e non puoi impostare la colonna usando Patch.

Tuttavia, la relazione contraria uno-a-molti per Notes è disponibile una relazione, quindi puoi filtrare un elenco di note per un record abilitato per gli allegati. Puoi anche usare la funzione Relate per aggiungere una nota a una tabella Notes di un record, ma la nota deve essere creata per prima, come in questo esempio:

Relate( ThisItem.Notes, Patch( Notes, Defaults( Notes ), { Title: "A new note" } ) )

Partecipanti all'impegno

Al momento della stesura di questo documento, le app canvas non supportano i partecipanti all'impegno.

Nota

Puoi indicarci le tue preferenze di lingua per la documentazione? Partecipa a un breve sondaggio. (il sondaggio è in inglese)

Il sondaggio richiederà circa sette minuti. Non viene raccolto alcun dato personale (Informativa sulla privacy).