[Risolto] Base, Formulario, campo calcolato

Discussioni sulle caratteristiche di database
Rispondi
fabius13
Messaggi: 8
Iscritto il: mercoledì 17 agosto 2016, 8:21

[Risolto] Base, Formulario, campo calcolato

Messaggio da fabius13 »

Buonasera a tutti,
premetto che non sono molto esperto, sto cercando di realizzare un database, che allego, ed avrei la necessità di visualizzare in un campo del formulario f_pagamenti_associati, il totale da pagare,ricavandolo dalla differenza fra il campo totale corsi, meno il tot pag effettuati, ma non ci riesco, penso sia
necessario fare una macro, ma purtroppo non ci sono riuscito, inoltre, se possibile, mi piacerebbe che i campi importi, data e modalità pagamento siano
vuoti, pronti per ricevere i dati da inserire.
Utilizzo OpenOffice versione 4.1.2 su sistema windows 10.
Grazie infinite per l'attenzione e l'aiuto.
Allegati
danza_database.odb
(139.78 KiB) Scaricato 382 volte
Ultima modifica di fabius13 il martedì 30 agosto 2016, 23:52, modificato 2 volte in totale.
OpenOffice versione 4.1.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Base, Formulario, campo calcolato

Messaggio da charlie »

Ciao, senza entrare nel merito di tutto il database, ho semplicemente fatto una copia semplificata delle 2 query che adoperi nel formulario e calcolato la differenza in Query1. Il risultato l'ho riportato nel formulario stesso. Funziona, mi pare.
Allegati
danza_database-2.odb
(139.58 KiB) Scaricato 527 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
fabius13
Messaggi: 8
Iscritto il: mercoledì 17 agosto 2016, 8:21

Re: Base, Formulario, campo calcolato

Messaggio da fabius13 »

Grazie infinite Charlie, funziona perfettamente. :super:

Mi sono reso conto, che con il passare dei mesi l'importo da pagare per associato, campo "totale_corsi1", del formulario f_pagamenti_associati,
deve aumentare in base ai mesi trascorsi, tenendo presente che il periodo di tempo interessato è da Settembre a Giugno, è possibile?

Inoltre è possibile che un associato si iscriva successivamente all'inizio dei corsi (Settembre), quindi l'importo da pagare dovrebbe essere calcolato,
su base mensile, dalla data dell'iscrizione dell'associato, non so però se è possibile gestire questa variabile.

Ti chiedo poi, se è possibile, che i campi, importi, data, e modalità pagamento, del formulario f_pagamenti_associati, risultino vuoti, pronti per
ricevere i dati da inserire manualmente.

Allego il db con le variazioni effettuate, Ti ringrazio ancora per il grande aiuto che mi hai dato.
Ciao
Allegati
danza_database.odb
(130.63 KiB) Scaricato 241 volte
OpenOffice versione 4.1.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Base, Formulario, campo calcolato

Messaggio da charlie »

charlie ha scritto:senza entrare nel merito di tutto il database ...
Il tuo database ha una struttura un po' complessa, con molte tabelle. Dovresti fare una descrizione per farlo capire.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
fabius13
Messaggi: 8
Iscritto il: mercoledì 17 agosto 2016, 8:21

Re: Base, Formulario, campo calcolato

Messaggio da fabius13 »

Sto cercando di fare un db per la gestione di una associazione sportiva di danza, con la tabella associati si dovranno registrare i dati degli associati che faranno parte dell'associazione, per i minorenni ho previsto due tabelle collegate, t_genitore_1 e t_genitore_2, per la registrazione dei dati dei genitori.

Colgo l'occasione per dire che nei formulari "f_genitore1" e "f_genitore2" non sono riuscito ad inserire un filtro automatico, che avrei voluto mettere, per calcolare in automatico, prendendo come base la data del sistema, e quindi filtrare nel campo "campo di controllo tabella" di entrambi i formulari, solo gli associati minorenni,
ho bai passato il problema inserendo nei formulari f_genitore_1 e f_genitore_2, nel formulario principale chiamato "associati_minorenni", proprietà, campo dati, il
seguente filtro: ( "t_associati"."data_nascita" > {D '1998-09-01' } ), che però è un dato fisso e quindi bisogna aggiornarlo manualmente, scusami per la divagazione.

Ho poi previsto le tabelle t_corsi per l'indicazione dei corsi che si possono frequentare e i relativi costi, la tabella t_pagamenti_corsi_associati, dove vengono registrati i pagamenti effettuati dagli associati utilizzando il formulario f_pagamenti_associati, la tabella t_staff per registrare i dati personali del personale dello staff, collegata alla tabella t_ruoli_staff (insegnanti, segretarie, ecc.), alla tabella t_metodi_pagamenti_staff (metodi pagamento per il personale dello staff es. mensile, orario, percentuale), alla tabella t_pagamenti_retribuzioni_staff (per registrare i pagamenti effettuati al personale dello staff), alla tabella di raccordo t_staff_ruoli_corsi_metodiretribuzionistaff_importi, dove registrare tramite il formulario f_personale_staff, per ogni persona facente parte dello staff, i dati personali, il ruolo, i corsi che insegnano, il metodo di pagamento dei compensi e il relativo importo, che viene acquisito dalla tabella t_importi dove sono memorizzati tutti gli importi.
Ho previsto poi la tabella t_quota_associativa, nella quale tramite il formulario f_pagamento_quota_associativa vengono registrati i pagamenti degli associati relativamente al pagamento della quota associativa, assicurazione (base o full) e delle spese di segreteria, devo ancora realizzare un formulario per la gestione delle date e degli orari dei corsi, vedi tabelle: t_giorni_settimana + t_orario_inizio_corsi + t_orario_fine_corsi ed uno per il materiale in dotazione, ma questi li realizzerò dopo, per ora mi preme terminare la parte più importante, in quanto per Settembre dovrà essere utilizzato e quello che ti ho chiesto nel precedente messaggio in merito ai pagamenti
è molto importante.
Volevo poi che le persone che lavoreranno sul db non avessero accesso allo stesso, ma che si aprisse un menù principale (vedi formulario: f_menu_principale), magari con una pw per ogni persona, così da abilitare ogni persona ad alcune attività, dal quale poter lavorare senza accedere direttamente al db, ho provato, copiando in rete una macro "Sub AutoExec", ma non riesco ad aprire il menù principale all'apertura del db, ora la macro l'ho disabilitata mettendoci l'apice, in quanto quando l'ho abbinata all'evento apri del db, si è bloccato tutto e non riuscivo più ad aprirlo, ho avuto una gran paura di aver perso tutto il lavoro, sono poi riuscito ad aprirlo con libre office.
Ma poi se anche funzionasse e si aprisse all'avvio il menu principale, se io devo lavorare ancora sul db come faccio ad accedere allo stesso?
Spero di essere stato abbastanza chiaro e ti ringrazio per l'aiuto.
Ciao
OpenOffice versione 4.1.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Base, Formulario, campo calcolato

Messaggio da charlie »

Ciao, andiamo con ordine:
fabius13 ha scritto:Colgo l'occasione per dire che nei formulari "f_genitore1" e "f_genitore2" non sono riuscito ad inserire un filtro automatico, che avrei voluto mettere, per calcolare in automatico, prendendo come base la data del sistema, e quindi filtrare nel campo "campo di controllo tabella" di entrambi i formulari, solo gli associati minorenni,
ho bai passato il problema inserendo nei formulari f_genitore_1 e f_genitore_2, nel formulario principale chiamato "associati_minorenni", proprietà, campo dati, il
seguente filtro: ( "t_associati"."data_nascita" > {D '1998-09-01' } ), che però è un dato fisso e quindi bisogna aggiornarlo manualmente, scusami per la divagazione.
Ho creato la query q_associati_minorenni in cui calcolo l'età (con la funzione DATEDIFF confrontando la data di nascita e la data odierna del sistema) ed evidenzio i minorenni.
L'ho sostituita nei formulari f_genitore_1 e f_genitore_2 al posto della tabella t_associati ed eliminato il tuo filtro.
Vantaggi: il filtro è automatico (come uno raggiunge la maggiore età sparisce dal formulario) e vi compaiono solo gli associati minorenni.
Può andare bene?
Allegati
danza_database_3.odb
(129.89 KiB) Scaricato 258 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Base, Formulario, campo calcolato

Messaggio da charlie »

Proseguiamo?
fabius13 ha scritto:Mi sono reso conto, che con il passare dei mesi l'importo da pagare per associato, campo "totale_corsi1", del formulario f_pagamenti_associati,
deve aumentare in base ai mesi trascorsi, tenendo presente che il periodo di tempo interessato è da Settembre a Giugno, è possibile?

Inoltre è possibile che un associato si iscriva successivamente all'inizio dei corsi (Settembre), quindi l'importo da pagare dovrebbe essere calcolato,
su base mensile, dalla data dell'iscrizione dell'associato, non so però se è possibile gestire questa variabile.
Ho modificato la query q_nr_corsi_costo_mensile nel senso che mi hai chiesto. La modifica nel formulario è automatica.
Ma occore testarla bene, non sono sicuro. Tieni conto che ho usato questo codice:

Codice: Seleziona tutto

SUM( "costo_corsi" ) * ( ( CASEWHEN( "data_iscrizione" < {d '2016-09-01' }, DATEDIFF( 'MM', {d '2016-09-01' }, {d '2016-11-01' } ), ( DATEDIFF( 'MM', "data_iscrizione", {d '2016-11-01' } ) ) ) ) )
simulando come data di sistema il 01/11/2016. In realtà al posto di {d '2016-11-01' }, nella formula finale dovrà essere scritto NOW(), cioè la vera data di sistema.
fabius13 ha scritto:Ti chiedo poi, se è possibile, che i campi, importi, data, e modalità pagamento, del formulario f_pagamenti_associati, risultino vuoti, pronti per
ricevere i dati da inserire manualmente.
Se intendi riferirti alla versione finale, cè un comando SQL per azzerare le tabelle.
Allegati
danza_database_4.odb
(130.55 KiB) Scaricato 252 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
fabius13
Messaggi: 8
Iscritto il: mercoledì 17 agosto 2016, 8:21

Re: Base, Formulario, campo calcolato

Messaggio da fabius13 »

Ciao,
la query per estrarre gli associati minorenni è perfetta, grazie.
Anche la query per calcolare il costo dei corsi al variare delle date d'iscrizione e del passare dei mesi ritengo sia perfetta, ma non ho avuto il tempo di testarla,
ti farò sapere al più presto.

in merito a:
Ti chiedo poi, se è possibile, che i campi, importi, data, e modalità pagamento, del formulario f_pagamenti_associati, risultino vuoti, pronti per
ricevere i dati da inserire manualmente.

intendevo che i due campi del formulario di cui sopra, all'apertura dello stesso, si presentassero vuoti e non venissero caricati e visualizzati precedenti dati già
presenti nella tabella.

Infine, se puoi, ti prego di aiutarmi nell'ultima richiesta del precedente messaggio:
Volevo poi che le persone che lavoreranno sul db non avessero accesso allo stesso, ma che si aprisse un menù principale (vedi formulario: f_menu_principale), magari con una pw per ogni persona, così da abilitare ogni persona ad alcune attività, dal quale poter lavorare senza accedere direttamente al db, ho provato, copiando in rete una macro "Sub AutoExec", ma non riesco ad aprire il menù principale all'apertura del db, ora la macro l'ho disabilitata mettendoci l'apice, in quanto quando l'ho abbinata all'evento apri del db, si è bloccato tutto e non riuscivo più ad aprirlo, ho avuto una gran paura di aver perso tutto il lavoro, sono poi riuscito ad aprirlo con libre office.
Ma poi se anche funzionasse e si aprisse all'avvio il menu principale, se io devo lavorare ancora sul db come faccio ad accedere allo stesso?


Grazie ancora
OpenOffice versione 4.1.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Base, Formulario, campo calcolato

Messaggio da charlie »

fabius13 ha scritto:in merito a:
Ti chiedo poi, se è possibile, che i campi, importi, data, e modalità pagamento, del formulario f_pagamenti_associati, risultino vuoti, pronti per
ricevere i dati da inserire manualmente.
intendevo che i due campi del formulario di cui sopra, all'apertura dello stesso, si presentassero vuoti e non venissero caricati e visualizzati precedenti dati già
presenti nella tabella.
Basta impostare a Sì la proprietà Aggiungi solo dati del modulo pagamenti_associati. Se poi imposti Sì ad Apribile del campo Data ottieni anche un calendario precostituito.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Base, Formulario, campo calcolato

Messaggio da charlie »

La macro autoexec va abbinata all'evento Apri documento in Strumenti > Personalizza > Eventi..
Per quanto riguarda la password non mi risulta ci siano possibilità. Edit: si può fare qualcosa con le macro, ti faccio sapere.
Per limitare i possibili danni può essere utile una macro che apra il formulario menu a pieno schermo.
Suggerisco inoltre di attivare le opzioni di backup di Open Office/Libre Office. Anche l'adozione di un sistema di backup "incrementale" potrebbe essere utile (cerca sul forum).
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
fabius13
Messaggi: 8
Iscritto il: mercoledì 17 agosto 2016, 8:21

Re: Base, Formulario, campo calcolato

Messaggio da fabius13 »

Ciao Charlie
la query per calcolare il costo dei corsi al variare delle date d'iscrizione e del passare dei mesi è perfetta,l'ho testata e funziona perfettamente.
Cortesemente mi puoi inviare la macro autoexec e la macro che apra il formulario menu a pieno schermo?
Una domanda, una volta inserita la macro autoexec, se devo lavorare sul database come faccio ad accedervi?

Ti ringrazio per il consiglio del backup incrementale, l'ho attivato.
Ti ringrazio per le dritte sulla proprietà Aggiungi solo dati del modulo pagamenti_associati e della proprietà Apribile del campo Data per avere un calendario precostituito, sono fantastiche.

Ho imparato più in questo poco tempo, grazie a te che in mesi durante i quali ho cercato le soluzioni leggendo vari documenti on-line.
Non so come ringraziarti.

Resto in attesa eventuale possibilità inserimento macro per pw utenti.
Grazie ancora
Ciao
OpenOffice versione 4.1.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Base, Formulario, campo calcolato

Messaggio da charlie »

Ciao, per quando riguarda la password vedi il nuovo allegato. Il database si apre su una finestra di dialogo che richiede la password o l'uscita dal database. (Il database sottostante si vede, ma non si può modificare).
Non è una garanzia assoluta, poichè Base richiede preventivamente se si vuole attivare le macro, rispondendo No si accede al database e guardando all'interno delle macro si può vedere quale è la password. Per questo motivo ti lascio scoprire da solo quale parola ho scelto.
Rimedio a doppia faccia: impostare a "Basso" il livello di sicurezza delle macro e quindi Base non farà la richiesta di attivazione all'apertura del file e caricherà direttamente il modulo password. Valuta prima i rischi:
Schermata 08-2457626 alle 12.15.37.png
In ogni caso è un sistema password non a prova di hacker.
N.B. Per i motivi di cui sopra devi necessariamente eliminare il pulsante "Chiudi menu principale" dal menu principale stesso.
Per quanto riguarda l'apertura a pieno schermo ho visto che è sufficiente impostarla a mano, viene conservata.
Fai sapere.
Allegati
danza_database_5.odb
(132.02 KiB) Scaricato 262 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
fabius13
Messaggi: 8
Iscritto il: mercoledì 17 agosto 2016, 8:21

Re: Base, Formulario, campo calcolato

Messaggio da fabius13 »

Ciao, ho visto il lavoro che hai fatto e per me può andare bene, meglio se è possibile fare alcune modifiche:

1) sarebbe necessario disabilitare o eliminare i tre pulsanti in alto a destra del formulario f_menu_principale_admin (l'ho rinominato),
chiudi, ridimensiona/ingrandisci e riduci ad icona, altrimenti si può comunque accedere alla schermata del db.
Se poi fosse possibile sarebbe opportuno disabilitare nel formulario menu principale, tutti gli altri pulsanti attivi, barre ecc.
Mi sono accorto ora, che la finestra del db rimane comunque ad icona nella barra delle applicazioni in basso e cliccandoci sopra si può
accede tranquillamente al db, questo è un guaio, si può fare in modo che non appaia la finestra del db nella barra delle applicazioni?

2) mi servirebbe che nella finestra di dialogo dove bisogna inserire la pw, ci fossero quattro utenti, ognuno con il proprio campo
dove digitare la pw, per poter poi accedere ognuno al proprio menu principale, ho inserito per esempio 4 menu principali da associare
ognuno ad un utente, esempio un amministratore, un responsabile (che ho chiamato supervisore) e due utenti user1 e user2, ognuno
con possibilità d'accesso a determinati formulari.
Pensandoci bene penso non sia necessario che nella finestra di dialogo appaiano i 4 utenti, ma è sufficiente che ogni utente abbia una pw
e quando viene digitata lo indirizzi al proprio menu principale.

3) in merito all'attivazione in automatico delle macro affinchè non appaia la richiesta di attivazione all'utente, è possibile inserire le macro
nelle posizioni attendibili?, ho visto che c'è la possibilità di aggiungere delle posizioni attendibili così che le mcro presenti in quelle posizioni
vengano sempre eseguite senza alcuna richiesta all'utente, allego lo stamp della pagina sicurezza sulle macro, non sono riuscito ad inserire
l'immagine quì.

Allego il db modificato con i 4 menù principali, Ti ringrazio per l'immenso aiuto.
Ciao
Allegati
stamp.odt
(101.47 KiB) Scaricato 251 volte
danza_database_6.odb
(158.74 KiB) Scaricato 339 volte
OpenOffice versione 4.1.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Base, Formulario, campo calcolato

Messaggio da charlie »

Ciao, rispondo alle nuove domande:
  1. Probabilmente si può tramite macro, ma andiamo oltre le mie conoscenze attuali in materia. Se c'è qualcuno in grado di rispondere (sono sicuro che c'è) batta un colpo.
  2. Temo che serva una finestra di dialogo multipla
  3. E' un'opzione che non ho mai sperimentato
Ho in mente un'altro tipo di soluzione che bypassi la IDE (interfaccia) di Base. in tal modo gli operatori potrebbero vedere direttamente il loro menu principale ed il database vero e proprio potrebbe essere nascosto. Ho visto degli esempi nel forum inglese e sto facendo delle prove ...
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
fabius13
Messaggi: 8
Iscritto il: mercoledì 17 agosto 2016, 8:21

Re: Base, Formulario, campo calcolato

Messaggio da fabius13 »

Grazie Charlie
Ciao
OpenOffice versione 4.1.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Base, Formulario, campo calcolato

Messaggio da charlie »

charlie ha scritto:Ho in mente un'altro tipo di soluzione
Nella sezione Tutorial ho pubblicato il risultato della mia ricerca e della mia sperimentazione viewtopic.php?f=29&t=7723.
Le mie prove le ho fatte con il tuo database e quindi sono certo che potresti trovare interessante il metodo "standalone".
Se lo utilizzerai devi ripulire il tuo database da tutte le macro. Ti consiglio di aprire un database nuovo e trascinare da quello vecchio tabelle, query e formulari (io ho fatto così).
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
fabius13
Messaggi: 8
Iscritto il: mercoledì 17 agosto 2016, 8:21

Re: [Risolto] Base, Formulario, campo calcolato

Messaggio da fabius13 »

Grazie mille Charlie, sei un drago, :bravo: ho provato, funziona tutto alla perfezione.
Grazie ancora e a presto. :super:
OpenOffice versione 4.1.2 su windows 10
Rispondi