powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Validation Expressions
8 сообщений из 8, страница 1 из 1
Validation Expressions
    #33101676
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, уважаемые одночатцы! Я человек новенький на сайте, также как и в PowerBuilder. Но вопросик у меня возник весьма существенный - надеюсь, вы сможете мне помочь.

PowerBuilder9. В организации, где я работаю, написана программка просмотра справочников - в окошко как агрумент передается имя необходимого DataWindow (и еще куча разной полезной информации). Естественно, человек, который писал это, сделал небольшую каку - он каким-то образом поставил запрет на изменение своего окошка - т.е. образовался своеобразный черный ящик - не видно скриптов элементов окна, нельзя ничего менять. Естественно, человек со временем уволился.

С недавних пор возникла необходимость в DataWindow делать некоторые проверки вводимых данных, например, графа 1 должна быть больше графы 2, и выводить результат неверно введенных данных на экран. Единственный выход из этой ситуации я вижу в использовании Validation Expressions в DataWindow, но возникли вопросы:

1. Как в Validation Expressions сравнить графу 1 с графой 2? Причем сравнить не те значения, которые сидят в Primary Buffer, а те, которые пользователь вводит в поля?
2. Как в Validation Expressions реализовать проверку правильности ввода по внешним ключам? Понимаю, что при ошибке ввода система (Oracle 9) крикнет о нарушении, но крикнет она на английском, и мне как разработчику сразу будет следовать звонок юзера, что очень нежелательно.

Буду очень благодарен за Ваши ответы и советы. Просьба не судить очень строго - я еще пока новичок... ;-)))
...
Рейтинг: 0 / 0
Validation Expressions
    #33101779
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmberitPowerBuilder9. В организации, где я работаю, написана программка просмотра справочников - в окошко как агрумент передается имя необходимого DataWindow (и еще куча разной полезной информации). Естественно, человек, который писал это, сделал небольшую каку - он каким-то образом поставил запрет на изменение своего окошка - т.е. образовался своеобразный черный ящик - не видно скриптов элементов окна, нельзя ничего менять. Естественно, человек со временем уволился.
С недавних пор возникла необходимость в DataWindow делать некоторые проверки вводимых данных, например, графа 1 должна быть больше графы 2, и выводить результат неверно введенных данных на экран. Единственный выход из этой ситуации я вижу в использовании Validation Expressions в DataWindow,
Ну почему же единственный?
Намного дешевле для Вашей огранизации переписать это окно с нуля прямо сейчас, т.к. рано или поздно возникнет необходимость в чем-то, чего нет в DW, а делать надо срочно. Или захочется мигрировать на другую версию PB, а без исходников данного объекта Вы привязаны к текущей версии.
Я бы переписал на Вашем месте.

Есть правда еще вариант - отнаследоваться от данного окна и в наследнике дописать обработку.
...
Рейтинг: 0 / 0
Validation Expressions
    #33101812
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amberit
1. Как в Validation Expressions сравнить графу 1 с графой 2? Причем сравнить не те значения, которые сидят в Primary Buffer, а те, которые пользователь вводит в поля?
GetText() в Validation Expression использовать
Amberit
2. Как в Validation Expressions реализовать проверку правильности ввода по внешним ключам? Понимаю, что при ошибке ввода система (Oracle 9) крикнет о нарушении, но крикнет она на английском, и мне как разработчику сразу будет следовать звонок юзера, что очень нежелательно.
Посылать выше упомянутый GetText() в глобальную функцию в том же самом Validation Expression, а в ней производить небходимые проверки.

Таким образом можно временно не переписывать и не наследоваться...
...
Рейтинг: 0 / 0
Validation Expressions
    #33103590
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, кто ответил на вопрос... Но, честно говоря, ответили Вы не по сути... Если со внешними ключами все можно решить с помощью DropDownDataWindow (с запретом редактирования), благо, размеры списка позволяют, то вот как сравнить графы через Validation Expressions? Ума не приложу...

Переписать, конечно, будет правильнее всего, но реализовать данные проверки нужно за короткий промежуток времени... У кого какие идеи? Очень жду помощи... ;-)))
...
Рейтинг: 0 / 0
Validation Expressions
    #33103594
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmberitСпасибо всем, кто ответил на вопрос... Но, честно говоря, ответили Вы не по сути... Если со внешними ключами все можно решить с помощью DropDownDataWindow (с запретом редактирования), благо, размеры списка позволяют, то вот как сравнить графы через Validation Expressions? Ума не приложу...

Если речь идёт о "графа1" и "графа2" в ОДНОМ ряду, тогда элементарно, если же речь идёт о cross-row validations, тогда по сути дела ни о каких Validation Expressions речи и быть не может...
...
Рейтинг: 0 / 0
Validation Expressions
    #33103658
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совершенно верно, ув. Филипп, в одном ряду... Простите, но я не понимаю... КАК??? ;-)))

GetText() вытягивает введенное значение одного поля... Как я могу в Validation Expressions Графы 1 обратиться к GetText() графы 2??? ;-)))

Повторюсь, меня в данном случае интересуют именно значения в Edit Control-е, а не в первичном буфере, поэтому прямое обращение по имени столбца в данном случае не срабатывает...

С нетерпением жду Ваших советов... ;-)))
...
Рейтинг: 0 / 0
Validation Expressions
    #33103689
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmberitGetText() вытягивает введенное значение одного поля... Как я могу в Validation Expressions Графы 1 обратиться к GetText() графы 2??? ;-)))
Повторюсь, меня в данном случае интересуют именно значения в Edit Control-е, а не в первичном буфере, поэтому прямое обращение по имени столбца в данном случае не срабатывает...
Вы просто в корне не понимаете как работает datawindow control вообще, и Validation Expressions в частности.
Validation Expression срабатывает тогда, когда вы вводите что-то, допустим в Графу 1. В этот момент GetText() есть ТОЛЬКО в Графе 1 и НИГДЕ больше, поэтому как вопрос ваш, так и утверждение - абсурдны.
...
Рейтинг: 0 / 0
Validation Expressions
    #33105959
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за объяснения. Я до этого дошел только на следующее утро... Вот что значит - переработался... ;-)))

Всем спасибо! ;-)))
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Validation Expressions
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]