Portali e Riassunti

Portali e Riassunti

Categoria:
0
0

salve a tutti,

il mio database si pone come obiettivo la gestione di un ‘azienda che produce marmellata e la distribuisce in conto vendita. Nella versione più semplice possibile è costituito da 3 tabelle principali (produzione, prodotto, distribuzione) e 2 secondarie (join_produzione-prodotto e join_prodotto-distribuzione).

il problema sorge nel formato “Distribuzione” dove si trovano due portali: il primo basato su “join_prodotto-distribuzione” che mi permette dunque di dire inserire la quantità di pezzi per gusto consegnati al locale con le varie bolle di trasporto nel tempo [perfettamente funzionante]; il secondo che vorrei riportasse solo i vari gusti posseduti dal locale ed il totale dei pezzi consegnati.

su quale tabella devo basare il mio portale? devo creare un campo riassunto?

io ho provato a basarlo su “prodotto” ed al momento funziona riportando solo i nomi dei gusti presenti in quel locale, ma come potete immaginare a me interessa di piu’ sapere quanti pezzi sono stati consegnati. in allegato il mio file.

Segnalato come spam
Pubblicata da (Domande: 20, Risposte: 32)
Domanda inviata 23 Gennaio 2016 11:53
60 vis.
0
Domanda privata

in linea di massima la funzione EseguiSQL permette di eseguire una query libera (anche se supporta solo l’istruzione SELECT). La query va nel primo parametro, e permette di cercare dati nel file FileMaker senza bisogno di relazioni, in quanto tutti i vincoli che FileMaker gestisce con relazioni e TO vanno specificati mediante WHERE. Per il resto, se inserita in un campo calcolato, questo si comporta come un qualsiasi calcolato in FM, quindi di solito va inserito nella tabella afferente al formato su cui deve apparire. Di solito io scrivo in maiuscolo i comandi SQL e in minuscolo nomi campo e variabili, quindi nel tuo caso:
il campo va creato nella tabella Distribuzioni, e dovrebbe essere un qualcosa del genere:
EseguiSQL(”SELECT nome_gusto, sum(q.tà) from join_pd GROUP BY nome_gusto WHERE id_distributore=?”; ””;””; distribuzione::id)

con l’avvertenza che il campo q.tà va rinominato togliendo l’accentata, e un campo con il nome del gusto andrebbe creato. In caso puoi aggiungere anche un SORT BY alla fine della query se vuoi anche l’ordine alfabetico per un campo.

a presto!

.g.

Segnalata come spam
Pubblicata da (Domande: 0, Risposte: 1544)
Risposta inviata 24 Gennaio 2016 19:05
0
Domanda privata

mi scuso subito per l’ignoranza dimostrata.  di seguito un link che spiega passo passo come integrare l’ SQL in un database FM12+

http://filemakerhacks.com/2012/04/16/fm-12-executesql-part-1/

Segnalata come spam
Pubblicata da (Domande: 20, Risposte: 32)
Risposta inviata 24 Gennaio 2016 17:15
0
Domanda privata

molto interessante la soluzione con SQL, anche perchè ad occhio e’ proprio quella che fa al caso mio. ho filemaker pro advance 14 in italiano, dunque ( non sapendone niente di SQL) mi chiedo: in quale tabella creare questo campo calcolato?  devo tradurre o ingnorare le parole SELECT, GROUP BY, WHERE (il sistema nn me le suggerisce quando scrivo una funzione)?

link file:

https://www.dropbox.com/s/ydo2xr19v53huqw/kconick.fmp12?dl=0

link immagine tabelle-relazioni:

https://www.dropbox.com/s/tpoeq9526ohnsv5/Schermata%202016-01-23%20alle%2017.30.54.jpg?dl=0

Segnalata come spam
Pubblicata da (Domande: 20, Risposte: 32)
Risposta inviata 24 Gennaio 2016 12:35
0
Domanda privata

Buonasera!

ci sono due strade:
la prima – più immediata ma un po meno flessibile e utilizzabile sono con filemaker 12 e successivi –  è utilizzare un campo calcolato con un eseguiSQL. Qualcosa tipo: EseguiSQL(”SELECT nome_gusto, sum(quantita) from join_prodotto_distribuzione GROUP BY nome_gusto WHERE id_cliente=?”; ””;””; distribuzione::id_cliente). i nomi dei campi vanno adattati e devono seguire le regole SQL (niente spazi nel nome campo o tabella, niente accentate, nomi case sensitive) e presumo che il campo id_cliente sia la chiave primaria che identifica il cliente in entrambe le tabelle.

la seconda è creare una ulteriore tabella di join (gusti_cliente) che alimenti via script man mano che modifichi la distribuzione (o via trigger in uscita formato). Per capire se un gusto già esiste ed evitare duplicati puoi utilizzare i comandi Lista() e contaricorrenze().

facci sapere!

.g.

Segnalata come spam
Pubblicata da (Domande: 0, Risposte: 1544)
Risposta inviata 23 Gennaio 2016 19:17



Nessuna domanda trovata.