2

Как сделать так, чтобы Filemaker всегда отдельно отображал фактические прошедшие дни с данной даты, сохраненные в поле в макете?

пример

Я ввожу сегодняшнюю дату в базу данных. Когда я смотрю на мой взгляд сегодня, там должно быть отдельное текстовое поле с надписью 0 дней. В течение одной недели это текстовое поле должно содержать 7 дней.

2 ответа2

0

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

Используя FileMaker 14, это можно сделать без использования Unstored Calculation в вашей таблице данных. Вы можете воспользоваться механизмом вычислений Filemaker непосредственно в макете, используя вычисление « Скрыть при» для простого текстового объекта. Кнопка может быть использована для этого тоже.

Предполагая, что у вас есть сохраненная дата в поле, давайте назовем ее Table::myDate в этом примере, где Table - это имя вашей таблицы, а myDate - это поле даты с сохраненной датой.

раскладка

  • На желаемом макете перейдите в режим макета. ( +L ИЛИ управление+L в Windows)
  • Вставьте новый текстовый объект и введите переменную слияния (переменные слияния могут быть локальными или глобальными по объему. В этом случае вы можете использовать локальную переменную, которая будет отброшена, когда макет будет оставлен или обновлен.) Вы можете использовать любое имя переменной, мы будем использовать $daysElapsed в этом примере. Таким образом, ваш текстовый объект будет иметь в качестве текста <<$daysElapsed>> .
  • Перейдите на вкладку «Данные» на панели инспектора.
  • Перейти к расчету Hide When
  • Используя Let() мы можем использовать механизм вычислений Filemaker, не добавляя поле в таблицу. Введите оператор let следующим образом:
    Let ( $daysElapsed = Get ( CurrentDate ) - Table::myDate ; False )
    Это автоматически устанавливает переменную $ daysElapsed при входе в Layout. Таким образом, отображение прошедших дней. Возвращение False в результате в операторе Let позволяет всегда показывать объект. Смотрите скриншоты ниже.

Чтобы добавить к этому текст, просто добавьте его в расчет или его можно добавить непосредственно в текстовый объект до объявления переменной Merge. Вот так:
Days elapsed: <<$daysElapsed>>

Режим макета

Режим просмотра

Дни прошедшего расчета

Панель инспектора - Скрыть объект, когда ...

0

Поле StoredDate

Отдельное поле ElapsedDays

(текст? почему вы хотите, чтобы число было текстом? Обращение оставлено ученику в качестве упражнения, если ученик действительно этого хочет. Это легко найти ...)

ElapsedDays, тип расчета, кнопка [Опции] Get(CurrentDate) - StoredDate

Кнопка [Параметры хранения] Проверка Не сохранять результаты расчетов - при необходимости пересчитать

Если вы не измените параметры хранилища, оно будет запущено при создании и не изменится. Это ключевой параметр, позволяющий изменить его при изменении текущей даты.

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

GetAsText (Get (CurrentDate) - StoredDate) и "дни"

Итак, 480 дней спустя, даже не голосование? Я знаю, что прошло 480 дней с тех пор, как я ответил, потому что это работает, и у меня все еще есть тестовая БД, которую я собрал вместе, чтобы проверить это ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .