Предотвращение усечения текстового поля на портале, фильтрация содержимого портала для отображения в другом макете

#filemaker

#filemaker

Вопрос:

Я уже использую Filemaker Pro 10, у меня есть два вопроса:

  1. У меня есть текстовое поле на портале, и всякий раз, когда я ввожу в него значения типа «B12C45», это работает хорошо, но когда строка длиннее, например «BC12F42, B45z87», она не отображает целые строки и пропускает буквы из нее. что я могу сделать?

  2. Мой второй вопрос заключается в следующем: у меня есть портал в макете, на этом портале каждая строка имеет идентификатор иногда идентификатор повторяется в других строках, но значение другого поля, называемого Position, меняется. Теперь я хочу, чтобы те строки этого портала, которые имеют тот же идентификатор, были в другом макете. Я пытался использовать скрипты для этого, но в этом случае скрипты работают плохо, и они вводят портал целиком в новом макете, а не те части, которые я хочу. Как я могу написать скрипт, который делает это?

Я буду очень признателен за любую помощь.

Ответ №1:

Что касается первого вопроса, существует множество способов отображения большего количества данных в поле, и наилучший из них будет зависеть от конкретной реализации в вашей базе данных. Существует три основных способа решения этой проблемы: настройка размера поля, настройка размера текста и программные настройки для динамического изменения размера текста.

Настройки размера поля включают:

  1. Увеличение длины поля
  2. Используя аспект автоматического изменения размера поля, чтобы по мере увеличения окна увеличивалось и поле

Настройки размера текста включают:

  1. Уменьшение размера шрифта для этого поля.
  2. Установка стиля шрифта для этого поля на сжатый.

Однако с точки зрения программирования мне кажутся возможными три вещи. Мне больше всего нравится третий вариант для большинства моих решений:

  1. Установите для всплывающей подсказки для поля значение «Self» (без кавычек). Пользователь может увидеть все содержимое поля, наведя указатель мыши на поле.
  2. В «Define Database» установите вычисляемое значение поля равным: «TextStyleAdd(self; Condense)» (без кавычек) и убедитесь, что параметр «Не заменять существующее значение поля» отключен
  3. Используйте условное форматирование, чтобы добавить стиль сжатия, или используйте шрифт меньшего размера, когда количество символов в поле становится большим.

Шаги по использованию условного форматирования следующие:

  1. В режиме макета выделите поле и выберите «Условное форматирование …» из всплывающего меню
  2. Добавьте новое условие
  3. Измените условие на ‘Формула есть’
  4. В текстовом поле введите «Длина (Self) > 8» (без кавычек)
  5. Нажмите кнопку «Дополнительное форматирование …»
  6. Выберите «Уплотнить» в качестве стиля текста

Вы можете добавить несколько условий, так что у вас может быть «Уплотнить» только для длины (Self) > 8 и другое условие для длины (Self) > 16, где вы устанавливаете как «Уплотнить», так и уменьшить размер шрифта.

Что касается вашего второго вопроса, я не могу получить представление о том, что вы пытаетесь сделать, из заданного вами вопроса. Вы могли бы выполнить следующее в скрипте: Перейдите к связанной записи [связь с порталом], отсортируйте записи [по идентификатору]

А затем используйте поле сводки (количество идентификаторов), чтобы определить, сколько у вас каждого идентификатора.

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