Salve. sto cercando di far stampare in una form un valore dato da un datediff su due campi di tipo data del db. I due campi sono in due tabelle diverse.
1- ho creato un nuovo campo (nella form non nel db)
2- ho messo il campo come testo
3 - nel campo lookup ho fatto la query con la funzione datediff ( la query funziona dentro workbench)
la query è tipo:
SELECT
DATEDIFF(data2, data1) AS DFS
FROM
tabella1,
tabella2
WHERE
tabella1.idpaziente = tabella2.idpaziente
AND tabella2.idpaziente = {idpaziente}
ho notato che mi stampa il valore corretto ma lo fa solo quando navigo tra i record, ossia appena caricato il form il valore non compare. E' più opportuno farlo con una macro (onload)?
ne ho provate un paio per tutto il giorno con scarso successo.
Qualche suggerimento non sarebbe male.
Grazie in anticipo
DATEDIFF
Regole del forum
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Re: DATEDIFF
messa cosi mi pare ci sia un approccio errato . comunque hai diversi eventi a diposizione che vanno usati onload se il form è a singolo record . onloadrecord nelgi altir casi .
se usi questi due eventi in modo corretto hai il momento esatto in cui fare dei calcoli e altre cose prima di stampare sul form i dati .
La query mi lascia perplesso ma in generale , la trovo inutile per risolvere un problema del genere
Un aovlta trovato il momento giusto del onloadxx colegati all'altra tabella (con limit 1) e ricava il campo poi usa la macro sc di differenza date e metti il risultato sula variabile che vuoi usare (sc_date_dif -o- sc_date_dif_2)
Altra via usare le view supponendo tu stia usando mysql o oracle . ma questo dipende dal disegno del db .
insomma hai tante vie .
se usi questi due eventi in modo corretto hai il momento esatto in cui fare dei calcoli e altre cose prima di stampare sul form i dati .
La query mi lascia perplesso ma in generale , la trovo inutile per risolvere un problema del genere
Un aovlta trovato il momento giusto del onloadxx colegati all'altra tabella (con limit 1) e ricava il campo poi usa la macro sc di differenza date e metti il risultato sula variabile che vuoi usare (sc_date_dif -o- sc_date_dif_2)
Altra via usare le view supponendo tu stia usando mysql o oracle . ma questo dipende dal disegno del db .
insomma hai tante vie .
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
Re: DATEDIFF
LA query l'ho usata perchè in un'altra applicazione ho creato un campo e usato un'altra funzione mysql per stampare un valore e mi da quello giusto, quindi ho pensato di usare lo stesso approccio.
Immaginavo fosse più corretto usare una macro, ma finora non ho avuto molto successo nel capire come farle funzionare.
Userò anche le viste per fornire i dati aggregati in un altro modo, ma ho bisogno di visualizzare il valore anche nella form.
Immaginavo fosse più corretto usare una macro, ma finora non ho avuto molto successo nel capire come farle funzionare.
Userò anche le viste per fornire i dati aggregati in un altro modo, ma ho bisogno di visualizzare il valore anche nella form.
Re: DATEDIFF
la macro non è altro che una funzione come in php. solitamente poni in una variablie il risultato della macro.
se usi il richiamo automatico , ottimo sistema di SC , hai sempre un esempio disponibile direttamente nel luogo dove devi usarlo.
adesso hanno aggiunto anche un elenco generale delle macro senza dover attivare l help .
per il tuo calcolo potresti fare:
{differenza} = sc_date_dif({campo_tabella1}, "aaaa-mm-dd", {campo_tabella2}, "mm/dd/aaaa");
da mettere nell evento onload -o- onloadrecord a seconda del tipo di form
dovresti risolvere il problema perchè in questo modo ogni volta che leggi un record prima di emettere la form vengono eseguiti i calcoli e predisponi i campi form che ti servono. per chi proviene da linguaggi "pesanti" tipo RPG questa metodologia rispecchia il ciclo : leggi- calcola- scrivi . Le cose buone non tramontano mai.
se usi il richiamo automatico , ottimo sistema di SC , hai sempre un esempio disponibile direttamente nel luogo dove devi usarlo.
adesso hanno aggiunto anche un elenco generale delle macro senza dover attivare l help .
per il tuo calcolo potresti fare:
{differenza} = sc_date_dif({campo_tabella1}, "aaaa-mm-dd", {campo_tabella2}, "mm/dd/aaaa");
da mettere nell evento onload -o- onloadrecord a seconda del tipo di form
dovresti risolvere il problema perchè in questo modo ogni volta che leggi un record prima di emettere la form vengono eseguiti i calcoli e predisponi i campi form che ti servono. per chi proviene da linguaggi "pesanti" tipo RPG questa metodologia rispecchia il ciclo : leggi- calcola- scrivi . Le cose buone non tramontano mai.
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
Re: DATEDIFF
appena posso provo. Intanto grazie
Re: DATEDIFF
Scusa ancora, ma le variabili campo_tabella1 e campo_tabella2 vanno dichiarate prima di applicare la macro?
Re: DATEDIFF
devono esistere già al tempo di esecuzione della macro, per la macro sono elementi di input.
Tu hai una tabella primaria che leggi in secuenza automaticamente ( lo fa sc) ed è la tabella con cui hai definito la query principale.
Letto un record ti agganci , dentro gli eventi opportuni, alle altre tabelle che ti servono e fai le tue cose prima di scrivere la riga a video, che viene eseguita non appena sono finite la istruzioni dei vari eventi chiamati.
E poi tutto ricomincia sono ad una fine . Questo è un loop generale standard .
Tu hai una tabella primaria che leggi in secuenza automaticamente ( lo fa sc) ed è la tabella con cui hai definito la query principale.
Letto un record ti agganci , dentro gli eventi opportuni, alle altre tabelle che ti servono e fai le tue cose prima di scrivere la riga a video, che viene eseguita non appena sono finite la istruzioni dei vari eventi chiamati.
E poi tutto ricomincia sono ad una fine . Questo è un loop generale standard .
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase
Chi c’è in linea
Visitano il forum: Ahrefs [Bot], Semrush [Bot] e 7 ospiti