Manuale · 3

Record figli

Mostra tutte le righe di un’altra tabella che fanno riferimento a questa riga tramite chiave esterna – come elenco, non come valore singolo. È l’inverso di un campo di chiave esterna: lì la riga “figlia” punta alla sua unica riga “genitore”, qui la riga “genitore” mostra tutte le sue righe figlie in una volta.

Esempio pratico: una fattura deve mostrare le proprie voci come elenco – una colonna “Voci” sulla tabella fatture, che elenca tutte le righe corrispondenti di voci_fattura.

Nel caso serva solo un valore aggregato sulle righe figlie (ad es. “numero di voci” o “somma di tutti i prezzi delle voci”), spesso basta un più semplice campo rollup. Un campo record figli conviene quando devono essere visibili le singole righe stesse – nella vista griglia, come elenco nel modulo o in un template documento.

Creazione

Quando aggiungi una nuova colonna, nella scheda “Record figli” scegli:

  1. la tabella figlia (una qualsiasi altra tabella della stessa origine dati),
  2. il suo campo di chiave esterna, che fa riferimento a questa tabella,
  3. le colonne da visualizzare della tabella figlia (selezione multipla – se la selezione resta vuota, vengono mostrate tutte le colonne reali della tabella figlia).

Un campo record figli è puramente in sola lettura: le righe non possono essere aggiunte o rimosse direttamente dalla riga genitore – ciò significherebbe modificare il campo di chiave esterna della riga figlia. Per aggiungere, rimuovere o modificare i valori di una riga figlia, la apri tramite la sua tabella o con un clic (vedi sotto).

Visualizzazione nella vista griglia

Una cella mostra sempre un badge con il numero di righe figlie trovate, ad es. “3 record” – indipendentemente da quante colonne sono state selezionate, a differenza dei campi link non esiste una vista inline come chip, perché record figli con più colonne non si prestano bene a questo formato.

Un clic sul badge apre una finestra con una tabella semplice: una colonna per ogni colonna figlia selezionata, una riga per ogni record figlio. Un clic su una riga apre il record completo della tabella figlia per la modifica.

Nella riga di riepilogo in fondo alla vista griglia, per una colonna record figli è disponibile solo COUNT – conta il numero totale di tutte le righe figlie su tutte le righe genitore attualmente mostrate (non solo il conteggio nel badge di una singola riga). SUM, AVG, MIN e MAX non esistono per questo tipo di campo – per un singolo numero aggregato sulle righe figlie (ad es. una somma) la scelta giusta è un campo rollup.

Nei template documento

Un campo record figli può essere usato in un template documento come elenco iterabile, esattamente come nell’esempio sopra:

{% for item in positionen %}
  {{ item.bezeichnung }} -- {{ item.menge }} x {{ item.einzelpreis }}
{% endfor %}

Ogni elemento (item) porta esattamente le colonne selezionate al momento della creazione della colonna.

Modificare la connessione in un secondo momento

Tramite il menu contestuale della colonna → “Modifica campo” puoi adattare in qualsiasi momento la connessione di un campo record figli esistente, senza dover eliminare e ricreare la colonna. Nella finestra di modifica, oltre al nome del campo e al formato di visualizzazione, compaiono menu a discesa preselezionati oppure una selezione multipla per:

  1. la colonna FK figlia (tabella figlia insieme al campo di chiave esterna che fa riferimento a questa tabella),
  2. le colonne da visualizzare della tabella figlia (selezione multipla).

Entrambi possono essere modificati in modo indipendente; un clic su “Salva” applica subito la nuova connessione.

Limitazioni note

  • Non filtrabile (come Rollup – Lookup e Link invece lo sono).
  • Nessun limite per riga genitore: vengono caricate tutte le righe figlie corrispondenti, anche se sono moltissime.

Nel caso serva solo un valore della riga di destinazione nella direzione opposta (la riga figlia guarda alla propria riga genitore), vedi Lookup.