|
![]() |
#1 |
Участник
|
Цитата:
Цитата:
titov, спасибо. Оно работает! |
|
![]() |
#2 |
Гость
|
Цитата:
У него ощущение фэншуйности происходящего и заботы со стороны системы возникает. А ругательные окошечки никто не любит. |
|
![]() |
#3 |
Гость
|
Лишние контролы как-то уж совсем круто.
Я в подобных случаях запрещал отдельно лежащую на форме кнопку в executeQuery датасорса, а в active разрешал. Если пользователь наложил такой фильтр что нет записей, то executeQuery сработает, а active нет. |
|
![]() |
#4 |
Участник
|
Цитата:
Цитата:
Сообщение от S.Kuskov
![]() нужно ловить манипуляции с источником данных, прекрыть и executeQuery() и delete(), но это не спортивно
![]() Последний раз редактировалось S.Kuskov; 24.12.2010 в 11:44. |
|
![]() |
#5 |
Гость
|
А этот контрол нужно по всем закладкам рассовывать?
Если пользователь наложит фильтр, возвращающий пустой набор данных, находясь на закладке, где нет этого контрола, то display-методу по идее не будет причины быть вызванным? |
|
![]() |
#6 |
Участник
|
Вспомогательный display-контрол лежит вне вкладок, в корне дизайна. Он не связан с конкретным исочником и реагирует на любое изменение формы
|
|
|
За это сообщение автора поблагодарили: titov (1). |
![]() |
#7 |
Участник
|
S.Kuskov - спасибо за верные пояснения - все именно так.
Немного добавлю. Форма может и не иметь источник данных (контролы table,list), тогда перечень методов перехвата резко возрастает. В целом все методы, которые мы хотим перехватить вызывают метод перерисовки формы - вот она ключевая точка, но попасть туда можно только через дисплей метод (или по таймеру крутить свой метод - это второе более плохое решение, так как есть время, когда пользователь может успеть нажать кнопку). Итого - приходиться вот так "троянски" влезать туда, куда не пустили. Насчет сообщений и фэншуйности - почему то поля с запретом редактирования сразу запрещают работу, а не сообщают потом, что "было оказываеться нельзя". Это даже не обсуждается. По кнопкам же вопрос возникает. Потому, что большинство отдельных кнопок имеют такое поведение и считается, что так верно. Не так! Пример из самой Аксапты: пользователь не сможет разнести отгруженный заказ, так как кнопки не активны - там они активируются при нажатии на MenuButton - логика блокировки присутствует. Разница в чем? При отдельной кнопке просто возникает технический момент поиска метода, подобного MenuButton.clicked(), но не на конкретное нажатие, а на действия на форме, изменяющих блокировку. Набор действий (методов) в каждом случае разный, разнообразный и при этом плохо! контролируется программистом - вот причина отказа от блокирования - лучше сообщение, чем непонятные мерцания. А по логике надо сделать "аналогично" форме заказов. |
|
![]() |
#8 |
Модератор
|
Цитата:
Пользователю приятно, когда система ведет себя как хочет S.Kuskov.
У него ощущение фэншуйности происходящего и заботы со стороны системы возникает. А ругательные окошечки никто не любит ![]() Я рассуждаю с точки зрения разработчика на стороне партнера или вендора, от которого требуется а) относительно быстро (читай - недорого) и б) надежно (лучше - гарантированно) решить простую задачу. Быстро - потому что реально сложных и нужных "уже вчера" задач и так хватает. Недорого - потому что платить за мои экзерсисы клиент как правило не хочет и постоянно норовит продемонстрировать, что понимает, сколько стоит "добавить поле в таблицу" и "добавить кнопку на форму" (пусть даже переделывать за ним дороже чем сделать самому). С точки зрения фэншуйности я вообще могу быть апологетом дизайна пользовательских интерфейсов от Джобса & Co, но работаю в том, что выдали и не жужжу ![]() Цитата:
Насчет сообщений и фэншуйности - почему то поля с запретом редактирования сразу запрещают работу, а не сообщают потом, что "было оказываеться нельзя". Это даже не обсуждается
Цитата:
Пример из самой Аксапты: пользователь не сможет разнести отгруженный заказ, так как кнопки не активны - там они активируются при нажатии на MenuButton - логика блокировки присутствует..
.. А по логике надо сделать "аналогично" форме заказов И напоследок относительно "надежно". Мне хотелось бы, чтобы эта функциональность работала бы откуда бы ее ни вызывали и не ломалась от того, что кто-то что-то на форме добавит, переместит или перекроет (или забудет перекрыть). Так же хотелось бы избежать ненужного неконтролируемого трафика (иногда - платного) между AOS-ом и клиентом, равно как и между клиентом и терминальным сервером (чего в случае перекрытого display метода не избежать). В общем, работая на партнере хочется "быстро, недорого, надежно". Я понимаю, при работе "на клиенте" критерии могут меняться на, например, "чтобы МарьИванне стало хорошо". Это нормально, если МарьИванна платит. Главное, чтобы понимала - сколько и за что ![]()
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: gl00mie (2), S.Kuskov (1). |
![]() |
#9 |
Участник
|
Цитата:
Сообщение от Vadik
![]() Мне хотелось бы, чтобы эта функциональность работала бы откуда бы ее ни вызывали и не ломалась от того, что кто-то что-то на форме добавит, переместит или перекроет (или забудет перекрыть). Так же хотелось бы избежать ненужного неконтролируемого трафика (иногда - платного) между AOS-ом и клиентом, равно как и между клиентом и терминальным сервером (чего в случае перекрытого display метода не избежать).
|
|
![]() |
#10 |
Administrator
|
Заодно сразу предвосхищу любителей фразы "А вот потом у вас все это вылезет при апгрейде на следующую версию".
Любая следующая версия (если в ней только конечно не пару запятых поставлено) предполагает фактически перевнедрение. Нет смысла переходить (условно) с 4-ки на 2009-ю, сменив при этом только exe-шник (ну конечно - если нет чисто технологических ограничений, которые снимаются новым exe-шником). Нужно заново переосмыслять процессы, удалять лишнюю функциональность, которая уже появилась в стандарте и т.д. А учитывая как сейчас меняются версии - можно говорить смело - апгрейда не будет. Будет абсолютно новая версия с переобучением пользователей (что тоже деньги). Т.е. вывод: нет смысла "закладываться на апгрейд", если все равно потом все переосмысливать (=переделывать) с нуля (ну или - скажем так - экономически необоснованно закладываться). PS. Обсуждение апгрейдов плз вести в отдельной ветке. Здесь данный пост предназначен исключительно для понимания потенциальных затрат, понесенных на способ запрета к какой-то функциональности
__________________
Возможно сделать все. Вопрос времени |
|