2025

May

16

Av Rolf

Att visa en dialogruta är ett enkelt och vanligt sätt att låta användaren ta ställning: Ska ett script fortsätta och skapa fakturor? Vilket år ska rapporten skapas för? Det är några vanliga frågor som ställs i dialogrutor. I FileMaker finns ett scriptsteg för att visa en dialogruta för de enklaste frågorna. Det finns förstås ett annat sätt att göra egna dialogrutor med betydligt fler val som ersättning för den inbyggda!

Jag erkänner att det inte är speciellt ofta jag gör egna dialogrutor. Tydligen så sällan att jag glömmer bort både att det går och hur man gör! Egna dialogrutor kräver lite mer arbete men ger ofta ett bra resultat.

Ett fönster i FileMaker kan ställas in med stilen Dialogruta. Fönstret hamnar då överst bland alla fönster och du kan inte gå vidare förrän du klickat en knapp i rutan. Ett fönster kan visa valfri layout. Du gör alltså dialogrutan som en layout, med alla utformningsmöjligheter till förfogande. På layouten gör du en eller flera knappar, hur många beror på vilka val användaren ska kunna göra.

Skillnaden mellan FileMakers scriptsteg för att visa dialogruta och ett fönster med egen layout är stor, utseendet kan vara godtyckligt, du kan ha bilder, fler än 3 knappar, olika sorters fält som menyer, kryssrutor etc., men scriptet behöver inte så stora förändringar.

Så här kan ett script med FileMakers inbyggda scriptsteg se ut:

Den inbyggda dialogruta ser då ut så här:

Gör du en egen layout för en egen dialogruta kan det t.ex. se ut så här:

Stor skillnad :)

Scriptet för att visa den egna dialogruta blir så här

Som du ser är script-steget Visa anpassad dialogruta utbytt mot Nytt fönster av typen Dialogruta med script-steget Paus/Fortsätt script efter. Scriptet stannar alltså efter det att dialogrutan visas och väntar på användaren. Skillnaden är inte så stor, det är enkelt att byta ut FileMakers inbyggda dialogrutor mot egna layouter, öven om det behövs fler script-steg för att visa din egen dialogruta.

Jag räknar ut var mittpunkten är på dialogrutan och visar den i mitten av bildskärmen. Positionen från bildskärmens vänsterkant beräknar jag med formeln (layoutens bredd är 700 pixlar):

(Get ( FönsterSkrivbordsbredd ) - 700) / 2

Knapparna i den egna dialogrutan startar ett script. Jag använder ett och samma script för alla knappar, men med olika script-parametrar för varje knapp. I exemplet har jag helt enkelt angett knappens namn som parameter för respektive knapp ("ja", "nej" respektive "kanske").

Scriptet för knappen gör inte så mycket, det avslutas direkt med script-parametern som resultat. Det är den enda raden som behövs.

Det viktiga är att du ställer in scriptet med tillvalet Fortsätt script. Inställningen är helt avgörande för att scriptet ska fungera. Enligt FileMakers hjälp: "Ett pausat script återupptas efter att knappens script körs."

När användaren klickar på knappen startas scriptet, med olika script-parameter för respektive knapp och därmed olika resultat.

Knappen fortsätter scriptet som är pausat, dvs scriptet som visar dialogrute-fönstret, med steget på rad 4 (se bild ovan). Resultatet från knapp-scriptet (senast körda script) sätts in i variabeln $knapp, som du sedan kan använda på samma sätt som funktionen Get (Senastmeddelandeval).

I och med att scriptet är pausat kan användaren fortsätta genom att trycka på Retur/Enter. Då körs inget extra script efter pausen och därmed ger Get (Scriptresultat) inget värde. I exemplet kontrollerar jag om variabeln $knapp är tom och tilldelar då det värde jag tycker ska vara förvalt för dialogrutan.

Tänk på att använda globala fält för eventuella fält du önskar användaren ska fylla i i dialogrutan. Då behöver du inte spara dem om användaren klickar på Avbryt (eller motsvarande).

I exemplet som du laddar ner nedan finns två knappar, en knapp som använder ett fönster av typen Dialogruta och en knapp som använder ett fönster av typen Kort. Funktionalitet är snarlik och du kan välja vilket du tycker passar dig bäst. Kortfönster hamnar alltid centrerat över aktuellt fönster.

Ladda ner exempeldatabas: EgenDialogruta.fmp12 (Länken till exempeldatabasen korrigerad 2025-05-17)

Skriv en kommentar

Din epost-adress stannar hos oss.
Webbsajten använder FileMaker som CMS.