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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.01.2004, 18:36   #1  
AndSoft is offline
AndSoft
Участник
 
135 / 12 (1) ++
Регистрация: 22.05.2003
Адрес: Москва
Thumbs up Многоуровневый справочник
Недавно я убил немного времени чтобы создать многоуровневый справочник в Аксапта. Причем решение работает на MsSQL2000 и не используется рекурсия.
В группе дерева отображаются как элементы самой группы так и элементы вложенной подветви.Что у меня получилось можно посмотреть на вложенном скрин шоте. Если что обращайтесь.
Изображения
 
Старый 20.01.2004, 19:03   #2  
ТРЕНЕР is offline
ТРЕНЕР
Участник
Аватар для ТРЕНЕР
 
599 / 50 (3) ++++
Регистрация: 11.06.2003
Адрес: Москва
А чем он лучше Абстрактного классификатора ? ( к тому же, находящегося в отличие от Вашего в свободном доступе на данном форуме, что дает возможность "пощупать", а не картинки смотреть)
Старый 20.01.2004, 19:43   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
присоединяюсь к предудыщему вопросу.
и добавлю еще один: чем это лучше товарного каталога в корпоративном портале?
Старый 21.01.2004, 13:18   #4  
AndSoft is offline
AndSoft
Участник
 
135 / 12 (1) ++
Регистрация: 22.05.2003
Адрес: Москва
Дайте мне пожалуйста линк на абстрактный классификатор.
И если он полезней моего, тоя я свой обязательно выложу для свободного использования. По-моему это логично.
Старый 21.01.2004, 17:57   #6  
AndSoft is offline
AndSoft
Участник
 
135 / 12 (1) ++
Регистрация: 22.05.2003
Адрес: Москва
У меня Axapta 3.0 SP1 и классификатор поставить не получилось.
Даже глобальную компиляцию делал.Все равно ошибки лезут.
Старый 21.01.2004, 18:10   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
обращайтесь к авторам, читайте описание.

если вы пытаетесь поставить абстрактный классфикатор только для того, чтобы решить надо ли выкладывать ваш многоуровневый справочник.... забейте и не выкладывайте, народ будет пользоваться классификатором или просто ставить фильтры как в CRM
Старый 22.01.2004, 09:00   #8  
AndSoft is offline
AndSoft
Участник
 
135 / 12 (1) ++
Регистрация: 22.05.2003
Адрес: Москва
Да нет свой я по -любому выложу попозже. А поставить хочется чтобы чему - то новому научится. Все таки задачка не совсем тривиальная.
Старый 27.01.2004, 08:31   #9  
Lazy_Tiger is offline
Lazy_Tiger
NavAx
Axapta Retail User
1C
NavAx Club
 
610 / 31 (3) +++
Регистрация: 17.12.2001
Адрес: Красноярск
кстати, а чего _нетривиального_ в этой задаче? Эт я к тому, что вообщем то НЕ будучи ГУРУ в аксаптовском программировании потратил на это дело 1 день. Причем не для номенклатуры, а в общем виде.

Потом выкинул, поскольку понял что никому кроме привыкших к 1С это нафиг не нужно.
__________________
И все они создания природы...
Старый 27.01.2004, 11:21   #10  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
То, что показано на картинке, действительно пишется за день.
Однако я бы не сказал, что это никому не нужно. Во многих внедренческих фирмах, что-то подобное написано, и на более продвинутом уровне.
Единствено, я не понял зачем надо было делать частное решение под MS SQL?
Старый 27.01.2004, 18:07   #11  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Вообще, прошу прощения за критику, но все эти решения, включая хваленый Абстрактный Классификатор, довольно слабые. Помимо чисто эстетических несовершенств (например, авторы не смогли нормально разместить код на классах, порой просто неряшливо писали код), предложенные решения страдают одним большим недостатком:

- авторы не смогли абстрагировать задачу и написать универсальную гибкую модификацию, не измененяя существующие формы системы (к примеру, InventTable, если речь идет о классификаторе номенклатуры), хотя, доказано, этого можно добиться. То же самое касается lookup'а. Результат: под каждую новую таблицу систему приходится дополнительно программировать. Плохо, плохо, плохо.

Цитата:
Во многих внедренческих фирмах, что-то подобное написано, и на более продвинутом уровне.
Да, как минимум в одной внедренческой фирме один ведущий программист, помнится, решил задачу грамотно.

Резюме: пользуйте коммерческие решения.
Старый 27.01.2004, 18:43   #12  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Цитата:
Изначально опубликовано EVGL
предложенные решения страдают одним большим недостатком:

- авторы не смогли абстрагировать задачу и написать универсальную гибкую модификацию, не измененяя существующие формы системы (к примеру, InventTable, если речь идет о классификаторе номенклатуры), хотя, доказано, этого можно добиться.
В этой связи вопрос, как можно грамотно реализовать работу древовидного классификатора, не перекрывая метод selectionChanged FormTreeControl?
И что подразумевается под неизменением существующих форм? Добавление контролов в runtime, если я правильно понял...
Старый 27.01.2004, 19:06   #13  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
В этой связи вопрос, как можно грамотно реализовать работу древовидного классификатора, не перекрывая метод selectionChanged FormTreeControl?
Отличный вопрос! Активизировав FormRun\controlMethodOverload или FormRun\controlMethodOverloadObject .

Цитата:
Добавление контролов в runtime, если я правильно понял...
Именно.
За это сообщение автора поблагодарили: Lucky13 (1).
Старый 28.01.2004, 15:06   #14  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Цитата:
Активизировав FormRun\controlMethodOverload или FormRun\controlMethodOverloadObject .
Спасибо за ответ! Мне на самом деле это интересно. Что-то об этом уже мелькало на форуме. http://www.axforum.info/forums/showt...p?threadid=801
Однако, на мой взгляд, это лишь позволит избежать модификаций дизайна формы, добавлять и править методы самой формы придется. С одной стороны - это конечно не мало, особенно при переходе на новый сервиспак, но с другой - для каждой новой таблицы программировать придется... Круто было бы, если можно вообще не модифицировать форму, включая методы!

p.s. В настоящий момент, перенос функциональности показа дерева, с шаблона для справочника номенклатуры, на новую таблицу займет у меня не более 15 минут. При переходе на новый сервиспак и того меньше. Стоит ли игра свеч?
Старый 28.01.2004, 16:29   #15  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
это лишь позволит избежать модификаций дизайна формы, добавлять и править методы самой формы придется
Не придется. Например, в случае с FormRun\controlMethodOverloadObject форме передается класс-перехватчик методов. Тем самым необходимости создавать методы на форме нет. Притом создаваемым "на лету" FormTreeControl можно придумать уникальное заковыристое имя. Тогда метод на перехватчике нужен только один: заковыристоеимяконтрола_selectionChanged().

Не проверял, работает ли другой прием: создавать методы на SysSetupFormRun, активизируя потом FormRun\controlMethodOverload.

Не столь сложно работать и с произвольным datasource. Единственное, что реализовать трудно, это обратную связь от источника данных: перемещение фокуса (выделенного элемента) по дереву синхронно с перемещением по datasource (т.е. с каждым вызовом datasource.active()). Но тут можно включить таймер c частотой ~100 мсек., который будет периодически проверять источник данных на предмет смены текущей записи. Пользователь и не заметит отличия.

Цитата:
В настоящий момент, перенос функциональности показа дерева, с шаблона для справочника номенклатуры, на новую таблицу займет у меня не более 15 минут. При переходе на новый сервиспак и того меньше. Стоит ли игра свеч?
Думаю, не всегда Но ведь профессия программиста в том и заключается, чтобы создавать себе проблемы, а потом решать их! Иначе не интересно.
Старый 19.02.2007, 15:05   #16  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от EVGL Посмотреть сообщение
Активизировав FormRun\controlMethodOverload или FormRun\controlMethodOverloadObject .
Мне очень понравилась Ваша идея и я сделал абстрактный классификатор, используя эту методику. Все работает отлично, единственное чего не получается сделать - просмотр к каким уровням классификатора пренадлежит выбранная запись т.к. для этого нужно вносить изменения в метод active формы, которая использует классификатор. Менять все формы где используется классификатор из-за одной функции не хочется, может есть такое же элегатное решение этой пробемы?
Старый 19.02.2007, 15:29   #17  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от Lucky13 Посмотреть сообщение
я сделал абстрактный классификатор, используя эту методику
Нам посмотреть можно?
Старый 19.02.2007, 15:36   #18  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Нам посмотреть можно?
Да, но пока еще не готово. Нужно как-то решить выше указанную проблему.
За это сообщение автора поблагодарили: kashperuk (4).
Старый 19.02.2007, 16:22   #19  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
кстати про controlMethodOverloadObject.

можно ли использовать более одного обхекта обработчика одновременно (у меня не получилось)
Старый 19.02.2007, 16:52   #20  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
Цитата:
Сообщение от belugin Посмотреть сообщение
кстати про controlMethodOverloadObject.

можно ли использовать более одного обхекта обработчика одновременно (у меня не получилось)
controlMethodOverloadObject это метод класса FormRun, поэтому у каждого его наследника может быть свой обработчик. Я делал у нескольких форм разные обработчики. Что касается моего классификатора, то если у формы уже был обработчик controlMethodOverloadObject, а я заменяю его своим, то естейственно первый обработчик действовать не будет. Я не нашел в Аксапте форм, которые используют controlMethodOverloadObject, поэтому это не существенно.
Теги
дерево, классификация, номенклатура, управление запасами, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Справочник банков twilight DAX: Функционал 17 16.12.2013 11:43
Нужен справочник ОКОФ для ОС Lyuberetskaya DAX: Функционал 12 30.03.2011 15:01
Что такое "Справочник"? Macross DAX: Функционал 6 05.02.2008 11:09
Насущное - справочник номенклатуры. Операторы делают массу ошибок. Что делать? zzerf DAX: Функционал 24 13.12.2007 11:18
Справочник цехов tolstjak DAX: Функционал 9 05.03.2003 11:37

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

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

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