03.11.2006, 12:46 | #1 |
Участник
|
Динамические чекбоксы в неизвестном количестве
Добрый день
Необходимо в группе на форме сгенерировать зараннее неизвестное количество чекбоксов (=количеству записей в таблице), поменять некоторые параметры, потом снять значения и иметь возможность enable/disable. Чем оптимальней всего будет воспользоваться в этом случае ? Спасибо
__________________
_databaseTransDelete ... bl@$ ! |
|
03.11.2006, 12:49 | #2 |
Axapta
|
|
|
03.11.2006, 12:57 | #3 |
Участник
|
__________________
_databaseTransDelete ... bl@$ ! |
|
03.11.2006, 13:03 | #4 |
Участник
|
Цитата:
Прячьте ненужные. Обратите внимание, что при большом количестве чекбоксов (20 уже большое количество) пользователю будет неудобно работать с таким решением. Если вы ожидаете, что будет больше, то вам нужно менять дизайн решения. |
|
03.11.2006, 13:04 | #5 |
Участник
|
А почему бы не сделать поле с edit-методом и записывать результат (enable/disable) в Map, например, с RedId в качестве ключа
|
|
03.11.2006, 13:04 | #6 |
Axapta
|
Лучше прятать, а не создавать.
ЗЫ ИМХО выбор решения не верен. Постановку задачи можно? |
|
03.11.2006, 13:04 | #7 |
Участник
|
можно на TreeView сделать или на гриде
|
|
03.11.2006, 13:06 | #8 |
Moderator
|
Ммм... непонятная задача...
А простой грид с edit-методом в виде чекбокса не подойдет?
__________________
Андрей. |
|
03.11.2006, 13:24 | #9 |
Участник
|
Цитата:
Есть форма показывающая InventTable, вверху фильтр-группа где указывается items из каких ItemGroups показывать. Стандартный аксаптовский способ через Select/Range не подходит, так как форма используется на складе, и нужен быстрый ввод желательно с клавиатуры. Аналогов в Aксапте не нашел. Или таблицы с NoYes или listPanel как в SysUserInfo. Оба способа занимают слишком много места на форме и одной табуляцией не обойдешься. Способ с фиксированным количеством и прятанием не очень красивый, а что если не 20, а 21 группа будет когда-нибудь, показывать сообшение "превышено количество возможных груп" ? имхо хардкодинг ...
__________________
_databaseTransDelete ... bl@$ ! |
|
03.11.2006, 13:31 | #10 |
Участник
|
Ожидаю вообше не больше 10, но уже сталкивался с ситуацией когда такое решение было использовано предыдушим разработчиком, только там было такое понятние как класс товара (всего было 3 класса), заданное NoYes отдельным полем в таблице, а через полгода на предприятии решили что а давайте сделаем на пару десятков классов больше ! В результате пришлось перерывать кучу кода для поддержки етих новых классов. А сделал бы тот кто сначала ето делал таблицей, все можно бы было поправить за полчаса.
__________________
_databaseTransDelete ... bl@$ ! |
|
03.11.2006, 13:35 | #11 |
Участник
|
Аналог есть, правда там ComboBox-ы, но не существенно
Расчеты с Клиентами - Настройки - Параметры - Вкладка Обновление - кнопка Обновление Строк. |
|
|
За это сообщение автора поблагодарили: DTD (1). |
03.11.2006, 13:38 | #12 |
Участник
|
А если посмотреть, как реализована табличка InventDimParm?
Такое вам чем не подходит? По каждому пользователю тогда возможны свои настройки, которые будут сохраняться при выходе с формы картотеки номенклатуры. |
|
03.11.2006, 13:45 | #13 |
Axapta
|
Эм... не понял. А почему нельзя просто в поле фильтр руками писать нужные группы через запятую (или выбирать из списка) и потом фильтровать по этим группам?
Или грид и отмечать чекбоксами, какие группы показывать. ЗЫ Что-то я видимо пока в задачу не въехал. |
|
03.11.2006, 22:45 | #14 |
Участник
|
Цитата:
Сообщение от DTD
Есть форма показывающая InventTable, вверху фильтр-группа где указывается items из каких ItemGroups показывать.
Стандартный аксаптовский способ через Select/Range не подходит, так как форма используется на складе, и нужен быстрый ввод желательно с клавиатуры. Аналогов в Aксапте не нашел. Или таблицы с NoYes или listPanel как в SysUserInfo. Стандартный фильтр позволяет запоминать установленный фильтр. А потом быстро восстанавливать. Расскажите об этом пользователям. И не программируйте. Если уж очень свербит, то вытащите на форму выпадающий список с записанными пользоватем условиями. Научитесь копировать эти условия между пользователями. Создайте пяток предопределенных условий. |
|
03.11.2006, 22:55 | #15 |
Участник
|
Эх, таки не удержусь.
Извините. Дальше старческое ворчание: Типично программистский подход! Подход человека, который ни черта не думает о задаче и о пользователях... Подход человека, который ни черта не знает что именно надо его пользователям Вы хоть представляете, как выглядят на экране ПАРА ДЕСЯТКОВ галочек? Млять... Нарисуйте руками и попробуйте! После этого закройте форму и придумывайте другое решение. Ребяты, ну сколько можно? Что за тупой подход - автоматическое рисование десятков элементов? Пользователи никогда между собой не общаются на уровне "пары десятков" галочек. Вы слышали когда нибудь, чтобы ЧЕЛОВЕК говорил другому ЧЕЛОВЕКУ: возьми носки, трусы, майки, рубашки, галстуки, костюмы, ... ботинки, шапки... (пара десятков групп). Ведь люди общаются по-другому! http://www.artlebedev.ru/kovodstvo/98/ |
|
04.11.2006, 17:59 | #16 |
Administrator
|
Предлагаю рассмотреть вариант не с чекбоксами, а с двумя списками (типа Include/Exclude). Для примера можете взглянуть, например, на настройку виртуальных компаний (там, где вы настоящие компании добавляете/удаляете из виртуальной). Для реализации такого интерфейса есть API SysListPanel. За примером его использования можете сходить в ту же форму SysDataAreaVirtual (там он используется два раза: на вкладке Company accounts и Table collections.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
04.11.2006, 23:28 | #17 |
Участник
|
Цитата:
Только надо помнить, что такие списки удобны для небольшого количества элементов. Они сортируются только по коду, в этом списке отсутствует поиск по элементам и их реквизитам. По элементам списков нет автоотчетов и эти списки сложно печатать... |
|
05.11.2006, 23:59 | #18 |
Участник
|
|
|