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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.09.2010, 17:04   #1  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
? Как у кнопки динамически поменять DataSource ?
На форме есть 3 DataSource.
Есть кнопка вызывающая \Menu Items\Display\SysDatabaseLog (Журнал базы данных)

Как кнопке динамически поменять DataSource?

В АОТ можно ручками проставить DataSource у кнопки, но мне надо чтоб DataSource кнопки менялся относительно того на каком DataSource находится курсор.
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Старый 06.09.2010, 17:13   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Poleax Посмотреть сообщение
Как кнопке динамически поменять DataSource?
а не нужно менять свойство у кнопки.
нужно нарисовать три кнопки и менять их видимость.
у кнопок может быть одинаковый текст (поэтому с точки зрения пользователя это одна кнопка).

но если честно, то "изменение датасорса" - очень неочевидное свойство и кнопки. Поведение кнопки зависит от контекста (в каком месте находится курсор). Хороший пример, когда система делает больше, чем могут подумать люди.

Лучше сделать три кнопки с одинаковым текстом и расположить их рядом со своими датасорсами. назначение каждой кнопки будет совершенно очевидно для человека. Примерно как у Заказа есть налоги-вверху и налоги-внизу формы. налоги вверху отвечают за налоги в шапке заказа, а налоги внизу отвечают за налоги по каждой строчке. Очевидно и предсказуемо для человека. И совершенно не зависит от положения курсора и контекста.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Poleax (1).
Старый 06.09.2010, 17:19   #3  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Вопрос закрыт. Чет мысль вдруг пришла

Отловил где курсор(Ax 3. Определить в какой колонке на форме стою)

Реализовал вызов меню по аналогии с Рутина открывающая поочерёдно формы. AX 2009
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Старый 06.09.2010, 17:27   #4  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Немного не в тему, но код интересный Как отреагировать на активацию дейтасоурсов.
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Старый 06.09.2010, 17:45   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
вот-вот. типичнейший случай избыточного программирования
код семантически правилен.

но система делает нечто, совершенно неожиданое для человека.
и не делает того, что ожидается.

сценарий 1:
1.1. пользователь бродит по гридам.
1.2. затем открывает кнопки-меню (курсор находится на кнопках. возможно кнопках другого грида, возможно у кнопокй вообще грид не указан. возможно у "нижних" кнопок указан верхний грид - ведь мользователь может использовать настройку формы)
1.3. с точки зрения человека должно сработать сработать действие, связанное с тем местом, где стоит курсов. А ни фига. Будет сделано действие, связанное с последним запомненным датасорсом.

сценарий 2:
2.1. в форме в одном гриде поля связаны с разными датасорсами. Например, в строках заказа есть складская аналитика.
2.2. пользователь ходит по одному и тому же гриду, но получает совершенно разное поведение "хитрой кнопки" (хорошо, если программист не забыл перечислить датасорс складской аналитики в своем свитче)

сценарий 3:
2.1. прошло время после пояления "хитрой кнопки"
2.2. программист добавил во все формы новый датасорс (например, DirPartyTable)
2.3. с точки зрения пользователя структура формы не изменилась и он ожидает такого же как и раньше поведения
2.4. однако с точки зрения системы изменилось очень многое - изменился датасорс. и хорошо, если программист не забыл добавить в поведение "хитрой" кнопки обработку нового датасорса. Но ведь стопудов забудет.
2.5. в результате пользователь либо получит неработающую кнопку (скорее всего), либо работающую неожиданным для него способом.

В общем, не нужно так делать. По-моему.
Достаточно вопросов от пользователей "почему в заказах фильтрация и сортировка по складу работает так странно"
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: coolibin (1).
Теги
datasource, grid, как правильно, кнопка, программно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
C# and AX Development: Updating the caller Form/DataSource Blog bot DAX Blogs 0 18.07.2009 02:28
Как скрыть лишние DataSource у кнопки "Выбрать" Poleax DAX: Программирование 14 24.07.2008 11:43
Обновление таблицы в DataSource при ее изменении Андре DAX: База знаний и проекты 7 22.04.2008 13:16
Заполнение DataSource из постоянной и временной таблиц m_ax DAX: Программирование 2 21.06.2007 13:08
Как получить значение поля Datasource на динамически созданной форме? storer DAX: Программирование 2 14.11.2003 16:41
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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