Formulario con due formulari secondari
Re: Formulario con due formulari secondari
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
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Formulario con due formulari secondari
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
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Formulario con due formulari secondari
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
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
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Re: Formulario con due formulari secondari
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?
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
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: [Risolto] Formulario con due formulari secondari
Molte meglio del mio
perchè ha il privilegio di essere definitivo
Grazie
perchè ha il privilegio di essere definitivo
Grazie
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Re: [Risolto] Formulario con due formulari secondari
Purtroppo ho notato un problema nel mio database.
Per farla breve, come posso convertire questa volta una stringa in una data, ad esempio :
ottobre17
in
10-2017 ?
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
Formulario con due formulari secondari
È 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
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Formulario con due formulari secondari
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
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
Re: Formulario con due formulari secondari
Perché non ripartire dalla 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 ...
Codice: Seleziona tutto
CASEWHEN(DAYOFMONTH("DATA") >= 27,MONTH("DATA")+1||' - '|| YEAR("DATA"),MONTH("DATA")||' - '|| YEAR("DATA"))
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
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Formulario con due formulari secondari
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 (14.2 KiB) Visto 3987 volte
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Formulario con due formulari secondari
Geniale 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 ) :
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
PS
Ovviamente se hai una soluzione migliore, non faccio certo lo scizzinoso
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 ) :
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
PS
Ovviamente se hai una soluzione migliore, non faccio certo lo scizzinoso
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Re: Formulario con due formulari secondari
Fino al punto 2 ti seguo, è fattibile.
Poi ....
Poi ....
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Formulario con due formulari secondari
In effetti non sono stato molto chiaro
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
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
LibreOffice 5.2 su Windows 7 HomePremium 64 Bit SP1
Re: Formulario con due formulari secondari
Dal momento che scrivi a mano il mese perché non scrivi invece la data di comodo?Lukaccio ha scritto:... vengano accodati con una data di comodo, ossia il primo giorno del mese successivo.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Formulario con due formulari secondari
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).
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