[Risolto]Zero=esaurito in griglia
[Risolto]Zero=esaurito in griglia
Buongiorno,
nei report con la funzione IF(([nome campo]=0);"esaurito";[nome campo]) ottengo "esaurito" al posto dello 0 oppure IF(ISBLANK([nome campo]);"esaurito";[nome campo]) se il campo è vuoto;
1> è possibile ottenere altrettanto nella griglia di una subform? (Form Giacenze)
2> come mai nei report le funzioni sopracitate non funzionano su campo orario? (report Presenze)
nei report con la funzione IF(([nome campo]=0);"esaurito";[nome campo]) ottengo "esaurito" al posto dello 0 oppure IF(ISBLANK([nome campo]);"esaurito";[nome campo]) se il campo è vuoto;
1> è possibile ottenere altrettanto nella griglia di una subform? (Form Giacenze)
2> come mai nei report le funzioni sopracitate non funzionano su campo orario? (report Presenze)
Ultima modifica di Muset il martedì 27 aprile 2021, 19:14, modificato 1 volta in totale.
LibreOffice 7.3.4.2 (x64) Windows 11
Re: Zero=esaurito in griglia
Ciao, perchè le tue domande siano comprensibili sempre e a tutti, o alleghi il file o metti un link alla discussione che lo contiene. Grazie.
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: Zero=esaurito in griglia
Buongiorno, scusa hai ragione, allego...
- Allegati
-
- ProvaPasta (2).odb
- (246.14 KiB) Scaricato 121 volte
LibreOffice 7.3.4.2 (x64) Windows 11
Re: Zero=esaurito in griglia
Ciao,
- Nelle query che stanno a base dei formulari (ma anche dei report) puoi usare la funzione CASEWHEN(... , ... , ...) o la funzione CASE WHEN ... THEN ... ELSE ... END.
- IF(ISBLANK ......) provata con il campo DataLab nel report PROVA, funziona. (PROVA è uguale a Stotgiornata con DataLab al posto di DataTot)
- Allegati
-
- ProvaPasta_3.odb
- (252.21 KiB) Scaricato 133 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: Zero=esaurito in griglia
Ciao,
1> Puoi farmi un esempio di CASEWHEN(....,....,....) ? dove la inserisco in CRITERIO nella query?
2> Se guardi il report SPresenze in oreMat e orePom ho usato due soluzioni, ma non mi restituiscono il risultato, probabilmente devo intervenire sulla query come dici tu
1> Puoi farmi un esempio di CASEWHEN(....,....,....) ? dove la inserisco in CRITERIO nella query?
2> Se guardi il report SPresenze in oreMat e orePom ho usato due soluzioni, ma non mi restituiscono il risultato, probabilmente devo intervenire sulla query come dici tu
LibreOffice 7.3.4.2 (x64) Windows 11
Re: Zero=esaurito in griglia
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: Zero=esaurito in griglia
ho provato a inserire in un campo vuoto della query RFGiacenza CASEWHEN( "Giacenza" = 0, 'esautiro', "Giacenza" ), ma mi da errore "Tipo di dato errato:Java.lang.NumberFormatException.Not a Digit in statment.... , dove sbaglio?
LibreOffice 7.3.4.2 (x64) Windows 11
Re: Zero=esaurito in griglia
I tre parametri devono essere dello steso tipo, "Giacenza" è un campo numerico , 'esaurito' è un testo.
Prova ad inserire NULL al posto di 'esaurito' e poi ad adoperare ISNULL nei report.
Prova ad inserire NULL al posto di 'esaurito' e poi ad adoperare ISNULL nei report.
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: Zero=esaurito in griglia
Gia provato, non funziona perche il campo non è vuoto, c'è 0 e credo sia lo stesso problema con il report Sprezenze oreMat e orePom in cui avevo provato anche quella soluzione
LibreOffice 7.3.4.2 (x64) Windows 11
Re: Zero=esaurito in griglia
Ciao, aggiornamento report Spresenze:
ho risolto il problema sostituendo lo 0 con lo zero orario come stringa "0:00" con la seguente istruzione nel campo dati del report
IF(([OreMat]="0:00" );"assente";[OreMat]) e IF(([orePom]="0:00" );"assente";[orePom]) rispettivamente Mattina e Pomeriggio
ora mi rimane da capire per i form. Ce la farò? chissà...
comunque senza il forum e charlie sarei ancora sulla porta della caverna
ho risolto il problema sostituendo lo 0 con lo zero orario come stringa "0:00" con la seguente istruzione nel campo dati del report
IF(([OreMat]="0:00" );"assente";[OreMat]) e IF(([orePom]="0:00" );"assente";[orePom]) rispettivamente Mattina e Pomeriggio
ora mi rimane da capire per i form. Ce la farò? chissà...
comunque senza il forum e charlie sarei ancora sulla porta della caverna
LibreOffice 7.3.4.2 (x64) Windows 11
Re: Zero=esaurito in griglia
Ciao,
niente da fare, per i form è impossibile(per me) ottenere quello che voglio, l'unica via sarebbe cambiare il formato del campo nella tabella, ma questo poi non mi permetterebbe di fare i calcoli...
niente da fare, per i form è impossibile(per me) ottenere quello che voglio, l'unica via sarebbe cambiare il formato del campo nella tabella, ma questo poi non mi permetterebbe di fare i calcoli...
LibreOffice 7.3.4.2 (x64) Windows 11
Re: Zero=esaurito in griglia
Per i formulari, prepara prima le query:
- trasforma l'ora in stringa (i campi vuoti diventeranno NULL):
Codice: Seleziona tutto
TO_CHAR( "Ora", 'HH:mm' )
- in una seconda query sostituisci i campi NULL con una stringa
Codice: Seleziona tutto
CASEWHEN( "Ora" IS NULL, 'assente', "Ora" )
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: Zero=esaurito in griglia
Buongiorno, intanto grazie charlie
ho iniziato con la prima query RcostotoTotDip inserendo in campo vuoto TO_CHAR( "OreMat", 'HH:mm' ) poi ripeterò lo stesso per orePom e nella seconda query che userò per il form userò la funzione per "assente", ma non la accetta, mi dice Errore di serializzazione in statment.... dove sbaglio?
ho iniziato con la prima query RcostotoTotDip inserendo in campo vuoto TO_CHAR( "OreMat", 'HH:mm' ) poi ripeterò lo stesso per orePom e nella seconda query che userò per il form userò la funzione per "assente", ma non la accetta, mi dice Errore di serializzazione in statment.... dove sbaglio?
LibreOffice 7.3.4.2 (x64) Windows 11
Re: Zero=esaurito in griglia
Errore mai visto prima e assolutamente non documentato.
Evidentemente c'è qualcosa nel dato di origine (in RPresenze) che complica le cose perché nelle prove fatte con un campo di tipo "time" il problema non si presenta.
Evidentemente c'è qualcosa nel dato di origine (in RPresenze) che complica le cose perché nelle prove fatte con un campo di tipo "time" il problema non si presenta.
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: Zero=esaurito in griglia
L'errore potrebbe essere dovuto all'uso doppio di TO_CHAR:
- COALESCE ( TO_CHAR( CAST( '00:' || COALESCE ( DATEDIFF( 'mi', "Ingresso", "Uscita" ), 0 ) || ':00' AS "TIME" ), 'HH:MI' ), 0 ) AS "OreMat"
- TO_CHAR( "OreMat", 'HH:MI' )
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: Zero=esaurito in griglia
Ho provato a eliminare il COALESCE in RPresenze per ottenere Vuoto invece di 0:00 , ma non la riconosce come colonna quindi anche come funzione(pensando di eliminare un passaggio e visto che voglio una stringa al posto di 0 o vuoto il COALESCE non mi serve più su quei due campi.
In RcostoTotDip trovi come l'ho scritta e l'errore che mi dà (effettivamente in tutti gli errori che mi sono usciti finora, questo non lo avevo visto nemmeno io), se togli la spunta a Visibile nella colonna dell'istruzione, la query funziona regolarmente
In RcostoTotDip trovi come l'ho scritta e l'errore che mi dà (effettivamente in tutti gli errori che mi sono usciti finora, questo non lo avevo visto nemmeno io), se togli la spunta a Visibile nella colonna dell'istruzione, la query funziona regolarmente
- Allegati
-
- ProvaPasta (2).odb
- (246 KiB) Scaricato 75 volte
LibreOffice 7.3.4.2 (x64) Windows 11
Re: Zero=esaurito in griglia
In RPresenze ho modificato
con
quindi ora questo codice in RcostoTotDip funziona senza dare errori:
N.B. Nell'allegato la modifica riguarda solo il campo "OreMat" delle query RPresenze e RcostoTotDip e non ho controllato se la cosa comporti problemi ad altre query collegate. Nella tabella Presenze ho modificato il primo record per poter testare il codice.
Codice: Seleziona tutto
COALESCE ( TO_CHAR( CAST( '00:' || COALESCE ( DATEDIFF( 'mi', "Ingresso", "Uscita" ), 0 ) || ':00' AS "TIME" ), 'HH:MI' ), 0 ) AS "OreMat"
Codice: Seleziona tutto
COALESCE ( TO_CHAR( CAST( '00:' || COALESCE ( DATEDIFF( 'mi', "Ingresso", "Uscita" ), NULL ) || ':00' AS "TIME" ), 'HH:MI' ), NULL ) AS "OreMat"
Codice: Seleziona tutto
CASEWHEN( "RPresenze"."OreMat" IS NULL, 'assente', "RPresenze"."OreMat" ) AS "OreMat"
- Allegati
-
- ProvaPasta_4.odb
- (251.74 KiB) Scaricato 82 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: Zero=esaurito in griglia
Come sempre sei una garanzia, un bravo maestro, funziona tutto perfettamente
per chi osserva questo argomento:
- ho cambiato il tipo di campo nella griglia del form da "campo orario" a Campo formattato" e nelle Proprietà campo > Dati> Lo string vuoto è ZERO > NO
- nel report ho usato IF(ISBLANK([nome campo]);"messaggio";[nome campo])
ora il problema mi si ripresenta con le giacenze, immagino li possa usare TO_CHAR, ma non so cosa inserire come formato TO_CHAR("Giacenza", '????') ho provato con CHAR e VARCHAR ...flop
per chi osserva questo argomento:
- ho cambiato il tipo di campo nella griglia del form da "campo orario" a Campo formattato" e nelle Proprietà campo > Dati> Lo string vuoto è ZERO > NO
- nel report ho usato IF(ISBLANK([nome campo]);"messaggio";[nome campo])
ora il problema mi si ripresenta con le giacenze, immagino li possa usare TO_CHAR, ma non so cosa inserire come formato TO_CHAR("Giacenza", '????') ho provato con CHAR e VARCHAR ...flop
LibreOffice 7.3.4.2 (x64) Windows 11
Re: Zero=esaurito in griglia
TO_CHAR funziona solo con date e orari.
Devi usare
Devi usare
Codice: Seleziona tutto
CONVERT(term,type)
converts exp to another data type
CAST(term AS type)
converts exp to another data type
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: Zero=esaurito in griglia
Ho usato il CONVERT , PERFETTO!!
Ho fatto una query per convertire dopo aver provato a combinare in una riga CONVERT+CASEWHEN sulla scia di COALESCE(TO_CHAR(CAST(00:||...... ma le mie aspirazioni si sono infrante
Comunque funziona tutto perfettamente. Grazie guru charlie
Ho fatto una query per convertire dopo aver provato a combinare in una riga CONVERT+CASEWHEN sulla scia di COALESCE(TO_CHAR(CAST(00:||...... ma le mie aspirazioni si sono infrante
Comunque funziona tutto perfettamente. Grazie guru charlie
LibreOffice 7.3.4.2 (x64) Windows 11