Displaying text from two fields, separated by a varying number of “.” symbols, while preserving the total string length

StackOverflow https://stackoverflow.com/questions/2241648

  •  19-09-2019
  •  | 
  •  

Question

I'm trying to create a Table of Contents for a small publication using Filemaker 10, since that's what the data has been stored in previously.

I'm able to generate page numbers, add heading to the TOC and pretty much everything else I've needed to do - one thing withstanding.

Our designer wants to fill each TOC line with "." to make it easier to read.

Currently:

Using Stack Overflow                                                  1
Why Reddit is better than digg                                        7
Does Filemaker really suck this much                                 84
Ways to convince bosses                                              92
Ditching FileMaker                                                   97

Wanted:

Using Stack Overflow..................................................1
Why Reddit is better than digg........................................7
Does Filemaker really suck this much.................................84
Ways to convince bosses..............................................92
Ditching FileMaker...................................................97

The item and page number are in different fields. Using a border is unsatisfactory because it underlines everything.

Solutions?

Was it helpful?

Solution

You need to break it up into bits and then put it back with the right spacing. Something like this would do :

Let ( [

text = "Why Reddit is better than digg........................................7" ; 
len = Length ( text ) ; 
end = RightWords ( text ; 1 ) ; 
lenEnd = Length ( end ) ;
lenStart = Length ( Trim ( Right ( text ; len - lenEnd ) ) ) ] ;

Left ( text ; lenStart ) &
Left ( "..........................................................................." ; len - lenStart - lenEnd ) & 
end )

I've built the "text" variable into the calc for testing, but you could do this as a Custom Function or just inside a calculation with the field instead.

Also this assumes you're using a mono spaced font and the gap in the middle is a space character.

OTHER TIPS

You can do this using tab stops in the Format -> Text menu

1) Create a calc field with the following definition (the character in the quotes is a tab):

title & "   " & page

2) Add this field to your layout (it needs to be an actual field, not a merge field)

3) Highlight the field and choose format -> text -> paragraph -> tabs

4) Create a new Tab with a position of 6 inches and a Fill Character of "." or "…"

Now when viewed, any space from the end of the title up to the tab stop 6 inches away is filled with the fill character. No monospace font required.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top