Behöver hjälp med textformatering

Tråden skapades och har fått 11 svar. Det senaste inlägget skrevs .
1

Hej!

Undrar om det är någon vänlig själ som vet om det finns något sätt man kan använda kerning eller knipning i Filemaker. Försökt googla men hittade inget (inget jag förstod något av i alla fall )

Har ett fakturasystem och vill att totalsumman (en beräkning) ska visas med större mellanrum mellan siffrorna för att funka med Plusgiroblankett.

Använder Filemaker 9.

Ha det fint
Sture

Hej!

Det finns minst tre olika sätt att göra det på:

1. Använd funktionen för att visa text som utdragen text (eller ihoptryckt)

2. Byt typsnitt

3. (Krångligast) Gör ett script som lägger ett mellanrum mellan varje inmatat tecken, som då ger mellanrum, går förstås att använda i kombination med nr 1..

Lycka till

Mvh Jenny

Sten Sture, du menar att du vill skriva beloppet i belopps-rutan, du vill inte skriva OCR-numret?

Plusgirot är väldans petiga med typsnitt och position av OCR-numret på utskrifter av inbetalningskort för att de skall fungera. De har tom ett system där man måste skicka ett utskriftsprov till dem (omfattande 250 ex) för att få rätt att producera inbetalningskort som går att använda sig av på banker mfl ställen mm.

Inte helt lätt att hitta på deras webbplats, har för mig man måste prata med dem för att få avtal mm, men här är en början:
http://www.plusgirot.se/Programleverantörer/Logotyper+och+blanketter/776582.html Kontaktuppgifter angående att teckna avtal finns på sidan.

Tack för hjälpen!

Har redan avtal med Plusgirot. Använder ej OCR-nummer utan bara fakturanummer (i meddelandefältet). VIll ha belopp i belopps-rutan.
Har testat att byta typsnitt och att använda utdragen text, men inget funkar bra.

Är intresserad av alternativ 3.. Men tror det övergår min förmåga lite:)

Ha det fint
Sture

Ingen som har något script eller ledtråd till ett sådant i bakfickan?;)

Om mellanslag skulle hjälpa så kan du ju enkelt göra ett nytt beräkningsresultat som heter tex Belopp_Display med denna beräkning:

GetAsText(Middle (GetAsText(Belopp), 1, 1) & " " &
GetAsText(Middle (GetAsText(Belopp), 2, 1) & " " &
GetAsText(Middle (GetAsText(Belopp), 3, 1) & " " &
GetAsText(Middle (GetAsText(Belopp), 4, 1) & " " &
GetAsText(Middle (GetAsText(Belopp), 5, 1) & " " &
GetAsText(Middle (GetAsText(Belopp), 6, 1) & " " &
osv...

Funktionen omvandlar fältet Belopp till text. Därefter plockar funktionen första, andra, tredje tecknet i textsträngen och sätter ihop det med ett mellanslag efter varje (det är ett sådant mellan citat-tecknen).

Detta är skrivet ur minnet, så syntaxen kan vara fel, slå upp funktionerna i hjälpen.

Alternativt kan du skapa sju till tio nya fält som har ungefär samma beräkning, som bara plockar fram EN siffra ur det kompletta beloppet. Det kan ju vara betydligt lättare att lägga ut enskilda fält i layouten som bara innehåller en siffra i istället. Men eftersom det hela skall vara högerjusterat så skall du börja med det det fält som skall vara allra längst till höger som vi kallar för fält 1. Du måste alltså göra något sådant här:

Beräkningen i första fältet (det längst till höger)

Middle(GetAsText(Belopp); Length(Belopp); 1)

Nästa fält, nr 2, näst längst till höger:

Middle(GetAsText(Belopp); Length(Belopp)-1; 1)

Nästa fält, nr 3, näst näst längst till höger

Middle(GetAsText(Belopp); Length(Belopp)-2; 1)

osv...

I kalkylerna ovan har jag alltså inte med ören och sådant. I fältet belopp antar jag att beloppet står och att det är i hela kronor. Man måste justera om det är fraktioner av kronor.

Senast redigerat 2009-10-22 09:51

Hej!

Tack för hjälpen, den andra varianten funkade bra. 3541 visas som 3 5 4 1 och med lite trixande ska det bli lätt att få det att passa med blanketten

Förutom; det blir konstigt när beloppet bara ska vara tiotal eller hundratal. Till exempel om beloppet är 65 visar den 6 6 6 5. Jag antar att den på något sätt tar den siffran som är längst bak om det inte finns någon "tredje sista" eller "fjärde sista". Finns det något sätt man kan undvika detta?

Mvh
Sture

Nä, det finns inte. Filemaker har otroligt mycket begränsningar så man kan inte räkna med att få något som man vill. Nu är jag alltså väldans ironisk.... Hoppas det förstås.

Vad du behöver göra är att kolla om det inuti det andra, tredje, fjärde, femte fältet finns en siffra att "ta av" så att säga.

I exempelvis det tredje fältet (näst näst längst åt höger) får du lägga till följande:

If(Length(GetAsText(Belopp)>2;
Middle(GetAsText(Belopp); Length(Belopp)-2; 1)
;"")

Det du lägger till är markerat med fet stil.

Gör sedan motsvarande ändringar i andra, fjärde, femte osv fälten. Notera förstås att du skall ändra 2 till 1 respektive 3, 4, 5 i de olika fälten.

Haha... Jag antog nog att det skulle finnas en lösning
Har så att säga "ärvt" en massa databaser, och tills nu bara fortsatt använda dem, men nu börjat utveckla dem lite, utifrån min ringa förmåga. Fantastiskt vad mycket man kan göra!

Men Filemaker hävdar att "Det finns för många parametrar"

Är det jag som har skrivit av fel?:

If(Length(GetAsText(TOTAL SUMMA)>2;
Middle(GetAsText(TOTAL SUMMA); Length(TOTAL SUMMA)-2; 1)
;"")

Är det någon parantes eller semikolon som ligger fel eller?

Tack/Sture

Ja det brukar det vara om man får det felmeddelandet. Du får experimentera lite.

Hittade det, skulle vara
If(Length(GetAsText(TOTAL SUMMA))>2;
Middle(GetAsText(TOTAL SUMMA); Length(TOTAL SUMMA)-2; 1)
;"")

Nu funkar det perfekt!

Tack för hjälpen!

Egentligen borde denna rad:
Middle(GetAsText(TOTAL SUMMA); Length(TOTAL SUMMA)-2; 1)

Vara:

Middle(GetAsText(TOTAL SUMMA); Length(GetAsText(TOTAL SUMMA))-2; 1)

men det funkar utan den andra GetAsText för att FileMaker är "snäll" och konvertar det åt dig utan att man implicit talar om för den att göra det.

1
Bevaka tråden