Istruzione di script IMPOSTA VARIABILE

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

Moderatore: Moderatori

Rispondi
imtommy
Messaggi: 157
Iscritto il: martedì 19 settembre 2006, 2:00
Versione FileMaker: 16
Sistema operativo: osx.13
Località: milano

Istruzione di script IMPOSTA VARIABILE

Messaggio da imtommy » martedì 19 settembre 2006, 11:53

Ciao a tutti
Sono nuovissimo qui ma confido nel fatto che gli utenti mac hanno qualche punto in piu' nell'aiutare il prossimo.
Premetto che prima di scrivervi ho cercato ma senza successo una risposta a questo, probabilmente banale, quesito.

Ho un problema con l'istruzione di script IMPOSTA VARIABILE.
Leggo nell'HELP di FM 8.5 che si possono definire delle variabili sia locali (con solo un segno del $ davanti e valevoli solo per lo script in cui vengono create) e delle variabili globali (con due $$ davanti, invece valevoli x tutto il database).

Il problema, dicevo, e' che non riesco a far funzionare quelle globali ($$) nel senso che che se definisco la variabile $$pippo con il valore di un campo della tabella T_Uno, e poi cerco di inserire il valore di questa $$pippo in un campo (ovviamente compatibile) della tabella T_Due, il risultato che mi appare nel campo di T_Due e' assolutamente diverso dal valore del campo della tabella T_Uno e ovviamente diverso dal valore della $$pippo definita precedentemente!
Piu' precisamente mi compare un "1" dentro il campo della tabella T_Due nel quale voglio inserire la variabile definita.
Dove sbaglio? Ho letto anche la funzione CONSENTI ma non ho capito se e' necessaria per la definizione della variabile oppure e' una funzione da utilizzare alla bisogna (quando non lo so perche' non ho capito una mazza!).
Perche' non posso definire 20 $$variabili contenenti i valori di 20 campi di una tabella e poi inserire queste $$variabili in 20 campi di un'altra tabella?

Grazie e scusate la banalita'.

stregatto
Messaggi: 9700
Iscritto il: lunedì 1 dicembre 2003, 1:00
Località: Roma
Contatta:

Messaggio da stregatto » martedì 19 settembre 2006, 12:03

se lo fai aall'interno di uno stesso script puoi usare anche le variabili locali.

fammi capire.
imposta variabile[$campo;campo1]
vai al formato[altratabella]
definisci campo [campo2;$campo]

non funziona?
Dove sbaglio? Ho letto anche la funzione CONSENTI ma non ho capito se e' necessaria per la definizione della variabile oppure e' una funzione da utilizzare alla bisogna (quando non lo so perche' non ho capito una mazza!).
non c'entra nulla con il caso in questione
Perche' non posso definire 20 $$variabili contenenti i valori di 20 campi di una tabella e poi inserire queste $$variabili in 20 campi di un'altra tabella?
infatti puoi farlo benissimo.

.g.

imtommy
Messaggi: 157
Iscritto il: martedì 19 settembre 2006, 2:00
Versione FileMaker: 16
Sistema operativo: osx.13
Località: milano

Messaggio da imtommy » martedì 19 settembre 2006, 12:39

Ecco lo script:

script PAPERINO (della Tabella_Uno):
imposta variabile[$$idProdotto;Tabella_Uno_idProdotto]
esegui script ["PIPPO" da file: "Tabella_Due"]


script PIPPO (della Tabella_Due):
Inserisci risultato calcolato [Seleziona; Tabella_Due:: idProd; Tabella_Due:: idProd =$$idProdotto]


Nel campo "idProd" della Tabella_Due, mi ritrovo o un "1" o a volte uno "0"
Ho provato anche con l'istruzione DEFINISCI CAMPO ma mi da' lo stesso errore!

Grazie x la velocita' della risposta!

stregatto
Messaggi: 9700
Iscritto il: lunedì 1 dicembre 2003, 1:00
Località: Roma
Contatta:

Messaggio da stregatto » martedì 19 settembre 2006, 12:46

il programma agisce corrrettamente.
con lo script pippo gli chiedi di valutare se il campo IdProd della tabella 2 è uguale alla variabile e di inserire il risultato della valutazione nel campo.
Se campo e variabile sono uguali il programma inserisce correttamente il valore 1, se no inserisce altrettanto correttamente il valore 0. elementare logica booleana.

se invece con lo script pippo vuoi semplicemente definire il campo IdProd con i valori della variabile, duolmi dirti che hai sbagliato tu lo script.
puoi rifarti allo script di esempio del mio primo post per la sintassi corretta della definizione campo.

.g.

p.s. nello specificco puoi anche usare una variabile locale "passandola" via parametro script

imtommy
Messaggi: 157
Iscritto il: martedì 19 settembre 2006, 2:00
Versione FileMaker: 16
Sistema operativo: osx.13
Località: milano

non va

Messaggio da imtommy » martedì 19 settembre 2006, 13:27

Mi dispiace ma non capisco dove sbaglio!
Anche con la tua sintassi non funziona. Ti riporto FEDELMENTE un test di prova:

script TEST della Tabella Prodotti
- Vai a Record/Richiesta/Pagina [Primo]
- Imposta Variabile [$$test; Valore:Prodotti::ID_Prodotto]
- Esegui script ["Nuovo script" da file: "Uscite"]


script NUOVO SCRIPT della Tabella Uscite
- Nuovo record/richiesta
- Definisci il campo [Uscite::idProdotto; $$test]
- Salva record/richieste


Il risultato e' solamente un record nuovo nella Tabella Uscite senza nessun riempimento del campo idProdotto ! Quindi la variabile $$test e' chiaramente vuota!

Ma non dipende per caso dal fatto che la variabile $$test perde il suo valore in quanto la Tabella (o script) viene cambiata?

Mi rendo conto di essere leggermente logorroico ma ti prego di perdonare questa poca conoscenza.
Grazie ancora.

stregatto
Messaggi: 9700
Iscritto il: lunedì 1 dicembre 2003, 1:00
Località: Roma
Contatta:

Messaggio da stregatto » martedì 19 settembre 2006, 13:43

a livello di scripting non vedo errori.

TRANNE…

che le variabili (anche globali) sono relative al singolo FILE!

se esegui uno script di un altro file, come pensi possano funzionare?

a parte il fatto che ti in generale conviene fare più tabelle in uno stesso file, nello specifico ti conviene usare, come già accennato, il parametro script.
qualcosa come:

TEST della Tabella Prodotti
- Vai a Record/Richiesta/Pagina [Primo]
- Esegui script ["Nuovo script" da file: "Uscite" parametro Prodotti::ID_Prodotto]


script NUOVO SCRIPT della Tabella Uscite
- Nuovo record/richiesta
- Definisci il campo [Uscite::idProdotto; get(parametroscript)]
- Salva record/richieste

.g.

imtommy
Messaggi: 157
Iscritto il: martedì 19 settembre 2006, 2:00
Versione FileMaker: 16
Sistema operativo: osx.13
Località: milano

ok...funzia!

Messaggio da imtommy » martedì 19 settembre 2006, 14:27

Grazie stregatto...mi hai risolto un problema!
Comunque e' vero...: io tendo sempre a creare piu' file .fp per poi lavorare richiamandoli da un MAIN.fp
Ho provato (con successo) a far rientrare tutte le tabelle in un unico file e direi che tutto va bene:

Grazie ancora

Rispondi