Caselle di riepilogo collegate (annidate)

Qui ci si presenta e si parla di tutto un po' ... ma rimanendo nel mondo informatico.
Rispondi
dylan68
Messaggi: 5
Iscritto il: lunedì 24 settembre 2012, 9:17

Caselle di riepilogo collegate (annidate)

Messaggio da dylan68 »

Premettendo che sono un novizio di OpenOffice e che ho provato a eseguire alcune ricerche (infruttuose) sul forum, provo ad esporvi la mia problematica.
Sto realizzando un DB che vuole raccogliere articoli vari di argomento lavorativo. Questi articoli dovrebbero essere raggruppati in categorie, sottocategorie, sotto-sotto categorie etc. Per semplificare l'inserimento dei dati, ho pensato di creare un collegamento tra (ad esempio) categorie e sotto categorie, in modo tale che la casella di riepilogo della sotto categoria mi proponga solo dati filtrati dopo la precedente scelta della categoria.
Proverò a spiegarmi meglio con un esempio:
Categorie: A, B, C, D
Sotto Categorie: A1, A2, A3, B1, B2, B3, B4, C1, C2, D1, D2, D3, D4, D5
Sotto-sotto Categorie: A1_1, A1_2, A2_1, A2_2, A2_3, A3_1, A3_2, etc
Vorrei trovare il modo, all'inserimento di un nuovo articolo, di eseguire una sorta di "filtro" in modo tale da evitare che la caselle di riepilogo (sotto categoria e sotto-sotto categoria) mi propongano TUTTI i possibili valori.
In sostanza: se il nuovo articolo fa parte della categoria "A", vorrei che nella casella di riepilogo "sotto categorie" mi venissero proposti SOLO i valori A1, A2 e A3. Nello stesso modo, scelta la sotto categoria A1, la casella di riepilogo dovrebbe proporre SOLO i valori A1_1, A1_2.
Ho provato in vari modi (sicuramente sbagliati) e non ho trovato la soluzione.
Qualcuno riesce a darmi una mano?
Allegati
dbprova.odb
In allegato l'esempio di DB con le varie tabelle.
(16.51 KiB) Scaricato 276 volte
OpenOffice 3.2.0 su Windows 7
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

Re: Caselle di riepilogo collegate (annidate)

Messaggio da LUGIUDANI »

Ciao dylan68, ho postato anch'io questo quesito e grazie a Mizio1961 sono riuscita a trovare la soluzione e provo a spiegarti il procedimento.
Premetto che non sono un'esperta ma credo di aver capito quello che vuoi fare, ci provo ad aiutarti.
Prima di tutto devi modificare le tabelle, perchè per avere il risultato che vuoi devi creare una tabella che unisca l'ID delle tabelle che ti interessano. Da quello che ho capito tu vorresti che scegliendo da una casella di riepilogo un autore ti dia in successione la categoria, sottocategoria e la sottosottocategoria esclusivamente dell'autore scelto. Quindi dovresti prima di tutto creare un'unica tabella con un ID univoco per la Categoria, Sottocategoria e SottoSottocategoria, esempio: come nome campi potresti scrivere IDCAT - Categoria - SottoCategoria - SottoSottoCategoria, il primo IDCAT mettilo come chiave primaria INTEGER e le altre voci di campo potresti mettere Testo(VARCHAR) se alla fine vorrai scrivere un testo oppure Numero se dovranno essere dei numeri. Come tipo campo per l'IDCAT puoi scegliere tu se avere un valore automatico o se lo vuoi inserire tu.
Dopo di che nella tabella dovrai inserire i dati da unificare, ad esempio IDCAT inizia con 0 e poi inserisci la Categoria A, la SottoCategoria A1 e la SottoSottoCategoria A1_1 e successivamente nella seconda riga metterai IDCAT 1, Categoria A, SottoCategoria A2 e SottoSottoCategoria A1_2 e così via...
Facendo così non avresti nemmeno bisogno delle tabelle Sotto Categoria e Sotto-Sotto Categoria, perchè semplificheresti tutto in un'unica tabella, altrimenti se vuoi comunque mantenere le altre tabelle allora devi inserire al posto del nome campo Categoria l'ID Categoria, per la SottoCategoria l'ID Sottocategoria e lo stesso per la Sotto Sotto Categoria.
Fino a qui hai capito?
Openoffice.org 3.2
dylan68
Messaggi: 5
Iscritto il: lunedì 24 settembre 2012, 9:17

Re: Caselle di riepilogo collegate (annidate)

Messaggio da dylan68 »

Ciao Lugiudani e grazie per il tentativo.
In realtà (e sicuramente non mi sono spiegato bene) il mio obiettivo è non quello di (come tu scrivi) "scegliere da una casella di riepilogo un autore ti dia in successione la categoria, sottocategoria e la sottosottocategoria esclusivamente dell'autore scelto", ma di poter realizzare, DURANTE L'INSERIMENTO DI NUOVI ARTICOLI, una sorta di filtro (non credo serva una macro) in modo che, una volta inserita, ad esempio, la Categoria (tramite casella di riepilogo), durante il successivo inserimento della Sottocategoria NON mi vengano presentate TUTTE le varie possibili, ma SOLO quelle che derivano dalla precedente scelta della categoria.
In pratica: se scelgo la Categoria A, aprendo la casella di riepilogo Sotto Categoria vorrei trovare solo A1, A2, A3 etc e NON B1 e B2 etc.

Ho comunque provato, come consigliavi tu, ad accorpare tutto in una tabella, più che altro per farmi venire in mente qualcosa. Chiaramente non ho risolto il problema.
Credo che dovrei individuare l'approccio (o il metodo) giusto...
Grazie comunque.
OpenOffice 3.2.0 su Windows 7
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

Re: Caselle di riepilogo collegate (annidate)

Messaggio da LUGIUDANI »

Scusa, ora ho capito. Allora dovresti solo cambiare il campo di dati nel campo di controllo della casella di riepilogo Sotto Categoria e Sotto Sotto Categoria.
Devi entrare nel campo di controllo delle caselle e inserire nel campo di dati di entrambi Categoria. Prova e dimmi se funziona
Openoffice.org 3.2
Avatar utente
LUGIUDANI
Messaggi: 400
Iscritto il: martedì 27 marzo 2012, 12:29

Re: Caselle di riepilogo collegate (annidate)

Messaggio da LUGIUDANI »

Inoltre ti consiglio per ogni tabella di dare un numero Identificativo (ID) crea meno problemi nell'assemblare i dati da una tabella ad un'altra!
Openoffice.org 3.2
dylan68
Messaggi: 5
Iscritto il: lunedì 24 settembre 2012, 9:17

Re: Caselle di riepilogo collegate (annidate)

Messaggio da dylan68 »

Rieccomi.
Ho provato a cambiare il campo di dati nel campo di controllo della casella di riepilogo "Sotto Categoria", inserendo "Categoria", come mi indicavi.
Risultato: niente da fare. Provando a inserire un nuovo articolo, pur scegliendo la Categoria (ad es. "B"), la casella di riepilogo "Sotto Categoria" continua a propormi TUTTE le possibilità (quindi A1, A2, A3, B1, B2, C1, C2 etc).
E' come se servisse un filtro o una funzione per "aggiornare" la lista della Sotto Categoria.
Però non so come fare.
Ok per l'identificativo delle varie tabelle.
OpenOffice 3.2.0 su Windows 7
dylan68
Messaggi: 5
Iscritto il: lunedì 24 settembre 2012, 9:17

Re: Caselle di riepilogo collegate (annidate)

Messaggio da dylan68 »

Provo a fare un altro esempio che potrà, credo, permettere una migliore comprensione della mia problematica.
Invece di ragionare di Categorie, Sotto Categorie etc, parliamo invece di "Regioni", "Provincie" e "Comuni" a cui un utente appartiene.
Quindi:
Durante l'inserimento di un nuovo record nel formulario, il primo step è quello di scegliere, tramite elenco a discesa, la regione di appartenenza (questo è facile...). Il secondo step sarà quello della provincia: avendo scelto, ad es, la regione Toscana, vorrei poter scegliere, dalla casella di riepilogo, SOLO LE PROVINCIE TOSCANE. Stesso discorso per i comuni: scelta la provincia di Firenze, la casella di rIepilogo dovrebbe propormi SOLO I COMUNI CHE SI TROVANO NELLA PROVINCIA DI FIRENZE.

Passaggi:
INSERIMENTO NUOVO RECORD --> SCELTA REGIONE --> FILTRO LEGATO A REGIONE SCELTA --> SCELTA PROVINCIA --> FILTRO LEGATO A PROVINCIA SCELTA --> SCELTA COMUNE.

Quello che non riesco a realizzare, chiaramente, sono quelli che ho chiamato "filtri" (Macro? Funzioni?).
Ora credo sia più chiaro e spero che qualcuno abbia già dovuto affrontare (e risolvere...) la cosa.
OpenOffice 3.2.0 su Windows 7
Avatar utente
Mizio1961
Volontario
Volontario
Messaggi: 841
Iscritto il: mercoledì 5 ottobre 2011, 22:55
Località: Roma

Re: Caselle di riepilogo collegate (annidate)

Messaggio da Mizio1961 »

Ciao Dylan
Ho dato un'occhiata veloce al tuo DB e mi pare che la soluzione sia la prima che ti ha consigliato Lugiudani
Comunque per iniziare guardati questo esempio di lavoro su Base; è relativo alla gestione di una biblioteca ma spiega molti passaggi che sono comuni a tutti i lavori con Base.
http://www.comunecampagnano.it/gnu/bibl ... roautoexec
E' oltretutto fondamentale che riesci a schematizzare correttamente ciò che vuoi fare e l'uso di campi indice numerici può comunque aiutare, come ti ha detto Lugiudani.
Se non trovi soluzione diretta nell'esempio di cui ti ho inserito il link allora occorrono forzatamente delle macro, che sono quelle di cui ti parla Lugiudani.
Dai un'occhiata eppoi facci sapere se hai cavato il famoso ragno dal buco.
Saluti by Mizio (...e buon divertimento) ;)
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto. ;-)
dylan68
Messaggi: 5
Iscritto il: lunedì 24 settembre 2012, 9:17

Re: Caselle di riepilogo collegate (annidate)

Messaggio da dylan68 »

Ciao Mizio.
Avevo già dato una occhiata al DB biblioteca che hai messo nel link.
E' sicuramente molto interessante ma non ho trovato la soluzione al mio problema.
E, purtroppo, le soluzioni di Lugiudani non hanno avuto successo (sarà forse colpa mia...).
Continuerò a fare delle prove; se qualcuno ha ulteriori suggerimenti è il benvenuto.
OpenOffice 3.2.0 su Windows 7
Avatar utente
Mizio1961
Volontario
Volontario
Messaggi: 841
Iscritto il: mercoledì 5 ottobre 2011, 22:55
Località: Roma

Re: Caselle di riepilogo collegate (annidate)

Messaggio da Mizio1961 »

Ciao Dylan
Accedi a questa casella mail:
Nome utente: oodocs.tutorial@gmail.com
Password: oodocs2012tut
Ci ho messo un esempio di formulario sulla base del tuo db
Ci trovi una casella di riepilogo che filtra l'autore con sotto la tabella libri che ti fa vedere il risultato
Lo stesso sistema si può usare a cascata per popolare una seconda casella di riepilogo e una terza ecc ecc
All'interno del db trovi anche le macro che supportano il tutto
Fammi sapere se riesci a usare questo metodo per le tue idee
Saluti by Mizio
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto. ;-)
Rispondi