Как запретить пользователям использовать разделитель тысяч в FileMaker Pro? - PullRequest
0 голосов
/ 12 февраля 2019

В FileMaker Pro при использовании числового поля пользователь может выбрать разделитель тысяч или нет.Например, если у меня есть база данных с полем для цены товара, пользователь может ввести 1,000 или 1000.

. Я использую свою базу данных для создания файла XML, который долженбыть загруженным.Дело в том, что моя XML-схема требует, чтобы разрешалось только значение 1000, а не 1,000.Поэтому я хочу либо автоматически удалить запятую, либо (в этом случае я предпочитаю) предупреждать пользователя при попытке ввести значение с разделителем тысяч.

Я попробовал следующее.

Для поля я устанавливаю параметры проверки.Например:

  • Требуется строгий тип данных: только числовой
  • Подтверждено расчетом: Position ( Self ; ","; 1 ; 1 ) = 0
  • Подтверждено расчетом: Self = Substitue ( Self, ",", "")
  • Автоматический ввод расчета: Фильтр (Self; "0123456789.")

К сожалению, ни один из этих способов не работает.Поскольку поле определено как число (и я хочу сохранить его таким, поскольку я также выполняю вычисления на основе этого числа), функция Position и функция Substitute явно игнорируют разделитель тысяч!

РЕДАКТИРОВАТЬ: Обратите внимание, что я генерирую свой XML путем конкатенации строки, например:

"<Products><Product><Name>" & Name & "</Name><Price>" & Price & "</Price></Product></Product>"

Причина в том, что то, что я экспортирую, зависит от значений в моембаза данных.Поэтому я не использую функцию [Файл] [Экспорт записей ...].

Ответы [ 3 ]

0 голосов
/ 12 февраля 2019

Я использую свою базу данных для создания файла XML, который необходимо загрузить.Дело в том, что моя XML-схема диктует, что допустимо только значение 1000, а не 1000.

Если это проблема только при экспорте, почему бы не обработать ее при экспорте?

  • Если вы экспортируете как XML с помощью XSLT, вы можете добавить инструкцию вВаша таблица стилей, чтобы удалить запятую из всех числовых полей;
  • В качестве альтернативы, вы можете экспортировать из макета, где поле отформатировано для отображения без запятой и выбрать параметр Apply current's layout data formatting to exported data при экспорте.

Добавлено:

Возможно, мне следовало уточнить.Я не использую функцию экспорта для генерации XML, так как есть некоторая логика в том, как XML должен быть отформатирован (зависит от данных, которые я хочу экспортировать).Вместо этого я делаю строку, в которой я объединяю XML-теги и фактические значения из базы данных.

ИМХО, вы ошибаетесь, не пользуясь встроенным XML/ XSLT опция экспорта.Любая мыслимая логика может быть реализована таким образом, не обременяя ваше решение хрупкой задачей создания правильного XML.

В любом случае, если вы используете поле в расчете, вы можете заменить все ссылки на него:

GetAsNumber (YourField )

, чтобы получить неформатированное значение только для чисел.

0 голосов
/ 13 февраля 2019

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

Я бы предложил использовать расчет GetAsNumber(self)в качестве автоматического ввода рассчит.Если он должен содержать только целые числа, оберните это в вызове к Int()

0 голосов
/ 12 февраля 2019

Ваш вопрос озадачивает меня.Насколько я знаю, FileMaker не хранит разделитель тысяч, а предлагает его только в качестве опции отображения.Вот почему эти функции не могут его найти.Вы уверены, что экспортируете необработанные данные, а не вариант «отформатирован как макет»?

...