PowerBuilder: Как писать выражение валидации для поля

StackOverflow https://stackoverflow.com/questions/3252478

  •  16-09-2020
  •  | 
  •  

Вопрос

У меня есть datawindow, содержащий несколько полей.Я хочу написать выражение валидации для поля с именем amount.У меня есть еще два поля имени debit и credit.Если сумма дебета и кредита больше, чем сумма, то я хочу показать сообщение о проверке пользователя.

Как я могу написать требуемое выражение валидации в столбце Спецификация этого datawindow?

Я также хочу написать выражение проверки для поля, названного test.Есть поле имени criteria.Когда это поле установлено на 1, я хочу, чтобы тестовое поле было обязательным полем.Как я могу писать выражение проверки для этого?

Это было полезно?

Решение

Есть разные способы сделать это, в зависимости от того, должны ли вы использовать необходимое выражение валидации столбца или иметь лицензию, чтобы сделать это разными способами.

<Сильные> Дизайн соображения

Это будет настроен на Freestyle Datawindow, где вам нужно только для проверки правила только для экрана, или в табличном стиле, где пользователи могут массовые вводить наборы данных, и правило необходимо применять к каждой строке?

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

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

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

Тем не менее, я дам, что выражения DW, как правило, действительно быстро.

Использование вычисленного поля для правил проверки

Одна альтернативная техника также является быстрым исполнителем и может использоваться в большинстве версий Pb.

    . У
  • есть вычисленное поле на Datawindow, которое имеет значимое имя, такое как cf_amount_rule и что-то вроде этого в выражении: if (debit + credit = amount, 0, 1)
  • сделать это поле невидимым для пользователя, если вы хотите
  • Добавьте другое вычисленное поле в нижнем колонтитуле для суммирования cf_amount_rule, и теперь у вас есть удобная контрольная точка, которая быстро говорит вам, когда есть ошибка
  • сэкономьте время (или событие pfc_validation для пользователей PFC) Вы можете проверить на наличие суммы> 0 и опубликовать сообщение об ошибке

Пуристы OO могут предположить, что неправильно поместить логику в Datawindow, и если вы окажетесь в том же правило, в нескольких данных, которые, безусловно, являются кодовым запахом. Но для простых правил, которые вряд ли изменится, я нашел время и снова, что datawindow очень эффективен при выполнении этих правил и сэкономить вас от необходимости писать много кода в другом месте.

<Сильные> Дополнительные вкусности

    .
  • Вы можете сделать сообщение об ошибке более прочным, используя функциональность Find () для определения определенных строк с ошибкой
  • Вы предоставляете полезные визуальные сигналы для ваших пользователей, изменив ряд или цвет фона поля через выражения свойства, которые ссылаются на генеракодицетагкод.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top