22.01.2008, 12:03 | #1 |
Участник
|
Можно ли динамически добавлять поля в грид?
Пытаюсь сделать так:
void clicked() { FormStringControl fscl; ; super(); fscl = Grid.addControl(FormControlType::String, "ItemGroupId"); fscl.dataSource(InventTable_ds); fscl.dataField(fieldnum(InventTable, ItemGroupId)); InventTable_ds.executeQuery(); } Колонка появилась но данных нет. |
|
22.01.2008, 12:09 | #2 |
Участник
|
Попробуйте addDataField вместо addControl
|
|
22.01.2008, 12:47 | #3 |
MCITP
|
И скорее всего это нужно делать не по клику на кнопку, а в init-е формы
|
|
22.01.2008, 12:50 | #4 |
Участник
|
Может ограничиться созданием нескольких гридов и показом их по мере нужды?
|
|
22.01.2008, 13:12 | #5 |
Участник
|
|
|
22.01.2008, 13:27 | #6 |
Administrator
|
Добавление поля в грид - операция более трудоемкая (для системы), нежели скрытие/показ поля.
Если Вы хотите именно добавить поле - то посмотрите форму и класс SysTableBrowser (обозреватель таблиц) - там происходит именно добавление полей (так как Вам надо) Однако, я бы рекомендовал не делать таблицу а-ля Excel. Сделать-то Вы сделаете. Только в следующий раз пользователи могут захотеть большего - а технически может случиться облом. Поэтому - можно просто добавить 2 поля: Значение аналитики и Название дилера. И сделать комбобоксы-фильтры, чтобы можно было посмотреть остатки в разрезе дилеров/аналитик. При этом будет работать стандартный фильтр по Ctrl+F3
__________________
Возможно сделать все. Вопрос времени |
|
22.01.2008, 14:03 | #7 |
Участник
|
Дело в том что дилеров больше 200 и на грид их всех добавлять само по себе трудоёмко а тем более если меняется их наличие то каждый раз прийдётся дёргать форму разработчику а это не есть хорошо :-)
|
|
22.01.2008, 15:18 | #8 |
Участник
|
Цитата:
А для пользователей предлагаемый вами вариант не тудоемок? |
|
22.01.2008, 15:22 | #9 |
Участник
|
|
|
22.01.2008, 15:49 | #10 |
Участник
|
Поставить до 200 галочек? Просто?!
|
|
22.01.2008, 17:52 | #11 |
Участник
|
Почему сразу 200? Обычно нужно до 20. Хотя 200 тоже можно (Специальной кнопкой отметить все и убрать ненужные)
Последний раз редактировалось Beast-L; 22.01.2008 в 17:57. |
|
22.01.2008, 19:03 | #12 |
Участник
|
Потому что вы сами об этом сказали
Цитата:
Хорошо, вы уже осознали, что только галочками вы не обойдетесь - придется писать дополнительные функции для установки и снятия всех галочек. Вопрос о том, как установить 100 из 200 галочек я пропускаю. Думаю, что рано или позно вы додумаетесь до функционала сохранения галочек. А затем до функционала копирования галочек между пользователями. А затем до разбора ошибочных галочек в случае добаления/удаления дилера. А затем... В общем, выбирая путь динамического формирования отчета вы неизбежно встаете на путь непрерывной борьбы с программисткими задачами, абсолютно далекими от реальных потребностей пользователя. ================ Пойдем дальше? Предположим что вы в начале пути и сделали замечательный функционал для отметки всех 200 дилеров. Ваш замечательный функционал создал грид с 200 колонками. И что теперь делать пользователю? Он сможет с ним работать? Он сможет его распечатать? Вы действительно считаете, что грид с 200 колонками удобен для пользователя? Например, лично вам удобно работать с Обозревателем таблиц, где используется динамическое добавление колонок? Почему? Что бы вы улучшили? ================ Обратите внимание на эти ВАШИ слова. Именно в них кроется решение задачи. Вам осталось только вникнуть в потребности пользователей и выяснить почему именно столько и что это за обычные условия? Затем сделать именно то, что нужно пользователям, а не программисткие "универсальные галочки" или "динамическое добавление колонки в грид". |
|
23.01.2008, 17:13 | #13 |
Участник
|
Трудоёмко 200 (дилеров всего до 200) имелось ввиду если добавить их при создании формы, а потом скрывать ненужные. Менеджеры по закупкам одновременно работают только максимум с двадцатью но желательно иметь возможность работать и с большым количеством.
Хотят приблизительно так: |
|
23.01.2008, 17:28 | #14 |
Участник
|
Цитата:
А зачем добавлять 200 дилеров при создании, если нужно только 20? А большее количество - это сколько? меньше 200? меньше 100? меньше 50? меньше 25? |
|
23.01.2008, 17:34 | #15 |
Участник
|
со всеми дилерами никто не работает
до 20 использует один менеджер закупок другие до 20 использует второй менеджер закупок и т.д. а большее - больше 20 (желательно произвольное колличество выбранных для работы из всех возможных) Последний раз редактировалось Beast-L; 23.01.2008 в 17:38. |
|
23.01.2008, 17:40 | #16 |
Участник
|
почему просто не вывести все в эксель?
|
|
23.01.2008, 17:48 | #17 |
Участник
|
Цитата:
Я тормоз? Чувствую что чего-то не понимаю. Цитата:
Вы сами пробовали работать с произвольным количеством? Пробовали печатать отчет, содержащий хотя бы 50 колонок? Ведь Аксапта масштабирует такие отчеты до микротекста... Ну, не может быть произвольного количества. По причинам физического ограничения зрения пользователей. Ну, попробуйте же сами. Зачем над пользователями то издеваться? Из ФИЗИЧЕСКОГО ограничения неизбежно следует, что существует некоторое максимальное число колонок, когда пользователь еще может удобно и нормально работать. Опыт подсказывает, что это очень небольшое число колонок - 10-20, максимум 30. А это значит, что вы как программист должны предусмотреть специальные случаи отображения большего числа колонок. Или переделать интерфейс так, чтобы и при большом числе данных было удобно с ними работать. Еще раз повторю свою мысль и закончу свое участие в этой ветке, пожалуй.
|
|
23.01.2008, 17:50 | #18 |
Участник
|
|
|
23.01.2008, 18:08 | #19 |
Участник
|
В эксель не прокатывает так как колонку "к отгрузке" заполнять должен сам пользователь.
Пользователи сейчас работают как раз с простынёй и хотят чтобы этой кучи колонок не было а были только нужные на данный момент. Сколько они выберут ? А если им захочеться больше? Или что ещё хуже действительно нужно будет. Например сделаю 20 им понадобиться 21. Может и не часто нужно будет но помоему раза достаточно. Кроме того даже просто с точки зрения спортивного интереса хочеться знать можно ли такое сделать. Лично мне было бы удобно работать с двумя гридами, но так они не хотят. Последний раз редактировалось Beast-L; 23.01.2008 в 18:14. |
|
23.01.2008, 18:15 | #20 |
Участник
|
X++: ... "к отгрузке" ... это видимо: сформировать портянку, расставить значения, по кнопке ОК сформировать заказы Последний раз редактировалось ice; 23.01.2008 в 18:17. |
|