CftClub.ru
Клуб специалистов ЦФТ-Банк

Как из формы запустить представление для выбора объекта
На страницу 1, 2  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
ulge
Участник со стажем


Вступление в Клуб: 02.11.2015
СообщениеСр Июл 20, 2016 15:26   Как из формы запустить представление для выбора объекта Ответить с цитатой
Полезность: Нет оценки
На форме требуется такая возможность: Пользователь нажимает кнопку, появляется представление заданного типа и пользователь выбирает объект этого типа (например Платеж), после чего из этого объекта значения реквизитов заполняют некоторые поля формы. Вроде понятно: заводим переменную формы с типом ссылка на Платеж, привязываем к ней представление, бросаем на форму, образуется нужная кнопка, которая запускает представление. Вопрос: как передать параметры в представление, чтобы ограничить записи его некими условиями, зависящими от текущих значений на форме? Можно конечно к переменной привязать еще формулу, связывающую колонки представления и переменные операции. Но куда засунуть обработку этих значений, введенных пользователем? Ругань на некорректные значения полей для поиска? Т.е. надо место для кода перед запуском представления, где можно обрабатывать значения переменных для поиска.
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеСр Июл 20, 2016 16:13    Ответить с цитатой
Полезность: Нет оценки
В клиент-скрипте установить фильтр на представление
Object.ViewFilter As String
ulge
Участник со стажем


Вступление в Клуб: 02.11.2015
СообщениеЧт Июл 21, 2016 10:07    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
В клиент-скрипте установить фильтр на представление
Object.ViewFilter As String


И в каком месте установить фильтр на представление? Между нажатием кнопки и запуском представления нет ни одной точки, куда можно привязать код - клиентские или серверный. Событие OnClick для кнопки с представлением не работает.
ulge
Участник со стажем


Вступление в Клуб: 02.11.2015
СообщениеЧт Июл 21, 2016 10:10    Ответить с цитатой
Полезность: Нет оценки
Может завести вторую кнопку? После запуска второй кнопки отработает валидатор, где можно все параметры запроса проверить и поругаться, а потом оттуда же нажать вторую кнопку - с представлением. Невидимую. Кто нибудь знает как из валидатора кнопки нажать другую кнопку?
ulge
Участник со стажем


Вступление в Клуб: 02.11.2015
СообщениеЧт Июл 21, 2016 10:12    Ответить с цитатой
Полезность: Нет оценки
Или в формуле для связи колонок представления и параметров формы вызвать глобальную функцию для проверки значений параметров и ругаться оттуда. Но функция из пакета формы не хочет вызываться в условии формулы. Не видит ее формула.
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Июл 21, 2016 10:54    Ответить с цитатой
Полезность: Нет оценки
Кнопка валидируется? - значит в секцию Валидации.
ulge
Участник со стажем


Вступление в Клуб: 02.11.2015
СообщениеЧт Июл 21, 2016 12:11    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Кнопка валидируется? - значит в секцию Валидации.


Кнопка валидируется уже после того как запущено представление и выбран объект из него. А куда вставить код проверки параметров поиска до запуска представления?
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Июл 21, 2016 12:26    Ответить с цитатой
Полезность: Нет оценки
Цитата:
Событие OnClick для кнопки с представлением не работает.

Тогда OnClick , а почему, кстати, не работает?
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеЧт Июл 21, 2016 12:28    Ответить с цитатой
Полезность: Нет оценки
Параметры представления задаются на этой же форме и валидируются?
ulge
Участник со стажем


Вступление в Клуб: 02.11.2015
СообщениеЧт Июл 21, 2016 12:52    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Параметры представления задаются на этой же форме и валидируются?


Да. Но они валидируются не по критериям поиска, а по критериям ввода нового объекта. Форма используется для ввода объекта. Нужна еще отдельная их валидация перед поиском, годятся ли эти значения для поиска
ulge
Участник со стажем


Вступление в Клуб: 02.11.2015
СообщениеЧт Июл 21, 2016 12:54    Ответить с цитатой
Полезность: Нет оценки
Volod пишет:
Цитата:
Событие OnClick для кнопки с представлением не работает.

Тогда OnClick , а почему, кстати, не работает?


Не знаю. Видимо запуск представления уже занял обработчик OnClicka. Если создаешь, то обработчик не запускается.
ulge
Участник со стажем


Вступление в Клуб: 02.11.2015
СообщениеЧт Июл 21, 2016 12:58    Ответить с цитатой
Полезность: Нет оценки
Зато работает в клиент-скрипте обработка параметра LastControl is Knopka. Запускается перед запуском представления. Можно поставить Main = False, если проверка параметров не проходит. Только вот сообщение всплывает "Не выполнено условие валидатора клиента. ИГнорировать?" Если выберешь да, то представление все равно запускается. А если нет, то не запускается. Как подавить этот вопрос?
ulge
Участник со стажем


Вступление в Клуб: 02.11.2015
СообщениеЧт Июл 21, 2016 13:12    Ответить с цитатой
Полезность: Нет оценки
ulge пишет:
Volod пишет:
Цитата:
Событие OnClick для кнопки с представлением не работает.

Тогда OnClick , а почему, кстати, не работает?


Не знаю. Видимо запуск представления уже занял обработчик OnClicka. Если создаешь, то обработчик не запускается.


Заработал OnClick! И прямо перед запуском представления. Выдаю в обработчике pragma error() при проверке, сообщение отображается, но представление все равно запускается!
Как предотвратить запуск??????
Эмиралька
Эксперт


Вступление в Клуб: 09.11.2015
СообщениеЧт Июл 21, 2016 13:45    Ответить с цитатой
Полезность: Нет оценки
ulge пишет:
ulge пишет:
Volod пишет:
Цитата:
Событие OnClick для кнопки с представлением не работает.

Тогда OnClick , а почему, кстати, не работает?


Не знаю. Видимо запуск представления уже занял обработчик OnClicka. Если создаешь, то обработчик не запускается.


Заработал OnClick! И прямо перед запуском представления. Выдаю в обработчике pragma error() при проверке, сообщение отображается, но представление все равно запускается!
Как предотвратить запуск??????


Почему не проверять валидность данных сразу после изменения этих данных?
И кнопку входа в представление можно сразу задизейблить.

return False там некуда воткнуть?
ulge
Участник со стажем


Вступление в Клуб: 02.11.2015
СообщениеЧт Июл 21, 2016 13:51    Ответить с цитатой
Полезность: Нет оценки
Цитата:
Почему не проверять валидность данных сразу после изменения этих данных?
И кнопку входа в представление можно сразу задизейблить


Критерии валидности разные. Когда значения вводятся для поиска, то они могут быть фрагментами значения, а когда вводятся для ввода, то полными.
Для варианта с LastControl нашел решение. Main = NULL, а не False и представление не вызывается без лишних вопросов.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru