Mancata visualizzazione della seconda tabella in "Master/details view"

Buongiorno,

DaDaBIK 9.3 (senza patch) Enterprise su Ubuntu Ubuntu 16.04, MariaDB Ver 15.1 Distrib 10.0.38-MariaDB, PHP 7.0.33-0ubuntu0.16.04.5, Apache/2.4.18 (Ubuntu)

Ho due tabelle e una vista fatta con un join e un paio di regole nel WHERE.

Nella vista ci sono anche i due PRIMARY INDEX delle aziende che all'utente standard non vengono visualizzati.

Ho impostato nei Master/details view dei due campi i valori delle due tabelle.

La vista funziona perfettamente però, cliccando sui dettagli, in fondo alla pagina compaiono solo i dettagli della prima tabella mentre della seconda viene scritto sotto al nome della tabella "No items found." Ovviamente i dati ci sono, anche perché parte di essi sono già nella vista.

Entrambe le tabelle (che sono importate da un archivio esterno) hanno un indice primario testuale a sei caratteri CHAR(6).

Nel form configurator entrambe le tabelle hanno impostato il campo indice come "text", che viene impostato automaticamente in fase di installazione delle tabelle. Ho provato a cambiare il tipo senza successo.

Suggerimenti su come risolvere il problema?
 
Aggiungo: ho fatto ulteriori prove, poiché nella vista compiono gli indici delle due tabelle ho provato a definire come Unique field prima l'indice della tabella A e poi della tabella B: i dettagli che vengono visualizzati sono relativi solamente alla tabella a cui fa riferimento il campo della vista definito come Unique field.

Certamente c'è qualcosa che non ho capito nel funzionamento di DaDaBik, però se qualcuno ha idea di come possa fare a superare l'impasse.... ;-)

Grazie
Claudio
 

eugenio

Administrator
Staff member
Buongiorno Claudio,
non mi è chiaro lo schema delle tre tabelle, consideri comunque che se ad una tabella "master" vuole associare due tabelle "details" deve comunque impostarle entrambe sul campo chiave primaria della tabella master, è quello che è stato fatto?

Riguardo al campo "unique field": deve essere scelto il campo che in effetti è chiave primaria (o indice univoco) della tabella/vista, qualsiasi altra scelta non è corretta. Se si tratta di una tabella, normalmente non è necessario fare nulla perché dadabik riconosce la chiave primaria e la imposta come unique field, per le viste invece va fatto manualmente.

Saluti,
 
tabella A

company_id (CHAR6) (chiave primaria)
rag_soc
p_iva
cf
ecc...

tabella B

lease_id (CHAR6) (chiave primaria)
data_inizio
data_fine
company_id (foreign key)
marca
modello
ecc...

select (alcuni campi delle due tabelle) from A join B on A.company_id = B.company_id WHERE data_inizio between... (ecc.)

Ho impostato nei Master/details view dei due campi i valori delle due tabelle.

Se imposto lease_id come unique_field della vista nei dettagli vedo solo la tabella B, mentre se imposto company_id nei dettagli vedo solo la tabella A, l'altra tabella risulta vuota (c'è l'intestazione ma non si vede nulla).

Al momento ho risolto facendo una select * e andando a filtrare i campi visibili nei details, senza specificare Master/details view: poco elegante ma funziona. Rimane il dubbio se si tratta di un problema mio specifico, di una errata interpretazione del funzionamento di DaDaBik o di qualche altra cosa. Grazie del supporto ;-)

Claudio
 
Mancava il nome della vista

vista ricerca_contratti_in_scadenza

select (alcuni campi delle due tabelle) from A join B on A.company_id = B.company_id WHERE data_inizio between... (ecc.)

Il problema (banale) da risolvere è quello di dare ad una operatrice la lista delle telefonate da fare per rinnovare i contratti, facendole apparire una lista con pochi dati in ordine di scadenza. Cliccando sui dettagli l'operatrice deve poter vedere tutti i dettagli dell'azienda e del contratto di noleggio.

Cordialità,
Claudio
 

eugenio

Administrator
Staff member
Buongiorno,
lo schema e la sua configurazione ancora non mi sono chiari, dalle sue parole mi sembra di capire che ha impostato in form configurator, su due campi diversi, i parametri di master/details, se è così, non è corretto.

Le faccio un esempio molto semplice:

tabella fatture (id_fattura (PK), data_fattura, id_cliente, etc etc etc ) -> tabella master

tabella items_fatture (id_item_fattura (PK), id_fattura (FK), id_prodotto, quantita_prodotto, etc etc etc) -> tabella details

ciò che devo fare in form configurator è:

1) campo fatture.id_fattura: aggiungere qua i parametri di master/details: tabella items_fatture e foreign key id_fattura

2) campo items_fatture.id_fattura deve essere un select_single lookup che prende i valori di fatture

immaginiamo ora di voler aggiungere un'ulteriore tabella di items, che deve risultare anch'essa sotto fatture

items_fatture_2 (id_item_fattura_2 (PK), id_fattura (FK), etc etc etc) -> seconda tabella details

devo fare esattamente le stesse cose

1) campo fatture.id_fattura: aggiungo un SECONDO parametero master/details: tabella items_fatture_2 e foreign key id_fattura

2) campo items_fatture_2.id_fattura deve essere un select_single lookup che prende i valori di fatture

la sua configurazione è stata fatta in questo modo?

Cordiali saluti,
 
Buongiorno,

grazie della risposta. In effetti avevo impostato il master/details su due campi diversi della stessa vista, quindi stavo utilizzando DaDaBik in maniera erronea. Sicuramente da qualche parte della documentazione era scritto, ma a volte la necessità di dare una risposta rapida al cliente fa fare supposizioni errate. Buona giornata e grazie per il supporto.

Claudio
 
Top