Lookup - Celle con una lista di opzioni da scegliere
Note
Questo tutorial presuppone quello che è stato fatto nel tutorial Personalizzare l'aspetto dell'applicazione. Se hai saltato il precedente tutorial o vuoi sperimentare per poi tornare indietro, non preoccuparti! Puoi importare questo file .eap per ripristinare o sincronizzare con ciò che vedi in questa documentazione. Impara a ripristinare usando i file .eap. Se non vuoi usare l'.eap, ciò che vedi potrebbe differire leggermente dagli screenshot.
Le Lookup ti permettono di configurare le celle di tabella con liste di valori predefiniti da cui scegliere. Imparerai le basi delle Lookup e come realizzarle.
Dopo Costruire la tua prima App: Personal Budget e Personalizzare l'aspetto dell'applicazione, hai un'applicazione pienamente funzionante per registrare le tue entrate e i pagamenti. Ma puoi migliorare un applicazione eLegere in molti modi. One di questi sono le Lookup.
Le Lookup sono menù a tendina di valori per riempire una cella. L'utente clicca sulla cella della riga con la Lookup e può inserire uno dei valori dalla lista.
Le Lookup sono utili se vuoi fornire un insieme limitato di valori per un campo senza ripetizione inutile di dati e inserimenti.
Il tutorial insegna come creare le Lookup guidandoti attraverso alcuni esempi passo dopo passo.
Imparerai cosa costituisce una qualunque Lookup: Relazioni fra Storage. Durante la spiegazione, imparerai alcune buone pratiche e regole per realizzare Lookup e Relazioni.
Note
Il tutorial spiega prima i passi per creare una Lookup e la sua relazione. Il tutorial richiede di ripetere più volte lo stesso schema di operazioni. Se preferisci comprendere la teoria prima della pratica, vai a Regole per Relazioni e Lookup. Torna in seguito all'inizio e segui l'ordine del tutorial. Altrimenti, continua a leggere le sezioni in modo sequenziale.
Creare una Lookup per le spese e le entrate¶
Impara a costruire la tua prima Lookup per Personal Budget: differenziare la scelta fra spese (expenses) ed entrate (income).
A questo stadio, hai solo lo storage Transactions. (L'immagine mostra solo due campi di esempio dello storage.)
La prima cosa da fare è uno Storage. Ogni Lookup richiede uno Storage con la lista di opzioni predefinite tra cui scegliere.
Supponi che ogni riga di Personal Budget richieda un campo Lookup che specifichi se la riga sia una spese o un'entrata.
Per ottenere il risultato sopra, devi:
- Creare e configurazione uno Storage per la Lookup.
- Stabilire una Relazione in Transactions.
- Abilitare la Relazione di Lookup su Personal Budget.
- Configurare la colonna per la Relazione di Lookup.
Creare e configurazione uno Storage per la Lookup¶
A questo stadio, stai per creare uno Storage per registrare le opzioni del menù a tendina.
-
Crea un nuovo Storage Blank e chiamalo
Income Expense Type
seguendo la procedura in Costruire la tua prima App: Personal Budget. -
Aggiungi i campi seguenti allo Storage Income Expense Type.
IdIncomeExpenseType
Identity Il campo Identity per le righe dello StorageIncome Expense Type
.TypeName
String Il campo che registra il nome dell'opzione.Icon
Icon Il campo che registra l'icona da assegnare all'opzione.Color
Color Il campo che registra il colore che evidenzia l'opzione.
Tip
Le Lookup non richiedono campi di tipo Color e Icon per funzionare e sono opzionali. I campi Color e Icon assegna un icon e un colore distinvo all'opzione. Assegnare un icona e un colore distintivo aiuta a identificare le opzione della lista più facilmente.
-
Salva lo Storage e crea una nuova applicazione chiamata Income Expense Type. Income Expense Type deve usare lo Storage con lo stesso nome (i.e. Income Expense Type).
-
Nel Design Mode di Income Expense Type, rendi visibile il campo Identity
IdIncomeExpenseType
. Nel sotto-pannello Master, clicca sul pulsante Is Visible on the Grid () sulla rigaIdIncomeExpenseType
.I prossimi passi e i prossimi tutorial richiedono rendere visibile
IdIncomeExpenseType
per riferirsi a elementi specifici tramire i loro ID. Capirai perché è utele vedere gli ID delle righe degli Storage in Approfondimento: Valore predefinito per le Lookup e quando applicherai restrizioni di visibilità.Info
Gli utenti non possono editare i campi di tipo Identity. Le applicazioni assegnano automaticamente ID al campo. Ogni ID numero è unico.
-
Cambia il nome dei campi come segue e salva i cambiamenti in Design Mode.
- Name
- Icon
- Color
- ID
-
Inserisci e salva le righe seguenti nella tabella Master di Income Expense Type come appaiono nell'immagine sotto. (L'applicazione assegna l'ID al campo ID automaticamente. Non è richiesta nessuna ulteriore azione.)
Tip
Definire un icona e un colore è opzionale. La Lookup funzionerà nonostante
Color
andIcon
siano vuoti o non esistano. Ma definire un icona e un colore aiuta a identificare più facilmente le opzioni nella Lookup.
Stabilire una Relazione in Transactions¶
Nel passaggio successivo, hai creato uno storage che registra le opzioni per un menù a tendina. Ora, devi creare una Relazione fra i dati dello storage Income Expense Type e lo storage Transactions. Dato che la Lookup apparirà in Personal Budget, dovrai stabilire la Relazione in Transactions (lo Storage usato dall'applicazione Personal Budget).
-
Aggiungi allo storage Transactions un campo di tipo Numeric e chiamalo
IncomeExpensesTypeId
. -
Nell'editor Storage di Transactions, clicca sul sotto-pannello Relations. Clicca su pulsante Add Relation nell'angolo in alto a destra.
-
Scegli lo storage Income Expense Type per la relazione.
-
Nella finestra che apparirà, devi scegliere i campi da relazionare. Scegli il campo
IncomeExpensesTypeId
per Transactions. Il campo per lo storage Income Expense Type è già configurato sul campo IdentityIdIncomeExpensesType
. Chiama la relazioneIncome_Expense_Type_Lookup
.Introduzione a qualche concetto che il seguente Regole per Relazioni e Lookup discuterà. Comprendi i seguenti punti chiave pima di continuare con il tutorial.
- Le Relazioni sono relazioni fra un campo di uno storage e il campo di un altro storage.
- Una Relazione che costituisce una Lookup è una Relazione di Lookup.
-
Una Relazione di Lookup è una relazione fra un campo Numeric e un campo Identity.
- Il campo Numeric deve essere nello storage dell'applicazione che mostrerà il menù a tendina Lookup. I.e. Transactions
- Il campo Identity è il campo Identity dello storage contenente le opzione che devono apparire nel menù a tendina. I.e. Income Expense Type.
-
In un'applicazione puoi mostrare la Relazione come una lista di opzioni predefinite da scorrere e selezionare nell'applicazione: una Lookup
Tip
Convenzione: I campi relazionati in una Relazione devono avere nomi unici, chiari e non ambigui. È raccomandato chiamare i campi Numeric in una Relazione di Lookup
FieldNameId
. In questo modo, è chiaro con quale campo IdentityIdFieldName
ha una relazione. Nota: Non ci sono regole obbligatori per scegliere il nome di un campo. Il suggerimento sopra aiuta a identificare i campi e le relazioni senza confusione negli Storage con svariate relazioni di Lookup.Tip
Puoi stabilire una Relazione con molteplici tipi di campo fra due storage. Il più comune è fra un campo di tipo Numeric e un campo di tipo Identity.
-
Clicca sul pulsante Confirm () per creare una Relazione di Lookup.
Il titolo della relazione apparirà nel sotto-pannello Relations.
Abilita la Relazione di Lookup su Personal Budget¶
A questo punto devi abilitare la relazione di Lookup su Personal budget.
-
Accedi al Design Mode di Personal Budget e clicca sul pulsante Create the Lookup Relation () corrispondente a
IncomeExpensesTypeId
. -
Apparirà la finestra Lookup Relation. (Le impostazioni della finestra con il tag
opzionale
sono opzionali. Non sono richieste dalla Lookup per funzionare.)Proprietà Descrizione 1 Related Table La Relazione alla tabella contenente le opzioni per il menù a tendina. (Le tabelle degli Storage con una Relazione stabilita con il campo appariranno qui.) 2 Show Field Il campo contenente i nomi delle opzioni per il menù a tendina. 3 Icon Field opzionale
Il campo contenente le icone per le opzioni.4 Color Field opzionale
Il campo contenente i colori assegnati a ciascuna opzione del menù a tendina.5 Order Field Il campo da usare come riferimento per ordinare le liste di opzioni nel menù a tendina. 6 Order Type Opzione per impostare ordinamento Ascendente o Discendente per l'Order Field 7 Formula opzionale
Aggiunge una formula per configurare un comportamento per la Lookup. (Vedrai il suo uso in uno dei successivi tutorial.)8 Restriction Formula opzionale
Aggiunge una formula per mostrare certe opzioni della lista soddisfatte certe condizioni. (Vedrai il suo uso in uno dei successivi tutorial.)Scegli una relazione di Lookup esistente con lo storage Income Expense Type. Riempi il resto delle configurazioni con i campi dello storafe Income Expense Type.
-
Clicca sul pulsante Confirm per salvare le configurazioni di Lookup.
Configura la colonna per la Relazione di Lookup¶
A questo punto, devi configurare la colonna della Lookup nel Design Mode di Personal Budget.
-
Esegui i seguenti cambiamenti nel sotto-pannello Master alla riga di
IncomeExpensesTypeId
.- Cambia il Name da
IncomeExpensesTypeId
toIncome/Expense
. - Rendi il campo visibile.
- Cambia il Name da
-
Vai a Layout. Disponi
Income/Expense
sulla tabella come preferisci. -
Rimuovi la formula che hai inserito per Cell Bg Color nel precedente tutorial Personalizzare l'aspetto dell'applicazione. La formula è obsoleta dato che hai una Lookup. L'opzione della Lookup evidenzierà lo stesso tipo di informazione.
Clicca su Cell Bg Color, poi sul pulsante Clear Formula. Chiudi le configurazioni colore cliccando il pulsante Confirm.
-
Rimuovi da Field Description la descrizione della colonna Value. Non hai più bisogno di aggiungere il simbolo meno (
-
) per le spese dal campo BudgetValue. -
Salva i cambiamenti nel Design Mode di Personal Budget (Save ).
-
Rimuovi il simbolo meno (
-
) dalle celle della colonna Value (campo BudgetValue). Grazie alla Lookup, non hai bisogno di un simbolo per classificare le righe come una spesa.
Hai completato la configurazione di una relazione di Lookup per Income/Expense
.
Regole per Relazioni e Lookup¶
Prima di procedere, devi comprende i fondamentali dietro le Relazioni e le Lookup. È molta teoria, ma è necessaria per evirare problemi e sbagli.
Warning
È essenziale capire i punti chiave seguenti. Spendi tutti il tempo necessario per campire le Relazioni e le Lookup.
Punti chiave da ricordare¶
-
Le Relazioni sono connessioni fra dati di due storage.
-
Le Relazioni sono indipendenti dalla loro rappresentazioni in un'applicazione eLegere. Puoi determinare in un'applicazione differenti modi per rappresentare la stessa relazione. (Vedrai un atro modo nel successivo tutorial sui Dettagli.)
-
Le Relazioni hanno due componenti:
- Un campo source che registra il riferimento che punta alla riga dell'altro storage.
- Un campo target è il campo della riga del secondo storage a cui il campo source punta.
-
Puoi creare relazioni multiple che hanno lo stesso campo source.
-
Le Lookup sono un modo per rappresentare una Relazione come un menù a tendina.
-
Quando rappresenti una Relazione come una Lookup, hai una Relazione di Lookup.
- Le Relazioni di Lookup richiedono un campo source che registra il puntamento all'altro storage. La maggior parte delle volte, un campo di tipo Numeric compre questo tipo di ruolo perché i campi Identity assegnano ID numerici univoci.
In breve, le Relazioni sono modi di collegare righe di uno storage a righe di altri storage.
Perché hai bisogno di campi Identity come campi target?¶
Quando il campo source in una relazione punta alla riga in un altro storage, il campo source registra un solo valore del campo target.
Per essere sicuri che il campo di riferimento punti esattamente alla registrazione specifica fra molte, devi scegliere un campo con dati univoci e non ambigui come campo target. I campi Identity sono perfetti per questo: ogni campo Identity assegna automaticamente un numero univoco alla riga di storage. Così sei sicuro che il valore del campo target sarà univoco. Usare un Identity evita di avere due valori identici dato che solo una può avere quel valore ID.
Warning
In teoria, puoi usare come campo target un campo differente da un Identity. Ma usare un campo differente da un Identity non è consigliato (a meno che tu non sappia cosa stai facendo).
Perché? Considera i casi seguenti.
Caso Errato 1¶
Campo Source | Campo Target |
---|---|
tipo Numeric | tipo Numeric |
Supponi di stabilire una relazione come Caso 1. Inoltre, immagina che ci sono righe multiple con lo stesso valore per il campo target. Hai due campi non-unici e il riferimento è ambiguo.
Income Expense Type
ID | Name |
---|---|
1 | Expense |
1 | Income |
Transactions
Name | Value | Income/Expense |
---|---|---|
Car Fuel | 40 | 1 (income or expense?) |
Shared Account | 5 | 1 (income or expense?) |
Se più righe del campo target hanno lo stesso valore, come fa il campo source a sapere quale registrazione prendere come riferimento? La Lookup si rompe perché non è chiaro quale riga e valore il campo source deve puntare e registrare.
Caso Errato 2¶
Basare una relazione fra campi con valore che potrebbe cambiare non è consigliato.
Campo Source | Campo Target |
---|---|
tipo String | tipo String |
Supponi di stabilire una relazione fra due campi di tipo String. In questo caso, se uno dei campi cambia valore, perdi il puntamento o del campo source o del campo target.
Prima del cambio di valore ID¶
Income Expense Type
ID | Name |
---|---|
out | Expense |
in | Income |
Transactions
Name | Value | Income/Expense |
---|---|---|
Car Fuel | 40 | out (expense) |
Shared Account | 5 | in (income) |
Dopo il cambio di valore ID¶
Income Expense Type
ID | Name |
---|---|
outcome | Expense |
income | Income |
Transactions
Name | Value | Income/Expense |
---|---|---|
Car Fuel | 40 | out (no reference) |
Shared Account | 5 | in (no reference) |
Non è una buona pratica perché qualunque cambio causa una perdita di puntamento.
Caso Errato 3¶
Un altro caso da evitare è fra due campi Identity (o due campi univoci (Unique)).
Campo Source | Campo Target |
---|---|
tipo Identity | tipo Identity |
Il Caso Errato 3 causa il problema opposto al Caso Errato 1: ci può essere una e una sola riga con quel valore assegnato. Questo succede perché i campi Identity generano numeri univoci come ID. Quando hai due campi univoci, non puoi assegna lo stesso valore a più righe.
Income Expense Type
ID | Name |
---|---|
1 | Expense |
2 | Income |
Transactions
Name | Value | Income/Expense |
---|---|---|
Car Fuel | 40 | 1 |
Lunch | 15 | 1 (non permesso: c'è un'altra riga con un altro valore 1 per la colonna unica Income/Expense ) |
Se Caso Errato 3 avviene, puoi assegnare quel valore del Lookup solo a una riga. eLegere considererà un errore assegnare la stesso valore di Lookup a un'altra riga.
Buona Pratica¶
Campo Source | Campo Target |
---|---|
tipo Numeric | tipo Identity |
La Buona Pratica è un esempio di una relazione costruita in modo corretto. Hai un campo non-univoco che punta a un campo univoco.
Un Identity come campo target avrà solo numeri univoci come valori per identificare una riga.
I campi di tipo Numeric funzionano bene come campi Source perché i valori del campo target Identity sono numeri.
La relazione tra un campo Numeric e un campo Identity sono sempre univoci. Quindi, un caso come Caso Errato 1 non accadrà. La Lookup elencherà tutte le opzioni senza problemi perché ciascuna riga ha un riferimento senza ambiguità.
Inoltre, cambiamenti alla riga non comprometteranno il riferimento: il campo source punta a un valore univoco che indicizza quella particolare riga dello storage. Qualunque cambiamento non comprometterà l'ID di una riga e il riferimento rimane intatto.
Tabella Income Expense Type
ID | Name |
---|---|
1 | Expense |
2 | Income |
Tabella Transaction
Name | Value | Income/Expense |
---|---|---|
Shared Account | 5 | 1 (expense) |
Car Fuel | 40 | 1 (expense) |
Cash back | 20 | 2 (income) |
Gym Subscription | 80 | 1 (expense) |
Tabella Transactions
con Lookup
Name | Value | Income/Expense |
---|---|---|
Shared Account | 5 | Expense |
Car Fuel | 40 | Expense |
Cash back | 20 | Income |
Gym Subscription | 80 | Expense |
Le regole¶
Esiste una lista di regole per evitare i problemi descritti nella sezione sopra.
- Costruisci sempre relazioni fra campi di tipo Numeric come campo source e un campo di tipo Identity come campo target (a meno che non ci sia un'ottima ragione).
- Nello storage, usa sempre la seguente convenzione per identificare se la relazione è stabilita per una Lookup o altri tipi di rappresentazioni:
Nome_Storage_TipoDiRelazione
. Per esempio, etichetta una relazione che diventerà una relazione di Lookup comeProduct_List_Lookup
. - Stabilisci sempre una relazione tra un campo univoco e un campo non-univoco. Mai stabilire una relazione fra due campi univoci o due campi non-univoci.
Crea una Lookup per la colonna Payment Methods¶
Supponi di aver bisogno di specificare il metodo di pagamento oltre all'ammontare il tipo di denaro e il tipo di movimento. Per farlo, devi creare un nuovo storage Blank e devi stabilire una relazione di Lookup per introdurre un menù a tendina con la lista dei metodi di pagamento.
Tip
Prima di procedere, accertati di aver capito cosa sono le Relazioni, le Lookup e come funzionano. Nel caso, prenditi del tempo e ripassa Regole per Relazioni e Lookup.
Note
Eseguirai le stesse operazioni fatte per la Lookup Income/Expense, ma per i metodi di pagamento.
Devi creare una relazione di Lookup tra gli storage Transactions e Payment Methods e configurare la relazione in Personal Budget.
Una Lookup in Personal Budget per Payment Methods richiede:
- Uno Storage
Payment Emthods
per registrare i dati del metodo di pagamento. - Un'applicazione con lo stesso nome (Payment Methods) per inserire il metodo di pagamento nello storage.
- Una relazione tra
Transactions
ePayment Methods
. - Una Lookup configurata in
Personal Budget
con le opzioni di Payment Methods.
Creare lo storage Payment Methods
¶
A questo punto, devi costruire uno storage contenente le opzioni dei metodi di pagamento.
-
Nel sotto-pannello Storages in Home, crea uno Storage chiamato Payment Methods. (Vedi Costruire la tua prima App: Personal Budget per sapere come creare gli storage.)
-
Configura i seguenti campi in Payment Methods:
IdPaymentMethod
Identity Il campo Identity per le righe di Payment Methods.Name
String Il nome del metodo di pagamento.Icon
Icon Il campo di tipo Icona per l'icona associata alla riga del metodo di pagamento.
-
Se vuoi, personalizza la tile dello storage di Payment Methods e salva tutti i cambiamenti.
Crea l'applicazione Payment Methods
¶
-
Torna alla Home, sotto-pannello Applications e crea l'applicazione Payment Methods basata sullo storage
Payment Methods
. -
Non hai bisogno di personalizzare l'applicazione. Payment Methods è pronta a registrare i metodi di pagamento.
Aggiungi i metodi di pagamento che potresti usare in Personal Budget.
Creare una relazione da Transactions
a Payment Methods
¶
Ora, devi stabilire una relazione fra i due storage. Dopodiché, dovrai configurare la relazione come una relazione di Lookup nell'applicazione.
-
Aggiungi un nuovo campo di tipo Numeric chiamato
PaymentMethodId
allo storage Transactions. -
Stabilire una Relazione fra
PaymentMethodId
e il campoIdPaymentMethod
dello storage Payment Methods. Chiama la relazionePayment_Methods_Lookup
. -
Salva tutti i cambiamenti allo storage Transactions e la nuova relazione.
Configura la Lookup Payment Methods
¶
-
Entra nel Design Mode dell'applicazione Personal Budget.
Configura la Relazione di Lookup di
PaymentMethodId
come segue: -
Rendi il campo
PaymentMethodId
visibile e rinomina l'etichetta di intestazione come Payment Method. -
Disponi la posizione della colonna Payment Method e personalizza l'aspetto nel sotto-pannello Layout.
-
Salva tutti i cambiamenti nel Design Mode di Personal Budget (Save ).
Sarai in grado di registra il metodo di pagamento per le righe di Personal Budget.
Estendere Payment Methods: Aggiungi la categoria di metodo di pagamento tramite una Lookup.¶
A questo punto, introduci nell'applicazione Payment Methods una colonna che specifica il tipo di metodo di pagamento. Per esempio: conto corrente, carta di credito o carta di debito.
-
Crea un nuovo storage Blank chiamato
Payment Methods Type
e aggiungi i seguenti campi.IdPaymentMethodType
Identity Il campo Identity per le righe di Payment Methods Type.Name
String Il nome della categoria del metodo di pagamento (es. conto corrente, carta di credito, carta di debito o contante)Icon
Icon Il campo di tipo Icona per l'icona associata alla categoria del metodo di pagamento.
-
Se desideri, personalizza la tile dello storage di Payment Methods Type e salva tutti i cambiamenti.
-
Torna all'editor storage di Payment Methods.
- Aggiungi un campo di tipo Numeric chiamato
PaymentMethodTypeId
. - Crea la relazione
Payment_Methods_Type_Lookup
fra il campoPaymentMethodTypeId
eIdPaymentMethodType
da Payment Methods Type.
- Aggiungi un campo di tipo Numeric chiamato
-
Salva tutti i cambiamenti sullo storage di Payment Methods.
-
Crea un'applicazione chiamata Payment Methods Type basata sullo storage Payment Methods Type.
-
Aggiungi i seguenti tipi di metodo di pagamento nell'applicazione e scegli un'icona:
- Cash
- Check
- Credit Card
- Debit Card
- Bank Transfer
-
Salva tutte le righe nell'applicazione Payment Methods Type.
-
Nel Design Mode di Payment Methods, configura come segue la relazione di Lookup corrispondente a
PaymentMethodTypeId
.Il risultato sarà simile all'immagine sotto.
-
Cambia l'intestazione del nome del campo
PaymentMethodTypeId
inMethod Type
, rendi la colonna visibile e se desideri personalizza la colonna in Layout. -
Salva tutti i cambiamenti nel Design Mode di Payment Methods (Save ) ed entra nell'applicazione.
Ora, la Lookup fra Payment Methods e Payment Methods Type funzionerà. Hai ottenuto un'applicazione più funzionale per gestire i tuoi metodi di pagamento usando le Lookup.
Esercizio: Crea una Lookup con una lista di Prodotti e Categorie Servizi per Personal Budget¶
Prova da solo ad aggiungere una Lookup per differenti tipi di prodotti o servizi pagati o ricevuti. (Qui puoi trovare la soluzione.)
Alla fine del tutorial. la mappa delle Lookup dovrebbe corrispondere all'immagine sotto.
Approfondimento: Valore predefinito per le Lookup¶
Note
Questo passaggio è opzionale.
La maggior parte delle righe in Personal Budget saranno spese. Sarebbe utile configurare "Expense" come valore predefinito per la Lookup Income/Expense.
Puoi usare la colonna Default Value nel sotto-pannello Formula di Design Mode.
- Accedi al Design Mode dell'applicazione Personal Budget.
-
Clicca sul pulsante del sotto-pannello Formula nell'angolo in alto a destra del sotto-pannello Master.
-
Clicca sulla casella di testo sotto la colonna Default Value corrispondente a Income/Expense.
-
Inserisci il valore 1 nella casella di testo. L'ID della riga corrispondente all'opzione "Expense" nello storage
Income Expense Type
è 1. -
Salva tutti i cambiamenti in Design Mode (Save ).
Per impostazione predefinita, l'applicazione Personal Budget riempirà la Lookup Income/Expense automaticamente con l'opzione che ha l'ID 1 nello storage Income Expense Type
: "Expense".
Congratulazioni, hai fatto conoscenza delle Lookup e di come funzionano.
Success
Il prossimo passo è la sezione Dettagli: mostrare dati secondari collegati a una riga. Imparerai cosa sono i Dettagli, come puoi crearli e come puoi applicare delle restrizione di modifica dati su di essi.