Рассчитать фактические прошедшие дни в filemaker?
Как сделать так, чтобы Filemaker всегда отдельно отображал фактические прошедшие дни с данной даты, сохраненные в поле в макете?
пример
Я ввожу сегодняшнюю дату в базу данных. Когда я смотрю на мой взгляд сегодня, там должно быть отдельное текстовое поле с надписью 0 дней. В течение одной недели это текстовое поле должно содержать 7 дней.
2 ответа
Поле StoredDate
Отдельное поле ElapsedDays
(текст? почему вы хотите, чтобы число было текстом? Преобразование оставлено студенту, как упражнение, если студент действительно этого хочет. Его легко найти...)
ElapsedDays, тип расчета, кнопка [Опции] Получить (CurrentDate) - StoredDate
Кнопка [Параметры хранения] Проверка Не сохранять результаты расчетов - при необходимости пересчитать
Если вы не измените параметры хранилища, оно будет запущено при создании и не изменится. Это ключевой параметр, позволяющий изменить его при изменении текущей даты.
Если по какой-то причудливой причине вы действительно хотите сохранить неизменяемый текст "дней" в поле, а также число, что также можно сделать при расчете, это просто делает его более утомительным.
GetAsText (Get (CurrentDate) - StoredDate) & "days"
Итак, 480 дней спустя, даже не upvote? Я знаю, что прошло 480 дней с тех пор, как я ответил, потому что это работает, и у меня все еще есть тестовая БД, которую я бросил вместе, чтобы проверить это...
Конечно, есть много способов сделать это. Это будет зависеть от вашего решения и от того, как вы хотите, чтобы расчет отображался на вашем макете.
Используя 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>>