AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.01.2012, 13:59   #21  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Серые кнопки - зло, говорите? Ну вот, простой пример - на формах журналов есть кнопки утверждения (Report as ready, Approve, Reject). Представьте, насколько бы "удобнее" стал этот механизм, если бы серых кнопок не было.

Из всего текста соглашусь только с одним: программистам с первого дня обучения надо внушать, что при вызове любой функции необходимо проверять условия выполнения, и ни в коем случае не полагаться на доступность/недоступность кнопок. В целом, зло - это не серые кнопки сами по себе, а проектировщики, которые не умеют с ними работать.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
За это сообщение автора поблагодарили: Vadik (1).
Старый 16.01.2012, 14:21   #22  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
Думаю было бы удобнее обращаться с серыми кнопками, если бы можно было:
1. Выделить серую кнопку. Сейчас можно выделить только если кнопку помещена в MenuButton, просто кнопку на форме выделить нельзя. По крайне мере в 3.0 так, в других версиях не знаю
2. Задать отдельный HelpText для серой кнопки. То есть еще одно свойство типа DisabledHelpText значение которого показывалось бы как обычный HelpText, но только если кнопка серая.
Если пункт 2 можно реализовать, перекрыв метод helpField, то пункт 1 требует изменений в ядре, насколько я знаю
Я бы подумал не о выделении кнопки, а о добавлении пункта меню, отображаемого по правой кнопке.
А уж по вызову этого пункта расписывать - что требуется для активации
Правда, это не подойдет для вложенных кнопок
__________________
Axapta v.3.0 sp5 kr2
Старый 16.01.2012, 15:06   #23  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
Думаю было бы удобнее обращаться с серыми кнопками, если бы можно было:
1. Выделить серую кнопку. Сейчас можно выделить только если кнопку помещена в MenuButton, просто кнопку на форме выделить нельзя. По крайне мере в 3.0 так, в других версиях не знаю
2. Задать отдельный HelpText для серой кнопки. То есть еще одно свойство типа DisabledHelpText значение которого показывалось бы как обычный HelpText, но только если кнопка серая.
Если пункт 2 можно реализовать, перекрыв метод helpField, то пункт 1 требует изменений в ядре, насколько я знаю
Тогда уже лучше добавить метод для кнопок, где в рантйме можно по условию разный хелп показывать. Т.е. super() возвращает оригинальную справку, и если метод не переопределен, то все работает как и раньше, если переопределен - в зависимости от условия возвращается для показа строка.

Мне только интересно, кто будет тратить время на написание этих подсказок
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 16.01.2012, 15:14   #24  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,506 / 428 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Коллеги, ну зачем же так сурово? можно же всё проще сделать существующими механизмами:
1) написать нужную проверку, которая возвращает true/false (последнее - в виде checkFailed)
2) в строчке на active эту проверку вызывать. если false - рисовать в отдельном поле красный квадратик (как при разноске складских журналов)
3) по нажатию кнопки - делать эту же проверку, но выводить false-результат в инфолог

Будет наглядно без всяких серых кнопок
__________________
С уважением,
Вячеслав
За это сообщение автора поблагодарили: Logger (7).
Старый 16.01.2012, 15:23   #25  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от Link Посмотреть сообщение
Тогда уже лучше добавить метод для кнопок, где в рантйме можно по условию разный хелп показывать. Т.е. super() возвращает оригинальную справку, и если метод не переопределен, то все работает как и раньше, если переопределен - в зависимости от условия возвращается для показа строка.
Такой метод есть - helpField, только у серой кнопки его вызывать нельзя.

Цитата:
Сообщение от pitersky Посмотреть сообщение
Коллеги, ну зачем же так сурово? можно же всё проще сделать существующими механизмами:
1) написать нужную проверку, которая возвращает true/false (последнее - в виде checkFailed)
2) в строчке на active эту проверку вызывать. если false - рисовать в отдельном поле красный квадратик (как при разноске складских журналов)
3) по нажатию кнопки - делать эту же проверку, но выводить false-результат в инфолог
Будет наглядно без всяких серых кнопок
Сделать можно все. Было бы удобно, если бы подсказку можно было бы создать как можно более простым способом, без лишнего программирования.
Старый 16.01.2012, 17:01   #26  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
Такой метод есть - helpField, только у серой кнопки его вызывать нельзя.

Сделать можно все. Было бы удобно, если бы подсказку можно было бы создать как можно более простым способом, без лишнего программирования.
Что то я тогда не пойму тогда с чего сыр да бор.

Получается, что все можно сделать (см. вложение). Подсказка кнопки меняется в зависимости от текущих условий. Только кому то не хватает более простого способа. А кто то говорит о том, что нет возможности в рантайме выводить подсказки.

AX 4 форма демонстрирует возможность отображать актуальную подсказку по неактивным кнопкам.
Вложения
Тип файла: xpo Form_tutorial_ButtonsHelp.xpo (5.5 Кб, 462 просмотров)
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.

Последний раз редактировалось Link; 16.01.2012 в 17:53.
За это сообщение автора поблагодарили: S.Kuskov (5).
Старый 16.01.2012, 17:56   #27  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
П.С. Интересно, кто нибудь будет это использовать )
Идея конечно красивая, но вот стоит ли оно усилий?
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 17.01.2012, 11:26   #28  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от Link Посмотреть сообщение
Что то я тогда не пойму тогда с чего сыр да бор.

Получается, что все можно сделать (см. вложение).
Можно, но не всё. Разместите кнопки Start и Finish не в MenuButton, а просто в ButtonGroup, чтобы они отображались на форме, тогда выделить серую кнопку не получится.

Цитата:
Сообщение от Link Посмотреть сообщение
П.С. Интересно, кто нибудь будет это использовать )
Идея конечно красивая, но вот стоит ли оно усилий?
Думаю не стоит и использовать никто не будет. Чтобы такое использовали нужно чтобы подсказки можно было задавать в свойствах контролов без программирования и сама подсказка должна быть яркой, многострочной, а не как сейчас одна строка внизу экрана мелким шрифтом (говорю про 3.0 в других не знаю). Потому что сама идея, чтобы система содержала в себе подсказки для пользователя, привязанные к конкретному действию, вместо того, чтобы использовать для этого внешнюю документацию, мозг консультанта или программный код, в общем-то верная, просто реализация этих подсказок никакая и развитие этого механизма не производится. Почему, сложный вопрос.
Старый 17.01.2012, 12:29   #29  
ZornFire is offline
ZornFire
MS Dynamics AX 2012 R3
Аватар для ZornFire
Oracle
Злыдни
Ex AND Project
 
333 / 76 (3) ++++
Регистрация: 12.01.2009
Адрес: Москва
ИМХО кнопки в зависимости от ситуации можно и перекрасить. Не доступна операция - окрасить её в бледно жёлтый цвет и сделать внушение пользователям чтобы жали "Ctrl + F5" например.
А вообще на тему "и побежали они с консультантом к программисту" это где такие консультанты, что бизнес процессов своей компании не знают? о_О
Вообще такие траблы решают грамотные мануалы.
__________________
"Человек человеку волк, а зомби зомби зомби." (с)
С Уважением, Алексей Кабанов

Последний раз редактировалось ZornFire; 17.01.2012 в 12:34.
Старый 17.01.2012, 12:37   #30  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,506 / 428 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Цитата:
Сообщение от mr.ZF Посмотреть сообщение
А вообще на тему "и побежали они с консультантом к программисту" это где такие консультанты, что бизнес процессов своей компании не знают? о_О
Вообще такие траблы решают грамотные мануалы.
вы ещё больший идеалист, чем я
мануалы для уже внедрённых систем переписывают крайне редко в силу дефицита ресурсов. соответственно, мануал помогает далеко не всегда, в силу чего туда просто не заглядывают.
да и на консультантов вы зря взъелись. На некоем журнале может быть стопиццот проверок (в том числе частично незадокументированные), а косяк может сидеть где-то в самой середине самой средней проверки. Если это не очевидный косяк, то консультант опять же будет его вылавливать существенно дольше, чем программист.
__________________
С уважением,
Вячеслав
Старый 17.01.2012, 12:40   #31  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от mr.ZF Посмотреть сообщение
А вообще на тему "и побежали они с консультантом к программисту" это где такие консультанты, что бизнес процессов своей компании не знают? о_О
Вообще такие траблы решают грамотные мануалы.
Иногда консультант бежит не только что бы спросить "как работает?", а что бы спросить "всегда работало так, а стало вот так, почему?"
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 17.01.2012, 12:59   #32  
ZornFire is offline
ZornFire
MS Dynamics AX 2012 R3
Аватар для ZornFire
Oracle
Злыдни
Ex AND Project
 
333 / 76 (3) ++++
Регистрация: 12.01.2009
Адрес: Москва
Цитата:
Сообщение от pitersky Посмотреть сообщение
вы ещё больший идеалист, чем я
мануалы для уже внедрённых систем переписывают крайне редко в силу дефицита ресурсов. соответственно, мануал помогает далеко не всегда, в силу чего туда просто не заглядывают.
да и на консультантов вы зря взъелись. На некоем журнале может быть стопиццот проверок (в том числе частично незадокументированные), а косяк может сидеть где-то в самой середине самой средней проверки. Если это не очевидный косяк, то консультант опять же будет его вылавливать существенно дольше, чем программист.
не, я не взъелся на консультантов
просто имею опыт, где в компаниях хорошо следят за мануалами(как правило на первой линии поддержки или сами консультанты), не во всех компаниях конечно, ресурсы это да, не у всех они опять же есть в нужном количестве, про косяки я не говорю, хотя стоило упомянуть и про них но видимо поздняк)) вы уже про них расписали)

Цитата:
Сообщение от lev Посмотреть сообщение
Иногда консультант бежит не только что бы спросить "как работает?", а что бы спросить "всегда работало так, а стало вот так, почему?"
Да это понято, просто мне надо было расписать свой комментарий и на эту тему
__________________
"Человек человеку волк, а зомби зомби зомби." (с)
С Уважением, Алексей Кабанов

Последний раз редактировалось ZornFire; 17.01.2012 в 13:32.
Старый 17.01.2012, 15:04   #33  
Link is offline
Link
Британский учённый
Аватар для Link
Соотечественники
 
568 / 523 (19) +++++++
Регистрация: 25.11.2005
Адрес: UK
Записей в блоге: 9
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
Такой метод есть - helpField, только у серой кнопки его вызывать нельзя.

Сделать можно все. Было бы удобно, если бы подсказку можно было бы создать как можно более простым способом, без лишнего программирования.
А как тогда это будет работать в рантайме, если в зависимости от текущих данных подсказка будет разной? Для простого случая, есть общая однострочная подсказка. Если нужно расписать подробно, есть справка, где для стандартного функционала есть Button description. Если нужно выводить в рантайме, пожалуйста helpField. Помоему нормальная гибкость для разработчика и удобство для пользователя.

Цитата:
Сообщение от Lucky13 Посмотреть сообщение
Можно, но не всё. Разместите кнопки Start и Finish не в MenuButton, а просто в ButtonGroup, чтобы они отображались на форме, тогда выделить серую кнопку не получится.

Думаю не стоит и использовать никто не будет. Чтобы такое использовали нужно чтобы подсказки можно было задавать в свойствах контролов без программирования и сама подсказка должна быть яркой, многострочной, а не как сейчас одна строка внизу экрана мелким шрифтом (говорю про 3.0 в других не знаю). Потому что сама идея, чтобы система содержала в себе подсказки для пользователя, привязанные к конкретному действию, вместо того, чтобы использовать для этого внешнюю документацию, мозг консультанта или программный код, в общем-то верная, просто реализация этих подсказок никакая и развитие этого механизма не производится. Почему, сложный вопрос.
Группировка кнопок это хороший бестпрактис, и чаще всего неактивные кнопки содержатся в подменю, по крайней мере в стандарте.
А чем справка не многострочная и яркая подсказка, систематизированная, с поиском, картинками и т.д.?
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще.
Старый 13.02.2020, 22:35   #34  
ta_and is offline
ta_and
Участник
 
226 / 122 (5) +++++
Регистрация: 26.02.2002
Адрес: СПб
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Также немаловажную роль играет психологический момент. Система, которая "раньше" ограничивает пользователя в неправильных действиях, предвосхищая ошибки, субъективно вызывает больше доверия.
Единственный вменяемый аргумент в пользу серых кнопок.
----------------------------
Сегодня опять возникла эта свистопляска с серыми кнопками. : )
Есть кнопка на форме Подтвердить.
Она серится стандартным кодом, который вызывает для этого грамотно написанный стандартный класс статусов для текущей записи. Здорово!
Да вот беда.
Пользователи видят серую кнопку и спрашивают - Почему она серая?!
А серой она может быть по очень многим причинам, начиная со статуса записи заканчивая заполненностью полей.
И вот бедные пользователи спрашивают у консультанта - Что не так?
Хорошо, консультант как раз грамотный. Сразу перечень критериев выдает...
Ну это понятно... : )
Еще раз подчеркиваю это СТАНДАРТ.
Какие есть идеи?
1. Отменить проверку "серости" кнопки, сделать ее всегда доступной БЕЗ гарантии, что при ее нажатии все будет хорошо. Потому что для того, чтобы узнать а что же может быть не хорошо, это нужно прошерстить весь код обработки чтобы точно убедиться, что все критерии доступности кнопки проверяются.
2. Сделать дополнительную кнопку Проверить по которой запускать тот же класс проверки но уже с выводом сообщений. И не факт, что все нужные сообщения будут выведены, потому что класс проверки изначально планировался как вспомогательный и ТИХИЙ. Ну типа нажали Проверить, а сообщений никаких нет. Типа все хорошо. Но кнопка осталась серой. Нужно будет смотреть стандартный класс и выводить нужные сообщения.
-----------------------------------------
А теперь предположим, что в стандарте
1. сделали класс для выполнения функции подтверждения. Возможно, с наследниками для каждого статуса.
2. все проверки сделали внутри этого класса и его наследниках, возможно с использованием дополнительной структуры классов, обслуживающих именно статусы. Все проверки изначально с выводом сообщения об ошибке или недопустимости действия.
3. кнопку Проверить на форме НЕ проверяли и НЕ делали серой.

Как вы думаете, уважаемые сторонники серых кнопок, насколько лучше было бы это предполагаемое решение по сравнению с тем, что есть сейчас?
-------------
По пунктам:
1. Предсказуемость поведения системы (сейчас пользователи плачут горькими слезами)
2. Стабильность работы системы.
3. Легкость модификации поведения системы (с учетом того, что сейчас есть код на форме)
------------------

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

----------------------------------------

Уважаемый Link.
Вы сами себе противоречите.
Вы говорите, что полностью со мной не согласны насчет серых кнопок.
А потом жалуетесь на то, что вот серые поля - это да... это беда....
Извините меня, пожалуйста, но это одни и те же доводы.
Серые кнопки = серые поля.
И при грамотном проектировании как раз проверки делаются в методах validate*, на таблице, а не тупым запрещением редактирования на форме или на источнике данных. Конечно, если поле в принципе не может быть изменено, то оно может быть нередактируемым. Но делать недоступными поля, которые можно изменять при каких-то условиях, при каких-то нельзя - это плохое проектирование. Ровно аналогично с серыми кнопками. Как раз если поле запрещено для редактирования на форме программно - это прямой путь к грубым ошибкам в данных. Потому что есть такая возможность вытащить поля из источника данных при настройке форм. и тут... вся такая бизнес-логика построенная на недоступности полей вообще идет далеко и надолго.

Разберу пару Ваших доводов:
Цитата:
Сообщение от Link Посмотреть сообщение
Имхо подход с неактивными кнопками очень удобен, функционален и информативен.
Голословное утверждение, доводы против неактивных кнопок я привел в этой статье.

Цитата:
Сообщение от Link Посмотреть сообщение
Если есть необходимость объяснить пользователю, почему кнопка неактивна, то для этого нужна справка, где пользователь должен иметь возможность получить ответ.
Ответный довод: Справка на динамично внедряемом проекте обычно сильно отстает от производимых изменений и НЕ соответствует уже реализованным дополнительным проверкам.

Цитата:
Сообщение от Link Посмотреть сообщение
Пункт с производительностью мне вообще непонятен
Извините за нескромный вопрос.... как Вы думаете работает проверка доступности кнопки и запрет ее доступности?
Я очень грубо опишу Вам этот процесс:
1. После активации записи срабатывает код active на источнике данных.
2. Срабатывает код, который анализирует критерии доступности кнопки. Подчеркиваю, при ЛЮБОМ выборе ЛЮБОЙ записи срабатывает данный код.
2.1. В лучшем случае идет проверка имеющихся полей в источнике данных и принимается решение о доступности кнопки.
2.2. Чуть хуже, но еще ничего так... идет вызов методов класса, которые выполняются на сервере.
2.3. Еще хуже - класс обработчик инициализирован на клиенте и он делает проверки дергая запросы к базе данных.
2.4. Ну и верх совершенства - код расположен прямо на форме (не важно в кнопке, на форме или на источнике данных)
Как Вы думаете, это НЕ влияет на производительность?
Причем, в отличии от дисплейных методов полученные результаты НЕ могут быть закешированы. (Надеюсь, понятие кэширования Вам знакомо)
3. В зависимости от результата проверки устанавливается свойство контрола на форме - доступен-недоступен. При этом ПЕРЕРИСОВЫВАЕТСЯ вся форма или ее часть, в зависимости от того, где это свойство устанавливается и было ли залочено обновление формы до выполнения данной операции. В любом случае, при изменении свойства форма перерисовывается.
Как Вы думаете, это НЕ влияет на производительность работы формы?

Цитата:
Сообщение от Link Посмотреть сообщение
, так как считаю что данный прием используются на гриде, где данные уже прочитаны и нет необходимости обращаться к БД вновь.
Думаю, что запросы к базе данных при проверке доступности делаются в большинстве случаев. Хотя, я статистику не вел. Возможно, тут я ошибаюсь.

Цитата:
Сообщение от Link Посмотреть сообщение
Если такая необходимость есть, то конечно тогда проще сделать проверку по нажатию кнопки - помоем это логично и понятно для любого программиста.
Вы это о чем сейчас? Я говорю о принципах проектирования интерфейса, а вы говорите о конкретной реализации кода? Не передергивайте. И не считайте, пожалуйста, меня иррациональным и не понятливым.

Если вы приведете разумные доводы, я Вас выслушаю.

----------
Рассматривать предположения "Неплохо было бы..." я не буду, так как мы живем в реальной системе и ее свойства достаточно жестко ограничены Microsoft.
Старый 14.02.2020, 00:38   #35  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
397 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Если делать кнопки серыми, пользователи будут спрашивать, почему они серые.
Если оставлять черными, будут спрашивать, почему они нажимают, а ничего не происходит.
Если кнопки скрывать, пользователи будут спрашивать, почему не видно, вчера были.
За это сообщение автора поблагодарили: AlGol (2).
Старый 14.02.2020, 11:43   #36  
Morpheus is offline
Morpheus
Участник
Аватар для Morpheus
Соотечественники
 
602 / 167 (7) ++++++
Регистрация: 30.03.2005
Адрес: Київ-København-Düsseldorf
Цитата:
Сообщение от Stitch_MS Посмотреть сообщение
Если оставлять черными, будут спрашивать, почему они нажимают, а ничего не происходит.
Сообщение подскажет, что должно быть еще сделано, чтобы действие кнопки завершилось успешно.
За это сообщение автора поблагодарили: ta_and (4), Logger (3).
Старый 14.02.2020, 12:36   #37  
ta_and is offline
ta_and
Участник
 
226 / 122 (5) +++++
Регистрация: 26.02.2002
Адрес: СПб
Цитата:
Сообщение от ta_and Посмотреть сообщение
3. кнопку Проверить на форме НЕ проверяли и НЕ делали серой.
Читать как
3. кнопку Подтвердить на форме НЕ проверяли и НЕ делали серой. Кнопка просто вызывает класс-обработчик, в котром делаются все проверки и выдаются соответствующие сообщения если обнаружена ошибка или недопустимое действие.
Старый 14.02.2020, 12:37   #38  
ppson is offline
ppson
Участник
Аватар для ppson
Ex AND Project
1C
 
2,102 / 114 (8) +++++
Регистрация: 25.06.2002
Адрес: SPb, Msk
Цитата:
Сообщение от ta_and Посмотреть сообщение
Пользователи видят серую кнопку и спрашивают - Почему она серая?!
А серой она может быть по очень многим причинам, начиная со статуса записи заканчивая заполненностью полей.
И вот бедные пользователи спрашивают у консультанта - Что не так?
Хорошо, консультант как раз грамотный. Сразу перечень критериев выдает...
Ну это понятно... : )
Еще раз подчеркиваю это СТАНДАРТ.
Какие есть идеи?
Есть идея отправить пользователей читать инструкцию по интерфейсу системы.
И пользователи не бедные, а безграмотные и самоуверенные.
__________________
Старый 14.02.2020, 16:49   #39  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Только сегодня столкнулись с интересным эффектом "засеривания" кнопки в DAX2012.
На форме SalesTable управляем кнопкой, расположенной в ActionPane стандартным образом в классе SalesTableInteraction.
Вроде бы все хорошо - по нужному статусу кнопка активна/не активна, но есть нюанс... "Засеривание" происходит с очень короткой, но задержкой, в итоге, если нажимать F5 и успеть щелкнуть кнопку, то она срабатывает.
За это сообщение автора поблагодарили: trud (1), S.Kuskov (2).
Старый 14.02.2020, 17:15   #40  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Я бы сказал, что идеальная картинка такая:
1. Есть процедура. При ее запуске всегда выполняется п.2 (кроме явного разрешения пропустить проверку, если мы прям уверены, что всё ок).
2. Есть пререквизиты, оформленные в одном месте полным списком. Можно в любой момент запросить валидность запуска процедуры и получить как краткий ответ "можно" / "нельзя" так и расширенный - что именно ок, что именно не ок.
3. Есть Интерфейс пользователя с опциями:
3.1. Кнопка отображается при прохождении п.2.
3.2. Кнопка активная при прохождении п.2.
3.3. Кнопка после нажатия проверяет п.2. Если можно - выполняет п.1, если нельзя - дает расширенный ответ почему нельзя.
3.4. Отдельная кнопка "Проверка" / "Предварительный запуск", выполняет п.2, дает расширенный ответ.

В каждом конкретном случае разработчик в зависимости от процесса / пользователей выбирает нужный вариант Интерфейса.

Плохо что в стандарте есть разные варианты реализации всех 3х пунктов, и на вскидку не припомню ни одной идеальной реализации
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: sukhanchik (4).
Теги
динамический хелп

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как у кнопки динамически поменять DataSource ? Poleax DAX: Программирование 4 06.09.2010 17:45
TreeNode кнопки на форме -> ClassId класса кнопки Андрей К. DAX: Программирование 4 27.07.2010 10:01
Активация/деактивация кнопки ToolBara Kaermo DAX: Программирование 5 23.07.2009 16:39
Аксапта как фронт-офисное решение в рознице. vc DAX: Функционал 15 11.02.2008 10:42
как в табличном методе "узнать" о нажатии определенной кнопки на форме Zeppelin DAX: Программирование 12 08.11.2007 20:47

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:10.