Disabilitare un portale in runtime

Utilizzo dei portali in un database FileMaker

Moderatore: Moderatori

Rispondi
angeloIS
Messaggi: 22
Iscritto il: giovedì 14 gennaio 2016, 7:46
Versione FileMaker: 17
Sistema operativo: MACOS 10.13

Disabilitare un portale in runtime

Messaggio da angeloIS » domenica 3 novembre 2019, 18:19

Buongiorno,
non sapevo se porre la domanda qui o nella sezione SCRIPTING. Se ho sbagliato sezione me ne scuso.
Vorrei avere la possibilità di disabilitare in runtime un portale contenente il dettaglio preventivo, ciccando su un pulsante CHIUDI PREVENTIVO. In seguito alla pressione del pulsante, ho già scritto uno script che aggiorna una tabella (Estratto conto) con il numero preventivo, la data e il totale.
Lo stesso pulsante scompare e compare il pulsante APRI PREVENTIVO il quale, tramite script, elimina dalla tabella Estratto Conto il preventivo aperto.
Mi serve la tabella Estratto conto in quanto è alimentata anche da funzioni INCASSA ACCONTO. In tal modo in ogni momento il cliente può avere, appunto, l'estratto conto della sua situazione con il relativo saldo. (Le fatture saranno emesse ogni fine mese da un gestionale a parte).
Quindi tornando alla domanda iniziale: posso disabilitare/abilitare il portale programmaticamente? Non voglio nasconderlo, voglio solo che l'utente una volta CHIUSO il preventivo, non possa fare modifiche se non APRENDO di nuovo il preventivo. Oppure un metodo alternativo per proibire all'utente che ritrova nella maschera Preventivo, la modifica di preventivi che si trovano nello stato CHIUSO.
Mi scuso se sono stato prolisso.
ang
FM 17 Pro Adv
FM17 OSX

Avatar utente
fabio.beri
Messaggi: 1317
Iscritto il: sabato 4 ottobre 2014, 16:24

Re: Disabilitare un portale in runtime

Messaggio da fabio.beri » lunedì 4 novembre 2019, 10:43

Con FileMaker 17 è possibile non mostrare un oggetto (quindi il portale), se si verifica una certa condizione, quindi a chiusura preventivo è sufficiente scrivere in un campo, che il preventivo è stato chiuso. Sull'oggetto del portale si può inserire un "nascondi oggetto se..." al verificarsi che il campo "CHIUSO" abbia un valore.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18

Omnia Studio

-----------------------------------------
http://www.omniagest.it

angeloIS
Messaggi: 22
Iscritto il: giovedì 14 gennaio 2016, 7:46
Versione FileMaker: 17
Sistema operativo: MACOS 10.13

Re: Disabilitare un portale in runtime

Messaggio da angeloIS » lunedì 4 novembre 2019, 22:44

Potrebbe essere un’idea. Ma in questo modo si impedisce la consultazione del dettaglio dei preventivi chiusi.
FM17 OSX

Avatar utente
fabio.beri
Messaggi: 1317
Iscritto il: sabato 4 ottobre 2014, 16:24

Re: Disabilitare un portale in runtime

Messaggio da fabio.beri » martedì 5 novembre 2019, 7:19

Vorrei avere la possibilità di disabilitare in runtime un portale
allora non vuoi disabilitare il portale! vuoi disabilitare l'accesso ai campi, giusto ?

l'unica soluzione per disabilitare la modifica al campo è intervenire sulla sicurezza. nei privilegi dell'utente puoi impostare una formula di calcolo per "personalizzare" il permesso di modifica. E nella formula puoi dire che la modifica è consentita se il preventivo non è chiuso, altrimenti niente modifica. Questa cosa la definisci in SICUREZZA.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18

Omnia Studio

-----------------------------------------
http://www.omniagest.it

angeloIS
Messaggi: 22
Iscritto il: giovedì 14 gennaio 2016, 7:46
Versione FileMaker: 17
Sistema operativo: MACOS 10.13

Re: Disabilitare un portale in runtime

Messaggio da angeloIS » martedì 5 novembre 2019, 17:11

Grazie 😊 proverò in questo modo !
FM17 OSX

angeloIS
Messaggi: 22
Iscritto il: giovedì 14 gennaio 2016, 7:46
Versione FileMaker: 17
Sistema operativo: MACOS 10.13

Re: Disabilitare un portale in runtime

Messaggio da angeloIS » martedì 5 novembre 2019, 17:31

Per ora ho trovato una soluzione che provvisoriamente mi risolve il problema.
Nella tabella principale ho creato un campo Toggle tipo numerico (mi serve come "interruttore" per stabilire se il preventivo è aperto 1 o NOT aperto 0).
Ho creato due script. Uno semplicemente inverte:
imposta il campo [Prevenitvo::Toggle; not(Preventivo::Toggle)]

ed un altro invece controlla il Toggle:
if [Preventivo::Toggle] Vai al Campo []
End If

Il primo script lo associo al pulsate CHIUDI PREVENTIVO che in pratica mi imposta il Toggle in NOT APERTA (quindi ora OGNI PREVENTIVO al il suo Toggle, e ho risolto il problema di avere il portale disabilitato per tutti o per nessun preventivo).
Il secondo invece è assegnato ad un trigger sul portale "su entrata oggetto" (quindi se il toggle è NOT allora va a un campo [] cioè a nessun campo, in pratica non fa entrare nei campi del portale.
A maggiore sicurezza utente, ho impostato il pulsante ELIMINA RIGA PORTALE con un "nascondi se [Preventivo::Toggle]"

Devo confessarti in realtà che quando CHIUDO un preventivo, oltre a nascondere il pulsante CHIUDI PREVENTIVO e far comparire al suo posto il pulsante APRI PREVENTIVO (anche se avrei potuto usare uno strumento BARRA PULSANTI con nome pulsante calcolato con un if), dicevo oltre a quello quando chiudo il preventivo lo script continua andando ad alimentare una tabella EstrattoConto con la data, descrizione, importoTotale del preventivo. Invece il pulsante APRI PREVENTIVO fa partire lo script che elimina dalla tabella EstrattoConto la riga relativa.
Questa programmazione mi serve per avere in una unica tabella l'estratto conto del cliente con i vari acconti che paga, in modo da avere una specie di estratto conto dare/avere tipo banca, con relativo saldo, in quanto la stessa tabella è in un portale di una maschera INSERIMENTO ACCONTO.
È stato l'unico modo che ho trovato per "emulare" il comando UNION ALL dell'SQL.

Fabio proverò anche la tua soluzione. Grazie per la tua disponibilità.
ang
FM17 OSX

Rispondi