Salve,
ho necessità di valorizzare un campo di una form dipendentemente dal valore assunto da altro campo della stessa form.
qualcosa del tipo:
IF “campoA”=‘xxx’ THEN “campoB”==‘yyyyyy’ else …
Grazie per ogni suggerimento.
Pier Luigi
In una query crea un campo calcolato “campoB
” utilizzando la funzione CASEWHEN("campoA" = 'xxx','yyyyy','')
. [le ''
sono due apici semplici per indicare un campo vuoto].
Visualizza questo campo nel tuo Formulario.
Se la mia riposta ti ha aiutato, votala con (qui a sinistra)
[In linguaggio SQL: SELECT CASEWHEN("campoA" = 'xxx','yyyyy','') AS "campoB" FROM ....
]
Edit:
Esempio.odb
Ciao, grazie per la velocità, ho capito il senso generale ma ho bisogna di delucidazioni:
campoA e campoB sono due campi appartenenti alla form e corrispondono ad altrettante colonne di una tabella. In una select come mi riferisco a campi di una form? La select la devo mettere come azione invocata all’uscita del campoA?
Grazie
Il tuo form è soltanto una maschera che punta ad una tabella. Una tabella non può avere campi ‘calcolati’, pertanto devi usare una query (SELECT … FROM “Tabella”) che abbia il campo ‘calcolato’ “campoB”. Alla fine il Form deve puntare alla query.
Oppure, senza usare query, puoi inserire tutto tramite SQL all’interno del form.
Più facile se fai riferimento all’esempio postato.
OK, ci sono quasi:
creata la query - funziona
modificata nella form la sorgente dati da tabella a query
nella form ho aggiunto il campo calcolato
ma come avviene il passaggio del valore calcolato nella query al campo della tabella?
Posso anche chiederti dove trovo il manuale con la sintassi SQL di libreoffice?
Grazie per la pazienza.
Pier Luigi
Non è possibile aggiornare il campo nella tabella, salvo usare una macro.
Un manuale HSQLDB 1.8 (la versione SQL di Base), in inglese, lo puoi trovare qui:
- Guida completa HSQL 1.8: Hsqldb User Guide
- Sintassi SQL: Chapter 9. SQL Syntax
- Funzioni database: Chapter 9. SQL Syntax
OK, proverò con una macro invocata all’uscita del campo campoA,
Ho dato un’occhiata alla sintassi sql e funzioni DB, ho visto che è possibile utilizzare le stored procedure (potrei risolvere il problema in maniera sicura ed elegante) ma non capisco con quale strumento si creano.
Certo che l’impossibilità di muovere un valore da un campo all’altro di una form in modo semplice mi pare una limitazione non banale, per cose come queste calc usato come db è più flessibile (avviamente con tutte le limitazioni del caso).
Grazie ancora per i suggerimenti