2025

Feb

10

Av Rolf

Vi får många frågor om FileMaker! Jag har samlat några vanliga frågor just nu, inte minst för min egen del. Det är lätt att glömma och jag använder själv den här bloggen som uppslagsverk. Vill du ställa en fråga? Chatta med oss eller maila!

Kan FileMaker exportera en fil med teckenuppsättningen "UTF-8 med BOM"?

Självklart! "UTF-8 med BOM" är ett vanligt format främst på Windows. Det är samma som en fil i teckenuppsättningen UTF-8 med ett tillägg, de första (osynliga) tecknen i filen används för att visa att det är en fil med just teckenuppsättningen UTF-8, det är det som kallas "BOM" (Byte Order Mark).

Enklast är sätta ihop all text som du vill exportera i t.ex. en variabel. "BOM" är ett tecken som du helt enkelt lägger till före det du vill exportera. Om den textfil jag vill exportera finns i variabeln $xml tilldelar jag ett globalfält av typen Container med följande formel:

TextEncode ( Char(65279) & $xml; "utf-8"; 1) // Med BOM

Sifferkoden för BOM-tecknet är 65279 och funktioner Char konverterar koden till en text som sätts ihop med $xml.

Exporten kan du sedan t.ex. göra så här:

Exportera fältinnehåll [container-fältet]

Kan jag använda funktionen Position baklänges från slutet av en text?

En beräkningsfunktion som jag ofta använder är Position, som letar upp positionen av en text i en annan text. Vanligtvis använder jag Position för att söka från början av en text för att hitta det jag söker, men jag vet också att det går att söka från slutet av texten. Men jag glömmer alltid hur den beräkningsformeln ska skrivas!

Exempel: beräkna filtypen på ett filnamn som kan vara "abc.txt", "data.1.json" eller liknande. De båda exemplen ska ge txt respektive json som resultat. I funktionen Position anger du var sökningen ska börja som tredje parameter och om sökningen ska göras från slutet ett negativt värde i fjärde parametern.

Beräkningen blir så här:

Middle (filnamn; Position(filnamn; "."; Length (filnamn); -1) + 1; 999)

Utförs start-scriptet när jag använder script-steget Utför script på server?

Alla script som körs på FileMaker Server, antingen det är schemalagt på servern eller startas med script-steget Utför script på server, utför alltid först start-scriptet som du ställt in för databasen. FileMaker räknar det som att ett nytt fönster öppnas och utför först den script-trigger du ställt in att utföras VidFörstaFönsterÖppna (i dialogrutan Arkiv->Filtillval, fliken Scripttiggers. Se bild nedan.). Även det script du ställt in att köras när sista fönstret stängs körs (VidSistaFönsterStäng), då när server-scriptet avslutas.

Vanligtvis vill du inte utföra varken start- eller stäng-scriptet varje gång ett server-script körs. I så fall kontrollerar du om start- eller stäng-scriptet startas på servern och avslutar scriptet direkt. Kontrollen gör du med funktionen Get (Programversion) som jag skrivit om tidigare.

Längst upp i start- respektive stäng-scriptet lägger du in följande tre rader:

If [Position (Get (Programversion);"Server";1;1) > 0]
  Avsluta script []
End If

Denna fråga har aktualiserats efter uppgradering till FileMaker Server 21.1. Om du använder script-steget Utför script på server i ett start- eller stäng-script (vilket inte är konstigt) och inte avslutar scriptet om det startar på servern så kommer det gå i en oändlig loop och starta sig själv hela tiden. I tidigare versioner kunde inte script-steget Utför script på server användas på servern (även om du lagt in det i ditt start- eller stäng-script) och då kördes start-scriptet alltid endast en gång.

Kan jag dölja knappar i sökläge?

Har du en knapp ovanpå ett fält som gör att du inte kan söka i fältet? Dölj knappen i sökläge med formeln Get (Fönsterläge) = 1.

Tips: Dra- och släpp dokument

Till sist ett tips om tillägget Elemental Dropzone som måste vara det bästa "Add on" som gjorts till FileMaker! Dra-släpp ett eller flera dokument till container-fält. Även dra-släpp bilagor från epost-meddelande i Windows Outlook. Rekommenderas!

Skriv en kommentar

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