06.09.2010, 17:04 | #1 |
Модератор
|
Как у кнопки динамически поменять 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 |
Участник
|
а не нужно менять свойство у кнопки.
нужно нарисовать три кнопки и менять их видимость. у кнопок может быть одинаковый текст (поэтому с точки зрения пользователя это одна кнопка). но если честно, то "изменение датасорса" - очень неочевидное свойство и кнопки. Поведение кнопки зависит от контекста (в каком месте находится курсор). Хороший пример, когда система делает больше, чем могут подумать люди. Лучше сделать три кнопки с одинаковым текстом и расположить их рядом со своими датасорсами. назначение каждой кнопки будет совершенно очевидно для человека. Примерно как у Заказа есть налоги-вверху и налоги-внизу формы. налоги вверху отвечают за налоги в шапке заказа, а налоги внизу отвечают за налоги по каждой строчке. Очевидно и предсказуемо для человека. И совершенно не зависит от положения курсора и контекста. |
|
|
За это сообщение автора поблагодарили: Poleax (1). |
06.09.2010, 17:19 | #3 |
Модератор
|
Вопрос закрыт. Чет мысль вдруг пришла
Отловил где курсор(Ax 3. Определить в какой колонке на форме стою) Реализовал вызов меню по аналогии с Рутина открывающая поочерёдно формы. AX 2009
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
06.09.2010, 17:27 | #4 |
Модератор
|
Немного не в тему, но код интересный Как отреагировать на активацию дейтасоурсов.
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
06.09.2010, 17:45 | #5 |
Участник
|
вот-вот. типичнейший случай избыточного программирования
код семантически правилен. но система делает нечто, совершенно неожиданое для человека. и не делает того, что ожидается. сценарий 1: 1.1. пользователь бродит по гридам. 1.2. затем открывает кнопки-меню (курсор находится на кнопках. возможно кнопках другого грида, возможно у кнопокй вообще грид не указан. возможно у "нижних" кнопок указан верхний грид - ведь мользователь может использовать настройку формы) 1.3. с точки зрения человека должно сработать сработать действие, связанное с тем местом, где стоит курсов. А ни фига. Будет сделано действие, связанное с последним запомненным датасорсом. сценарий 2: 2.1. в форме в одном гриде поля связаны с разными датасорсами. Например, в строках заказа есть складская аналитика. 2.2. пользователь ходит по одному и тому же гриду, но получает совершенно разное поведение "хитрой кнопки" (хорошо, если программист не забыл перечислить датасорс складской аналитики в своем свитче) сценарий 3: 2.1. прошло время после пояления "хитрой кнопки" 2.2. программист добавил во все формы новый датасорс (например, DirPartyTable) 2.3. с точки зрения пользователя структура формы не изменилась и он ожидает такого же как и раньше поведения 2.4. однако с точки зрения системы изменилось очень многое - изменился датасорс. и хорошо, если программист не забыл добавить в поведение "хитрой" кнопки обработку нового датасорса. Но ведь стопудов забудет. 2.5. в результате пользователь либо получит неработающую кнопку (скорее всего), либо работающую неожиданным для него способом. В общем, не нужно так делать. По-моему. Достаточно вопросов от пользователей "почему в заказах фильтрация и сортировка по складу работает так странно" |
|
|
За это сообщение автора поблагодарили: coolibin (1). |
Теги |
datasource, grid, как правильно, кнопка, программно |
|
|