2010

Apr

30

Av

FileMaker innehåller också en ordbehandlare. Den är kanske inte i världsklass men fullt tillräcklig i de flesta fall. Med FileMakers knapprad  för textutformning kan du välja typsnitt, storlek, färg, stil och justering av text så att du får texten som du vill ha den. 

Textknappar

Vill du inte visa FileMakers knapprad för användaren kan du göra samma sak med egna knappar. Det finns en beräkningsfunktion för att lägga till en stil för en text som heter TextStyleAdd. Funktionen har 2 parametrar, dels texten som ska utformas och dels vilken stil som texten ska ha. Det finns några fördefinierade värden för stilar, t.ex. Fet ochKursiv.

För att få reda på den markerade texten finns de båda hämtningsfunktionerna Get ( AktivMarkeringStart ) och Get ( AktivMarkeringStorlek ), som returnerar startpositionen för markeringen och längden på den markerade texten. Dessa båda passar bra till funktionen Middle som behöver ett fält, startposition och längd för att returnera texten som finns i fältet, med början i startposition och är längd lång.

Med ett manus kan du få reda på den text som är markerad och lägga till en stil till texten. Manussteget Sätt in resultatsätter in ett beräknat värde istället för den text som är markerad. I det här fallet är det beräknade värdet samma som det som är markerat, fast med en annan stil.

Manuset består av en enda rad och ser ut så här:

Sätt in resultat [
   Let([ 
   markerat = Middle(textfält; Get ( AktivMarkeringStart ); Get ( AktivMarkeringStorlek ))
   ];
   TextStyleAdd ( markerat; Fet))
]

Kopplar du manuset till en knapp och markerar en text i fältet textfält blir den i fet stil.

Med manusparameter går det att få manuset generellt, stilen kan skickas med som manusparameter i respektive knapp. Funktionen Get (Manusparameter) används då istället för Fet i formeln.

Samma manus kan också användas till valfritt fält eftersom du kan få reda på vilket fält som är aktivt, dvs. det fält där du har markerat den text som ska utformas. Det görs med funktionerna Get ( AktivtFältnamn ) och Get ( LayoutTabellnamn ) i kombination med funktionen GetField.

Funktionen GetField är mycket kraftfull och returnerar innehållet i ett fält om du vet dess namn.

Manuset blir istället:

Sätt in resultat [
   Let([
   markerat = Middle(GetField(Get ( LayoutTabellnamn ) & "::" & Get ( AktivtFältnamn )); 
   Get ( AktivMarkeringStart ); Get ( AktivMarkeringStorlek))
   ];
   TextStyleAdd ( markerat; Get ( Manusparameter )))
]

I exemplet nedan har jag kopplat manuset med olika manusparameter till de 4 knapparna ovanför de båda textfälten. Markerar jag en text i något av fälten och klickar på en av knapparna utformas texten med motsvarande stil.

Textformat

Du kan ladda ner en enkel exempeldatabas här.

Textutformning.zip

Skriv en kommentar

  • (will not be published)
  • seven + = 11

Läs också: