Få textrad att fortsätta på ny rad

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

Hej
Jag håller på med att skapa en layout för en katalog i FMP 6
kolumnens bredd är 48 mm och när jag har för många tecken än som ryms på raden = 40 tecken klipps text bort. Jag hämtar grunddata från två register
och har gjort en layout som tar in fältdata i flera fält med dubbla vinkelhakar. Det fungerar bra men när jag har fält med väldigt långa namn blir det problem på några rader i min layout.

Kan man göra någon slags beräkningsfält som räknar antal tecken på raden och när det blir mer än 40 tecken så fortsätter det på en ny rad under.

Tacksam för hjälp, jag jobbar bara med Filemaker ibland och är inte så van med sådant här. Annars gillar jag det skarpt.

Ulf

Funktionen Left(textsträng, antal tecken), plockar tecken från vänster. Funktionen Middle (text, start position, antal tecken) tar text från varsomhelst. Funktionen Length (text) räknar antalet tecken. Funktionen if kan kontrollera villkor. ¶ betyder radbrytning. Sätt ihop det och du får:

If(Length(textfält) > 40; Left(textfält; 40) & "¶" & Middle (textfält; 41; 80); textfält)

Taz kan sitt Filemaker (om någon nu verkligen trodde annat), beräkningen funkar klockrent. Jag har en fundering om man kan ha variabel radhöjd (antal rader i en layout). Alltså, om en textrad innehåller en radbrytning, kan den då trycka ned botten på huvudfältet så att just den textraden blir dubbel, eller måste varje rad i tabellen/layouten innehålla dubbla rader?

Hoppas ni förstår vad jag menar.

Tack för berömmet, kul att höra.

Man kan i senare versioner av FileMaker (jag är lite osäker på när den funktionen kom), bestämma hur du vill justera din text även vertikalt: upptill, centrerar och nertill. Detta gäller både merge-fält och "vanliga" fält i en layot.

Det betyder att ett mergefält som det vi konstruerat som kanske innehåller flera rader kommer att växa uppåt från de två nedre ankarpunkterna, istället för det vanliga, växa nedåt från de övre två ankarpunkterna. Jag hoppas den bifogade bilden visar detta som är justering på ett mergefält. Lägg märke till att <<Description>> ligger nertill i textobjektet.

Är det ungefär det du menade?

ulfgraf: Inget svar på detta?

Tack för svaret. Visst fungerade det men det fick exempelvis ner sista tecknet av fyra
som var årtalet 1955 och då åkte sista siffran 5 ner på nästa rad. Det skulle vara bättre om hela årtalsgruppen om fyra siffror åkte ner. Jag har en sträng som innehåller flera fält och det sista av de fem fälten innehåller årtalet. Men tack för ditt tips.

Som man frågar får man svar, du sade inget om hela ord, eller att sista ordet var ett årtal som bara förekommer en gång i fältet och att detta lagras i separata fält.

Det finns funktioner för att leta hela ord, hitta var i texten det finns radbrytningar, hitta en text i en annan mm, så det är klart att det går.

  • Medlem
  • Värmdö
  • 2008-01-24 22:26

Prova med den här formeln.

Case ( Length ( textfält ) > 40 ; Case ( Position ( textfält ; " " ; 41 ; -1 ) > 0 ;
Left ( textfält ; Position ( textfält ; " " ; 41 ; -1 ) - 1) & "¶" & Middle ( textfält ; Position ( textfält ; " " ; 41 ; -1 ) + 1; Length(textfält) ) ;
Left ( textfält ; 40 ) & "¶" & Middle ( textfält ; 41 ; Length (textfält))) ;
textfält )

/Chrille

klart

Tack för all hjälp. Nu är det klart så ni behöver inte komma med fler tips om just detta.

1
Bevaka tråden