Richiamare e visualizzare ricerche diverse in un unico form

Discussioni sulle caratteristiche di database
Rispondi
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da Maurizio_senu »

Salve,
Stavo cercando di visualizzare in un formulario il contenuto di una ricerca su anni di quote versate dagli iscritti di una piccola associazione.
Vorrei, con un pulsante di controllo, richiamare e visualizzare la ricerca delle quote di un singolo anno all’interno del formulario, oppure aprire una finestra che visualizzi la ricerca.
Ho provato, come si può vedere nel dBase allegato, ma mi sembra macchinoso perché si riempirebbe il programma di altri form che vorrei evitare. Non è possibile richiamare direttamente le ricerche con un comando dal form principale?
Come posso procedere?

Un saluto Maurizio

Allego il file: 0 FORMULARIO_Iscritti_OK.odb

La mia versione di LibreOffice: 7.3.2.2 (x64) / LibreOffice Community
CPU threads: 8; OS: Windows 10.0 Build 19045;
Allegati
0 FORMULARIO_Iscritti_OK.odb
(81.92 KiB) Scaricato 40 volte
Ultima modifica di Maurizio_senu il giovedì 19 gennaio 2023, 16:28, modificato 1 volta in totale.
versione Libreoffice 7.0.4.2 con windows 8.1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da charlie »

Ciao, nel file che hai postato vedo un form per ricerca Socio, modifica e inserimeto dati.
Mi sembra che il pulsante Aggiorna sia stato duplicato, c'è un motivo?
Se poi ho capito bene vorresti, una volta individuato il Socio, vedere la quota relativa ad un anno specifico. È corretto?
Non condivido il modo che hai scelto per farlo, proporrei un secondo campo nella tabella Filtro sul quale basare la ricerca dell'anno interessato.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da Maurizio_senu »

No, mi sono spegato male, vorrei vedere, una volta selezionato l'anno, l'elenco degli iscritti che hanno versato la quota,
e se possibile mi interessa poi riuscire a visualizzare anche l'elenco, sempre riferito al medesimo anno, dei soci con l'età inferiore a 35 anni.
Pensi che sia più pratico e agevole utilizzare un campo aggiunto alla tabella "Filtro", che, nel database sul quale sto lavorando, viene utilizzata per la ricerca e per le eventuali modifiche dei dati. Tabella Filtro che viene anche utilizzata per la ricerca e la visualizzazione dei soci per cognome, attraverso una ricerca con il criterio "COME ( '%' || :Cognome || '%' )".
versione Libreoffice 7.0.4.2 con windows 8.1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da charlie »

Credo che il database vada ripensato, non compaiono gli anni e l'età degli iscritti.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da Maurizio_senu »

Buon giorno,
Allego dBase aggiornato con l'età
Allegati
0 FORMULARIO_Iscritti_Ricerca_Età.odb
(130.98 KiB) Scaricato 33 volte
versione Libreoffice 7.0.4.2 con windows 8.1
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da Maurizio_senu »

odb non completo l'ho aggiornato e riallego
Allegati
0 FORMULARIO_Iscritti_Ricerca_Età.odb
(111.4 KiB) Scaricato 38 volte
versione Libreoffice 7.0.4.2 con windows 8.1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da charlie »

Per l'età, va bene: basta una query e si risolve. Ma per l'anno torniamo alle problematiche già affrontate qui: viewtopic.php?p=65683#p65683 e forse altrove.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da Maurizio_senu »

Ho impostato una query per età, ma non mi piace la visualizzazione perchè ho dovuto aggiungere un form per ogni anno per potere visualizzare per ogni anno tutti i soci con meno di 35... non c'è un modo più pratico che con una ricerca per anno mi restituisce una tabella con i soci con meno di 35 anni?
versione Libreoffice 7.0.4.2 con windows 8.1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da charlie »

È la ricerca per anno il problema. Gli anni non sono nel contenuto dei record, ma nell'intestazione dei campi (Quota_....).
Puoi fare una ricerca per età visualizzando tutti gli anni insieme:

Codice: Seleziona tutto

SELECT "Soci"."ID", "Soci"."Nome", "Soci"."Cognome", "Soci"."Città", "Soci"."Professione", "Soci"."Quota_2019", "Soci"."Quota_2020", "Soci"."Quota_2021", "Soci"."Quota_2022", "Soci"."Quota_2023", "Soci"."Quota_2024", DATEDIFF( 'yy', "Data_di_Nascita", NOW( ) ) AS "Età" FROM  "Soci" WHERE DATEDIFF( 'yy', "Data_di_Nascita", NOW( ) ) < 35
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da Maurizio_senu »

buona giornata,
la query l'avevo già provata nel mio dbase, ma non funzione correttamente, infatti se ricerco i soci con età minore di 35 anni, compaiono tutti i soci, anche quelli che in qualche anno non hanno versato quote, ed anche quelli che ad esempio nell'anno 2019 compiono 33 anni e nell'anno 2021 non dovrebbero essere presenti se nella query si richiede un'uscita di: < di 35 anni.
"È la ricerca per anno il problema. Gli anni non sono nel contenuto dei record, ma nell'intestazione dei campi (Quota_....).""
Inoltre nel database che sto usando il campo anno è nominato 2019...2020...2021 ecc....quindi forse si potrebbe utilizzare l'anno nella query...
versione Libreoffice 7.0.4.2 con windows 8.1
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da Maurizio_senu »

Invio file dbase "3__FORMULARIO_Iscritti_Ricerca_Età.odb" aggiornato con modifica caampo quote (2019,2020 ecc...)
Allegati
3__FORMULARIO_Iscritti_Ricerca_Età.odb
(131.62 KiB) Scaricato 37 volte
versione Libreoffice 7.0.4.2 con windows 8.1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da charlie »

  • Dipende da quando deve essere calcolata l'età, se attuale è quella di cui ho postato la query, o alla fine di ogni anno che richiederebbe qualcosa del genere:

    Codice: Seleziona tutto

    SELECT "ID", "Nome", "Cognome", "Città", "Professione", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2019-12-31' ) < 35, "2019", NULL ) AS "2019", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2020-12-31' ) < 35, "2020", NULL ) AS "2020", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2021-12-31' ) < 35, "2021", NULL ) AS "2021", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2022-12-31' ) < 35, "2022", NULL ) AS "2022", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2023-12-31' ) < 35, "2023", NULL ) AS "2023", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2024-12-31' ) < 35, "2024", NULL ) AS "2024", DATEDIFF( 'yy', "Data_di_Nascita", NOW( ) ) AS "Età" FROM "Soci"
  • Come già detto, il codice SQL è applicabile al contenuto dei campi e non all'intestazione dei campi stessi
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Maurizio_senu
Messaggi: 110
Iscritto il: sabato 13 febbraio 2021, 9:41

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da Maurizio_senu »

Va bene
ho aggiunto in età: <35 per non visualizzare i report non utili ai fini della ricerca
\grazie mille

però nel file allegato adesso dovrei fare in modo di non visualizzare i soci che nell'ultimo anno, anche se sono minori di 30 anni, non hanno pagato la quota annuale [come nel caso di Gigi Neri nel 2022].
Allegati
uscita ricerca minori 35.jpg
uscita ricerca minori 35.jpg (32.69 KiB) Visto 1123 volte
versione Libreoffice 7.0.4.2 con windows 8.1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8819
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Richiamare e visualizzare ricerche diverse in un unico form

Messaggio da charlie »

Basta ricorrere ad uno stratagemma:

Codice: Seleziona tutto

SELECT "Soci"."ID", "Soci"."Nome", "Soci"."Cognome", "Soci"."Città", "Soci"."Professione", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2019-12-31' ) < 35, "2019", NULL ) AS "2019", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2020-12-31' ) < 35, "2020", NULL ) AS "2020", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2021-12-31' ) < 35, "2021", NULL ) AS "2021", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2022-12-31' ) < 35, "2022", NULL ) AS "2022", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2023-12-31' ) < 35, "2023", NULL ) AS "2023", CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2024-12-31' ) < 35, "2024", NULL ) AS "2024", DATEDIFF( 'yy', "Data_di_Nascita", NOW( ) ) AS "Età" FROM "Soci" AS "Soci_1", "Soci" WHERE "Soci_1"."ID" = "Soci"."ID" AND NOT CASEWHEN( DATEDIFF( 'yy', "Data_di_Nascita", '2022-12-31' ) < 35, "2022", NULL ) IS NULL
meglio visibile nel db, Ricerca1.
Allegati
4__FORMULARIO_Iscritti_Ricerca_Età.odb
(132.15 KiB) Scaricato 51 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Rispondi