Отображение текста из двух полей, разделенных различным числом «.» символы, сохраняя при этом общую длину строки - PullRequest
1 голос
/ 11 февраля 2010

Я пытаюсь создать оглавление для небольшой публикации с использованием Filemaker 10, поскольку именно в этом ранее хранились данные.

Я могу генерировать номера страниц, добавлять заголовок в оглавление и почти все остальное, что мне нужно было сделать - выдержать одну вещь.

Наш дизайнер хочет заполнить каждую строку оглавления знаком "." чтобы было легче читать.

В настоящее время:

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

Требуются:

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

Элемент и номер страницы находятся в разных полях. Использование границы неудовлетворительно, потому что оно подчеркивает все.

Решения

Ответы [ 2 ]

3 голосов
/ 16 февраля 2010

Вы можете сделать это, используя табуляцию в меню Формат -> Текст

1) Создайте поле calc со следующим определением (символ в кавычках является вкладкой):

title & "   " & page

2) Добавьте это поле в макет (оно должно быть фактическим, а не полем слияния)

3) Выделите поле и выберите формат -> текст -> абзац -> вкладки

4) Создайте новую вкладку с позицией 6 дюймов и символом заполнения "." или "…"

Теперь при просмотре любое пространство от конца заголовка до конца табуляции в 6 дюймах заполняется символом заполнения. Не требуется моноширинный шрифт.

2 голосов
/ 11 февраля 2010

Вам нужно разбить его на куски, а затем вернуть обратно с правильным интервалом. Что-то вроде этого сделало бы:

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 )

Я встроил переменную "text" в calc для тестирования, но вы можете сделать это как пользовательскую функцию или просто внутри вычисления с полем.

Также предполагается, что вы используете моноширинный шрифт, а пробел в середине - это пробел.

...