powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Блокировка выхода фокуса из текущего DW
25 сообщений из 36, страница 1 из 2
Блокировка выхода фокуса из текущего DW
    #35765486
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема:
Необходимо запретить выход из DW до заполнения вручную необходимого количества полей. На окне куча элементов и вставлять в каждый проверку заполнения "DW редактирования" и возврат фокуса в него не хочется. Каким событием можно заблокировать выход фокуса из DW, так что бы при щелчке на новом элементе в нем не отработало ни одного события, а фокус остался в исходном DW?
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35765505
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, совсем забыл. Все таки на 1 кнопку "Сохранить" на окне нажать можно!
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35765579
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
перенести дв в респонс окно.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35765587
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перенести DW в другое окно не могу. Так как на окне в этой вкладке еще 2 DW. От позиции в одном, зависят данные в других. Т.е. при rowfocuschanged в одном я делаю retrive других.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35765940
Mykola
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
events: ItemChanged
, ItemError
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766339
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vovan_z
Если юзер открыл окно, не внес никаких изменений в первое ДВ и пытается из него выйти - такое допускается?
Ибо, при этом вариант от Mykola не сработает.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766422
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mykolaevents: ItemChanged
, ItemError

Эти события не отрабатывают при смене фокуса с одного DW на другой. Они отрабытывают только при смене фокума строк/колонок внутри 1 DW. Даже если бы и отрабытывали то мне перед сменой фокуса всегда последним действием пришлось бы чтото менять в DW. А это не подходит!
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766427
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulJB 2 vovan_z
Если юзер открыл окно, не внес никаких изменений в первое ДВ и пытается из него выйти - такое допускается?
Ибо, при этом вариант от Mykola не сработает.
Такое допускается!
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766501
Фотография ChV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно - это не мое собачье дело, да и в жизни все быть может, но сам подход все же настораживает.
vovan_zПроблема:
Необходимо запретить выход из DW до заполнения вручную необходимого количества полей. ...
Конечно, должна быть защита от дурака, но лишать пользователя возможностей :
- отказаться от ввода данных
- или скопировать откуда-то часть текста, чтобы потом его вставить в поле программы
- или перейти в другую программу, чтобы срочно решить како-либо вопрос
- или ... да мало ли что может быть ?
Я бы не рискнул. Так вместо благодарности - можно и проклятья получить.

Good Luck !
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766747
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChVКонечно - это не мое собачье дело, да и в жизни все быть может, но сам подход все же настораживает.
vovan_zПроблема:
Необходимо запретить выход из DW до заполнения вручную необходимого количества полей. ...
Конечно, должна быть защита от дурака, но лишать пользователя возможностей :
- отказаться от ввода данных
- или скопировать откуда-то часть текста, чтобы потом его вставить в поле программы
- или перейти в другую программу, чтобы срочно решить како-либо вопрос
- или ... да мало ли что может быть ?
Я бы не рискнул. Так вместо благодарности - можно и проклятья получить.

Good Luck !
Переключатся в другие окна программы и другие приложения ты можешь легко. Так что модальное окно еще хуже в этом плане. Иногда такое решение на мой взгляд вполне приемлеменое, н-р когда фокус уходит на другое DW смена строки в котором должа обновить данные в редатируемом ранее DW и ты не можешь дать уйти фокусу не заполнив обязательные параметры или как раз задать вопрос "Т.к. обязательные поля не заполены. Отменить то что было введено?". Как для этото и пригодилоль бы такое событие. Но кажется что его нет:(.наверное придется вствлять вызов обработки в setfocus каждого объекта.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766902
Dmitry..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще вариант:

пробежаться по всем контролам окна и задизаблить всех кроме кнопки и текущего датавиндов.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766939
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry..еще вариант:

пробежаться по всем контролам окна и задизаблить всех кроме кнопки и текущего датавиндов.

Кстати, МЫСЛЬ! так должно получится. А как получить все контролы окна?и в них вложенные?
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35766990
SasaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
window.controls[]
if window.controls[i] - tab, userobject, то tab.controls[], userobject.controls[]
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35767400
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ItemChanged срабатывает только тогда, когда значение поля было изменено юзером иначе - нет.
Т.е. если окно отобразилось и юзер в поле ничего не вводил (в поле содержится значение по умолчанию), при выходе из него ItemChanged не сработает т.к. ничего не менялось. Можно конечно поиграться с флагами SetItemStatus, но это, кажись, ничего не давало. Можно еще попробовать установить св-во Required (точно не помню как называется). Тогда если поле пустое, система по идее должна вызывать ItemError, но при этом билдер довольно назойливо напоминает об заполнении этих полей.
Для установки недоступности поля можно использовать Protected. Удобно тем, что там можно указывать выражения. ... но тоже не лишено глюков. Если интересует - расскажу.
К сож. не могу проверить т.к. билдера нет под рукой, хотя времени уже вагон ... :(
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35767936
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vovan_zНеобходимо запретить выход из DW до заполнения вручную необходимого количества полей.
Идея по сути дела преступная...
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35767952
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему?:)
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35767996
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому :-)

,что те элементы пользовательского интерфейса, которые инициируют действия пргораммы зависящие от состояния заполнения данных и должны вызывать проверку наличия этих данных.
А заниматься пленением ввода (за исключением модальных окон) - нехорошо.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768242
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филиппзаниматься пленением ввода (за исключением модальных окон) - нехорошо.Ну я скажу, что доступность для ввода определенных полей в окне, в зависимости от значений заполнения других, еще никто не отменял? ;)
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768353
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulJBФилиппзаниматься пленением ввода (за исключением модальных окон) - нехорошо.Ну я скажу, что доступность для ввода определенных полей в окне, в зависимости от значений заполнения других, еще никто не отменял? ;)

пленение ввода - это обратный перевод с Capturing Input
Так вот какое имеет отношение Capturing Input к доступности для ввода , не очень ясно...
То бишь бывает, не пущать, а бывает - держать :-)
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768622
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знакомая ситуация
Явные огрехи при проектировании интерфейса
Самый нормальный выход - перед сохранением проверить корректность вводимых данных + контроль каждого элемента "за собой"
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768822
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй, проверка обязательных полей строки.
integer dwcontrol.FindRequired ( DWBuffer dwbuffer, long row, integer
colnbr, string colname, boolean updateonly ) - (скопировано из хелпа)
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768901
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые форумчане, сразу приношу свой извинения за оффтоп. Как сейчас помню в 1994 г в Ленинграде (так раньше назывался СП), в книжном магазине напоролся на книгу, автор гражданин USA (не помню его фамилию), называется "Философия пользовательского интерфейса" (80%) названия правильно, там рекомендовано как правильно создавать интерфейс, т.е. какие цвета использовать вместе какие нет, где лучше расположить кнопки, ширину обеъктов и.т.д.(очень похоже на науку эргономику) и там же написано как делать дружественное поведение программы на действия пользователя. Книга была дорогая не купил, так больше ни разу её не видел.
Если кто, что то знает о ней киньте в личку (Автор, правильное название).
Уважаемый ФИЛИПП посмотрите у себя там.
Заранее всем благодарен.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35768978
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxATC...
Если кто, что то знает о ней киньте в личку (Автор, правильное название).
Уважаемый ФИЛИПП посмотрите у себя там.
Заранее всем благодарен.Поищите по инету - на тему User friendly interface очень много чего понаписано, и не только гражданами USA и не только на английском языке.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35769009
maxATC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ikar,

Спасибо.
...
Рейтинг: 0 / 0
Блокировка выхода фокуса из текущего DW
    #35769780
vovan_z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо, я смотрю у всех свое мнение. И как же по вашему должны работать например 2 DW в окне. Если при изменении фокуса строки в dw1 происходит retriev dw2. А dw2 является редактируемым, причем еще с обязательными полями(с входом и выходом из режима редактирования). Я хочу что бы находясь в режиме редактирования можно было как то откловить событие выхода из dw2, что бы в dw1 не сработал setfocus и rowfocuschanged. И выдать сообщение что данные не все введены и что варианта два либы отменить введеное и фокусировать на dw1 затем dw2 будет обновлено либо остаться и заполнять до конца dw2. Где я думаю не правильно?
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Блокировка выхода фокуса из текущего DW
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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