Filemaker: добавить запись в таблицу, если ее там еще нет - PullRequest
0 голосов
/ 04 августа 2009

У меня есть CONTACT таблица и ZIPCODE таблица, которые связаны между собой. Я хочу сценарий, чтобы, если пользователь вводит example_zipcode, которого нет в таблице ZIPCODE, то example_zipcode добавляется в таблицу ZIPCODE. В любом случае он должен храниться в таблице CONTACT.

Я слышал о isempty(field), могу ли я использовать это?

1 Ответ

2 голосов
/ 05 августа 2009

Я не до конца понимаю, почему вы делаете такие вещи. Много ли другой информации хранится с почтовым индексом (например, географические координаты)?

Довольны ли вы тем, что в таблице ZIPCODE хранится много недопустимых кодов? Что произойдет, если пользователь введет что-то очень неправильное, например, АВСТРАЛИЯ?

Кроме того, как связаны таблицы CONTACT и ZIPCODE? Первичным / внешним ключом? Или просто по почтовому индексу?

Если в почтовом индексе нет ничего «волшебного», я бы, вероятно, положил его прямо в таблицу CONTACT.

CONTACT
-------
Name
Account Number
Zipcode

Если вы действительно хотите, чтобы они были в отдельных таблицах, возможно, сделайте следующее:

CONTACT
-------
Name
Account Number
Zipcode

ZIPCODE
-------
Zipcode     (Unique)

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

Возможно, ваш вариант использования выглядит следующим образом:

  • Пользователь вводит контактную информацию, включая почтовый индекс
  • Вы создаете запись контакта и, при необходимости, запись почтового индекса

Я бы сделал это с помощью скрипта, который пользователь щелкает после ввода почтового индекса (или, если вы используете FileMaker 10, триггер скрипта в поле почтового индекса).

Скрипт будет делать что-то вроде этого:

  • Задать переменную $ zipcode CONTACT :: Почтовый индекс
  • Перейти к макету Zipcode
  • Установить захват ошибок ВКЛ.
  • Enter Find Mind
  • Установить поле Почтовый индекс $ Zipcode
  • Выполнить поиск
  • If (Get (Найдено Count) = 0)
    • Новая запись
    • Установить почтовый индекс $ Zipcode
    • Записать записи
  • Перейти к макету (оригинальный макет)

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

...