impedire creazione record duplicati per data e paziente

Come utilizzare gli script. Automatizzare gli archivi. Utilizzo dei pulsanti

Moderatore: Moderatori

helpwithmypc
Messaggi: 42
Iscritto il: domenica 7 febbraio 2021, 23:14
Versione FileMaker: 19
Sistema operativo: Windows 10

impedire creazione record duplicati per data e paziente

Messaggio da helpwithmypc » lunedì 8 marzo 2021, 9:30

Ciao a tutti. Ho un piccolo dubbio. Ho un pulsante che mi fa aprire una finestra per l'inserimento di un nuovo record. Sto cercando di scrivere uno script che mi verifichi prima di aprire la finestra che non sia stato inserito già un nuovo record nella data odierna per un singolo paziente. Faccio un esempio.
- Mario Rossi-->verifico se già presente record in data odierna per Mario rossi-->non è stato inserito record oggi--> apri finestra
- Mario Rossi-->verifico se già presente record in data odierna per Mario rossi-->è già stato inserito record oggi--> finestra errore. (ma domani posso inserire ma farà la verifica come per oggi)

- Giuseppe Verdi-->verifico se già presente record in data odierna per Giuseppe verdi-->non è stato inserito record oggi--> apri finestra
- Se già presente record per giuseppe verdi comportati come per Mario Rossi


ho provato a fare verifica per date e funziona ma non posso creare record per Giuseppe verdi se per Mario rossi è già stato inserito un record (perche fa la verifica per data) ma non posso fare neppure la verifica per chiave primaria perché mi impedisce di creare record sia oggi che domani (perche mario rossi ha già un record indipendente dalla data). Grazie e buon lunedì

Avatar utente
fabio.beri
Messaggi: 1958
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: impedire creazione record duplicati per data e paziente

Messaggio da fabio.beri » lunedì 8 marzo 2021, 11:14

Buongiorno. Prima di far attribuire il record a Mario Rossi farei un interrogazione SQL per verificare se in quella data c'è già qualcuno. La funzione è ESEGUISQL.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

helpwithmypc
Messaggi: 42
Iscritto il: domenica 7 febbraio 2021, 23:14
Versione FileMaker: 19
Sistema operativo: Windows 10

Re: impedire creazione record duplicati per data e paziente

Messaggio da helpwithmypc » lunedì 8 marzo 2021, 12:17

no. quello che volevo era una verifica per ogni paziente a cui provavo a creare un record che non fosse già stato creato a lui nella giornata odierna

es. oggi non sono stati creati record ma sono presenti i passati quindi nella tabella avrò:
Nome: Data:
Mario rossi 04/03/2021
Giuseppe verdi 05/03/2021

Clicco il pulsante per entrare nella finestra e mi lascia entrare perche oggi 08/03/2021 non ho ancora creato record per mario rossi (ricava da chiave primaria). Lo creo per mario rossi, quindi alla fine la mia tabella aggiornata avrà:
Nome: Data:
Mario rossi 04/03/2021
Giuseppe verdi 05/03/2021
Mario rossi 08/03/2021

mettiamo io cerco di ricreare un record per mario rossi oggi e mi deve dare errore perche oggi l'ho già creato. domani non me lo deve dare perche domani non avrò ancora creato il record per il giorno 09/03/2021

ora creiamo un record per giuseppe verdi. giuseppe verdi non ha record creati per oggi quindi posso entrare nella finestra per crearlo però devo poter rifare il controllo come per mario rossi se per sbaglio si creerebbe un duplicato.

Devo in pratica verificare la condizione: se oggi (quindi data) e chiaveprimaria paziente sono già presenti nella tabella. prima di entrare nella finestra

helpwithmypc
Messaggi: 42
Iscritto il: domenica 7 febbraio 2021, 23:14
Versione FileMaker: 19
Sistema operativo: Windows 10

Re: impedire creazione record duplicati per data e paziente

Messaggio da helpwithmypc » lunedì 8 marzo 2021, 15:55

Avrei trovato anche questo link https://community.claris.com/en/s/quest ... validation che è esattamente quello che cerco io. Però devo adattarlo a quello che cerco di fare io...ma non sono per nulla pratico di SQL
i miei campi sono:
Pazienti::ChiavePrimaria
Valutazione_per_macroaree (tabella dei record da ricercare)
Valutazione_per_macroaree::Data Valutazione

Avatar utente
fabio.beri
Messaggi: 1958
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: impedire creazione record duplicati per data e paziente

Messaggio da fabio.beri » lunedì 8 marzo 2021, 15:58

Al di là della condizione, sempre ESEGUISQL con una SELECT: https://www.w3schools.com/sql/sql_ref_select.asp
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

helpwithmypc
Messaggi: 42
Iscritto il: domenica 7 febbraio 2021, 23:14
Versione FileMaker: 19
Sistema operativo: Windows 10

Re: impedire creazione record duplicati per data e paziente

Messaggio da helpwithmypc » lunedì 8 marzo 2021, 18:07

Ho preso SQL però non so dove sbaglio continuo sempre ad avere errore nella verifica perché mi rimanda sempre al messaggio di errore che ho creato partendo dal mio if iniziale.
Immagine.jpg
Questo è il codice SQL che ho preso di esempio e ho provato a modificare..

EVuoto ( EseguiSQL ( "SELECT Valutazione_per_macroaree::Data Valutazione " & "FROM Valutazione_per_macroaree " & "WHERE Valutazione_per_macroaree::ChiaveEsternaPaziente_val.macr. " &
"AND Valutazione_per_macroaree::Data Valutazione"; "" ; "" ; Minuscolo (Valutazione_per_macroaree::ChiaveEsternaPaziente_val.macr.) ; Get ( DataCorrente )))
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

Avatar utente
fabio.beri
Messaggi: 1958
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: impedire creazione record duplicati per data e paziente

Messaggio da fabio.beri » martedì 9 marzo 2021, 10:54

I nomi delle tabelle vanno solamente dopo il FROM.

La SELECT è così:

SELECT (CAMPO IN CUI CERCARE) FROM TABELLA IN CUI CERCARE WHERE CAMPO SU CUI APPLICARE LA CONDIZIONE='VALORE DELLA CONDIZIONE'
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

helpwithmypc
Messaggi: 42
Iscritto il: domenica 7 febbraio 2021, 23:14
Versione FileMaker: 19
Sistema operativo: Windows 10

Re: impedire creazione record duplicati per data e paziente

Messaggio da helpwithmypc » martedì 9 marzo 2021, 10:59

Quindi nel mio caso i campi da cercare saranno 2: chiave primaria paziente e data valutazione è esatto?

Avatar utente
fabio.beri
Messaggi: 1958
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: impedire creazione record duplicati per data e paziente

Messaggio da fabio.beri » martedì 9 marzo 2021, 14:54

Si, direi di si, se la domanda è: "dimmi se in quel giorno e per quel paziente ho un record. Se è la risposta è si allora non creo altri records, altrimenti lo creo.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

helpwithmypc
Messaggi: 42
Iscritto il: domenica 7 febbraio 2021, 23:14
Versione FileMaker: 19
Sistema operativo: Windows 10

Re: impedire creazione record duplicati per data e paziente

Messaggio da helpwithmypc » martedì 9 marzo 2021, 15:07

Esatto proprio quello che voglio. Però ho provato if [EVuoto (EseguiSQL........) = 1]
Vai al formato

Else
---- qui mi mostra il messaggio di errore

End if

Non so se sbaglio già in principio a legarci EVuoto
Però appena clicco il pulsante per avviare lo script già mi va nel messaggio di errore anche se per quel paziente e data non esiste il record. Dove sbaglio?

Rispondi