Formulario con due formulari secondari

Discussioni sulle caratteristiche di database
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8803
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con due formulari secondari

Messaggio da charlie »

Prova ORDER BY "DATA" ASC.
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: 8803
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con due formulari secondari

Messaggio da charlie »

Il criterio giusto, dopo averlo provato, è questo:

Codice: Seleziona tutto

SELECT DISTINCT "MESE", YEAR( "DATA" ), MONTH( "DATA" ) FROM "QX" ORDER BY YEAR( "DATA" ) ASC, MONTH( "DATA" ) ASC
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Formulario con due formulari secondari

Messaggio da Lukaccio »

Ho trovato :

SELECT DISTINCT "MESE" FROM "QX" ORDER BY CASE WHEN "MESE" = '1-2017' THEN 1 WHEN "MESE" = '2-2017' THEN 2 WHEN "MESE" = '3-2017' THEN 3 WHEN "MESE" = '4-2017' THEN 4 WHEN "MESE" = '5-2017' THEN 5 WHEN "MESE" = '6-2017' THEN 6 WHEN "MESE" = '7-2017' THEN 7 WHEN "MESE" = '8-2017' THEN 8 WHEN "MESE" = '9-2017' THEN 9 WHEN "MESE" = '10-2017' THEN 10 WHEN "MESE" = '11-2017' THEN 11 WHEN "MESE" = '12-2017' THEN 12 END


Grazie moltissime dell'aiuto :super: :bravo:
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8803
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con due formulari secondari

Messaggio da charlie »

Quando avrai anni diversi sarai costretto a modificare il tuo codice .... non è molto pratico.
Hai provato il mio ultimo? Ha qualche falla di cui non mi sono accorto?
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: [Risolto] Formulario con due formulari secondari

Messaggio da Lukaccio »

Molte meglio del mio :bravo:

perchè ha il privilegio di essere definitivo :super:


Grazie :D
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: [Risolto] Formulario con due formulari secondari

Messaggio da Lukaccio »

Purtroppo ho notato un problema nel mio database. :crazy:

Per farla breve, come posso convertire questa volta una stringa in una data, ad esempio :


ottobre17
in
10-2017 ?
Ultima modifica di Lukaccio il domenica 14 ottobre 2018, 23:22, modificato 1 volta in totale.
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8803
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Formulario con due formulari secondari

Messaggio da charlie »

È un po' ostico, se spieghi il problema vediamo se si può aggirare l'ostacolo.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Formulario con due formulari secondari

Messaggio da Lukaccio »

Prima di chiederti aiuto, nella tabella c'era una colonna data ed una mese ; quella data (valori espresse come data) la utilizzavo per calcolare il numero degli appuntamenti presi nel mese, quella mese (valori espressi come testo) per calcolare il numero di contratti fatti nel mese.
Tutto questo con un sistema piuttosto complesso con varie query e maschere, che non andava bene perchè eccisavamente farraginoso.
Per questa ragione ho aperto il topic in questione-
In ogni caso avere diciamo due colonne di riferimento temporale, ossia data e mese, nasceva non solo per la mia inesperienza ma anche per la seguente questione :

i contratti siglati gli ultimi giorni del mese (normalmente 27-28-29-30-31) devono essere contabilizzati nel mese successivo e quindi questo fa crollare tutto quello che abbiamo costruito.

Per intenderci se io ho un appuntamento con esito positivo (contratto firmato) il 28 settembre, va aggiunto alla somma degli appuntamenti di settembre ma il contratto siglato va aggiunto alla somma dei contratti di ottobre non so se sono stato chiaro.

Perciò stavo pensando che forse la colonna mese è ancora utile, ma deve sempre essere confrontato con il valore selezionato dalla casella di testo col solito problema questa volta inverso che uno è un testo l'altro una data.

Dimmi tu per favore :?:
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8803
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con due formulari secondari

Messaggio da charlie »

Perché non ripartire dalla data?

Codice: Seleziona tutto

CASEWHEN(DAYOFMONTH("DATA") >= 27,MONTH("DATA")+1||' - '|| YEAR("DATA"),MONTH("DATA")||' - '|| YEAR("DATA"))
CASEWHEN fornisce come risultato il numero del mese +1 se il giorno del mese è maggiore o uguale a 27 e lo lascia uguale se è minore di 27. Aggiunge poi un trattino e l'anno.
In tal modo, ad esempio, 26/04/18 diventa 4 - 2018 e 27/04/18 diventa 5 - 2018.
Rimane da risolvere: 27,28,29,30,31 dicembre 2018 devono diventare 1- 2019?
Si può fare con pazienza, ma allungherà il codice ...
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: 8803
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con due formulari secondari

Messaggio da charlie »

Comunque, questo dovrebbe funzionare (tutti i test sono positivi):

Codice: Seleziona tutto

CASEWHEN( MONTH( "DATA" ) < 12, ( CASEWHEN( DAYOFMONTH( "DATA" ) >= 27, MONTH( "DATA" ) + 1 || ' - ' || YEAR( "DATA" ), MONTH( "DATA" ) || ' - ' || YEAR( "DATA" ) ) ), ( CASEWHEN( DAYOFMONTH( "DATA" ) >= 27, '1' || ' - ' || YEAR( "DATA" ) + 1, MONTH( "DATA" ) || ' - ' || YEAR( "DATA" ) ) ) ) 
Allegati
Schermata 2018-10-15 alle 14.09.00.png
Schermata 2018-10-15 alle 14.09.00.png (14.2 KiB) Visto 3971 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Formulario con due formulari secondari

Messaggio da Lukaccio »

Geniale :bravo: ma non rispondente alle mie esigenze, perchè purtroppo io non so preventivamente se i contratti del 27 vanno al mese dopo o no.
Per essere piu chiaro, è possibile che i contratti del 27 novembre vadano a dicembre, come è possibile invece che comincino ad essere posticipato al mese dopo, a partire ad esempio dal 30.
Insomma varia da mese a mese.
in alcuni mesi vanno posticipato gia dal 27, in altri dal 28, in altri addirittuta dal 30.
A me è venuta questa soluzione (manco a dirlo pero non so come realizzarla :oops: ) :

1) Mantenere tutte e due le colonne data e mese ; in quella mese scrivero manualmente il mese in cui il contratto verra effetivamente contabilizzato (quindi anche quelli che come contabilizzazione, sono stati posticipati)
2) Costruire una query che filtri la tabella dandomi quegli appuntamenti che sono stati posticipati (insomma che hanno nella colonna data e mese valori discordanti, ad esempio appuntamento del 28/10 in data, novembre18 in quella mese)
3) Trasformarla in un equivalente di una query di accodamento o di creazione tabella di office, che crei una tabella dove gli appuntamenti posticipati vadano ad accodarsi con la data forfettaria del primo giorno del mese, in maniera da avere una tabella dove nella colonna data, tutti abbiano la data di contabilizzazione giusta (compresi quelli posticipati che come detto, artificiosamente avranno come data il primo giorno del mese).
4) Fare lavorare la maschera su questa query per mostrare numero e dettaglio dei contratti, su la tabella principale o su un'altra query per il calcolo degli appuntamenti.


Mi par di capire che ci voglia una macro, ma non so scriverla :crazy:

PS
Ovviamente se hai una soluzione migliore, non faccio certo lo scizzinoso ;)
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8803
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con due formulari secondari

Messaggio da charlie »

Fino al punto 2 ti seguo, è fattibile.
Poi .... :shock: :roll:
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Formulario con due formulari secondari

Messaggio da Lukaccio »

In effetti non sono stato molto chiaro :oops:


In definitiva l'idea è creare una seconda tabella dove accodare tutti gli appuntamenti con esito positivo, ossia a cui è seguita la firma del contratto, con una accortezza però, che gli appuntamenti posticipati (ossia quelli di fine mese contabilizzati al mese successivo) vengano accodati con una data di comodo, ossia il primo giorne del mese successivo.
In questa maniera sara agevole computarli (contabilizzarli) nel mese giusto.
Ho usato il verbo accodare, e lo ho anche sottolineato, perchè lo strumento che ho individuato per risolvere il problema è una query di accodamento.
Ovviamento so che è uno strumento di Access che non esiste in Base, però immagino che lavorando con le macro si possa avere lo stesso risultato.
La query di accodamento è una query che seleziona, secondo i criteri scelti, dei record di una tabella e li aggiunge ad una altra tabella.
Nella fattispecie dovrebbe selezionare tutti gli appuntamenti con esito positivo, contratto firmato, della tabella pricipale e li aggiunge ad una altra tabella.
Nel far questo dovrebbe come detto modificare la data degli appuntamenti posticipati, al primo giorno del mese successivo.

Spero di essere stato piu chiaro :oops:
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8803
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Formulario con due formulari secondari

Messaggio da charlie »

Lukaccio ha scritto:... vengano accodati con una data di comodo, ossia il primo giorno del mese successivo.
Dal momento che scrivi a mano il mese perché non scrivi invece la data di comodo?
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Lukaccio
Messaggi: 43
Iscritto il: domenica 17 settembre 2017, 21:10

Re: Formulario con due formulari secondari

Messaggio da Lukaccio »

Perchè vanno contabilizzati come contratti chiusi al mese successivo, come appuntamenti presi invece al mese effettivo.
Ricordi che avevamo una colonna data (serve per calcolare gli appuntamenti presi) ed una mese (serve per calcolare i contratti formalizzati) e avevamo il problema della casella di riepilogo che seleziona la data (espressa come data nella colonna data) e non il mese (espresso come una stringa di testo nella colonna mese).
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Rispondi