Мастер класс ;-) Классификаторы на XML
- Александр
- Активный участник
- Сообщения: 1652
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Мастер класс ;-) Классификаторы на XML
специально для СК
задача - заполнить 7 выпадающих списков данными в зависимости от текущего значения того или иного выпадающего списка (из этих 7ми) т.е. из Классификатора
и в зависимости от выбранных значений получить описание позиции
вот картинка 1. Штатный Классификатор на объектах
минусы
- очень тормозной
- можно использовать только одно значение для одной позиции - а мне нужно для каждой позиции 3 минимум
2. Сделал классификатор на объектах
минусы
- очень тормозной ПРИЧЕМ - мы сделали view для скорости - еще что-то - но никак 8 сек на 200 позиций хоть убейся!
плюсы
- можно использовать несколько значений для одной позиции
вот типа этого атрибутов здесь не видно - но они есть
в атрибуты входит
1. Англоязычное наименование позиции
2. Русскоязычное наименование позиции
3. Код позиции
отступление
у меня работа с классификатором проходит в 2 этапа
1й заполняю выпадающие списки и в зависимости от из текущих значений получаю код комбинации
например в таком виде - T00-15F3-11-00L2-14-15-00
2й в соответствии с кодом вытаскиваю из ini файла расшифровку позиции
например так
T00-15F3-11-00L2-14-15-00='&FromProdName -> &ProdName Upgrade, &LangR, сетевой, доп. лицензия &PNote'
вот теперь приступим
3й вариант классификатора на XML
минусы
- голову сломаешь пока поймешь что-же нужно там расположить... ну это везде так
плюсы
- 'высокая' скорость (2 сек на 200 позиций) (конечно зависит от объема инфы - но по любому быстрее чем в Лоции)
- можно использовать несколько значений для одной позиции
... продолжение следует
задача - заполнить 7 выпадающих списков данными в зависимости от текущего значения того или иного выпадающего списка (из этих 7ми) т.е. из Классификатора
и в зависимости от выбранных значений получить описание позиции
вот картинка 1. Штатный Классификатор на объектах
минусы
- очень тормозной
- можно использовать только одно значение для одной позиции - а мне нужно для каждой позиции 3 минимум
2. Сделал классификатор на объектах
минусы
- очень тормозной ПРИЧЕМ - мы сделали view для скорости - еще что-то - но никак 8 сек на 200 позиций хоть убейся!
плюсы
- можно использовать несколько значений для одной позиции
вот типа этого атрибутов здесь не видно - но они есть
в атрибуты входит
1. Англоязычное наименование позиции
2. Русскоязычное наименование позиции
3. Код позиции
отступление
у меня работа с классификатором проходит в 2 этапа
1й заполняю выпадающие списки и в зависимости от из текущих значений получаю код комбинации
например в таком виде - T00-15F3-11-00L2-14-15-00
2й в соответствии с кодом вытаскиваю из ini файла расшифровку позиции
например так
T00-15F3-11-00L2-14-15-00='&FromProdName -> &ProdName Upgrade, &LangR, сетевой, доп. лицензия &PNote'
вот теперь приступим
3й вариант классификатора на XML
минусы
- голову сломаешь пока поймешь что-же нужно там расположить... ну это везде так
плюсы
- 'высокая' скорость (2 сек на 200 позиций) (конечно зависит от объема инфы - но по любому быстрее чем в Лоции)
- можно использовать несколько значений для одной позиции
... продолжение следует
Последний раз редактировалось Александр 22 янв 2009, 10:37, всего редактировалось 4 раза.
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Александр
- Активный участник
- Сообщения: 1652
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Мастер класс ;-) Классификаторы на XML
формат XML довольно простой если не лезть слишком глубоко
т.е. узлы (=объекты) и атрибуты
в моем случае это выглядит так
или еще вот кусочек оттуда
т.е. мы видим дерево (узел+3атрибута) - максимальная вложенность 7 уровней
по уровню на каждый список
XML - это простой текстовый файл с разметкой
в итоге мы можем делать поиск узлов, читать дочерние узлы, читать атрибуты, вобщем читать все что угодно и что немаловажно с помощью Лоции
этот файл узлы с атрибутами закрывает первую часть моей задачи - заполнение списков и получение кода комбинации
продолжение следует...
т.е. узлы (=объекты) и атрибуты
в моем случае это выглядит так
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?>
<TemplateList>
<Template eName="Autodesk" rName="Autodesk" Code="00">
<ChannelType eName="Commercial" rName="Коммерческий" Code="15">
<ProductType eName="New" rName="Новый" Code="15">
<ProductExtType eName="" rName="" Code="00">
<LicenceType eName="..." rName="Без учета лицензии" Code="00">
<LicenceExtType eName="" rName="" Code="00">
<LicenceAddType eName="" rName="" Code="00"/>
</LicenceExtType>
</LicenceType>
<LicenceType eName="Single License Manager (SLM)" rName="Локальная лицензия" Code="14">
<LicenceExtType eName="" rName="" Code="00">
<LicenceAddType eName="" rName="" Code="00"/>
</LicenceExtType>
...
Код: Выделить всё
<ProductExtType eName="Подписка на квартальное обновление" rName="Подписка на квартальное обновление" Code="15">
<LicenceType eName="Single License Manager (SLM)" rName="Локальная лицензия" Code="14">
<LicenceExtType eName="..." rName="Чистая локальная лицензия" Code="00">
<LicenceAddType eName="" rName="" Code="00"/>
</LicenceExtType>
</LicenceType>
<LicenceType eName="Network License Manager (NLM)" rName="Сетевая лицензия" Code="15">
<LicenceExtType eName="1-5 seats" rName="1-5 рабочих мест" Code="03">
<LicenceAddType eName="" rName="" Code="00"/>
</LicenceExtType>
<LicenceExtType eName="6-20 seats" rName="6-20 рабочих мест" Code="04">
<LicenceAddType eName="" rName="" Code="00"/>
</LicenceExtType>
<LicenceExtType eName="21-50 seats" rName="21-50 рабочих мест" Code="05">
<LicenceAddType eName="" rName="" Code="00"/>
</LicenceExtType>
по уровню на каждый список
XML - это простой текстовый файл с разметкой
в итоге мы можем делать поиск узлов, читать дочерние узлы, читать атрибуты, вобщем читать все что угодно и что немаловажно с помощью Лоции
этот файл узлы с атрибутами закрывает первую часть моей задачи - заполнение списков и получение кода комбинации
продолжение следует...
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Александр
- Активный участник
- Сообщения: 1652
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Мастер класс ;-) Классификаторы на XML
вторая часть - по уникальному коду получить расшифровку позиции
если раньше мы использовали формат ini файла, то с переходом на xml было ужасно лень писать его обработку в скриптах...
и мы недолго думая заменили формат ini на xml
типа вот так
ini файл
xml файл
тут xml другого формата - без атрибутов - поскольку они не нужны
т.е. в xml можно использовать любые комбинации структур данных какие надо
продолжение следует...
если раньше мы использовали формат ini файла, то с переходом на xml было ужасно лень писать его обработку в скриптах...
и мы недолго думая заменили формат ini на xml
типа вот так
ini файл
Код: Выделить всё
[T0] ;Шаблон Autodesk
; ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Шаблон Autodesk
; *** Commercial Шаблон Autodesk
; New
T00-15F1-15-00L1-14-00-00='&ProdName коммерческий, &LangR, локальный &PNote'
--T00-15F1-15-00L2-14-14-00='&ProdName коммерческий, &LangR, локальный,доп.лицензия &PNote'
T00-15F1-15-00L1-15-00-00='&ProdName коммерческий, &LangR, сетевой &PNote'
--T00-15F1-15-00L2-15-15-00='&ProdName коммерческий, &LangR, сетевой, доп.лицензия &PNote'
T00-15F1-15-00L1-00-00-00='&ProdName коммерческий, &LangR &PNote'
; Trial (Demo)
T00-15F1-12-00L0-00-00-00='&ProdName &LangR Trial(Demo) &PNote'
; Upgrade
T00-15F3-11-00L1-00-00-00='&FromProdName -> &ProdName Upgrade, &LangR &PNote'
T00-15F3-11-00L1-14-00-00='&FromProdName -> &ProdName Upgrade, &LangR, локальный &PNote'
--T00-15F3-11-00L2-15-15-00='&FromProdName -> &ProdName Upgrade, &LangR, локальный, доп.лицензия &PNote'
T00-15F3-11-00L1-15-00-00='&FromProdName -> &ProdName Upgrade, &LangR, сетевой &PNote'
--T00-15F3-11-00L2-14-15-00='&FromProdName -> &ProdName Upgrade, &LangR, сетевой, доп. лицензия &PNote'
T00-15F3-11-13L1-00-00-00='&FromProdName -> &ProdName Competiteve Upgrade &PNote'
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?>
<!-- -->
<!-- XML Source File Created with SAPIEN Technologies PrimalScript 2007 -->
<!-- -->
<!-- NAME: -->
<!-- -->
<!-- AUTHOR: Alexandr Zaytsev -->
<!-- DATE : 20.01.2009 -->
<!-- -->
<!-- COMMENT: -->
<!-- Формирование названий ПО по шаблонам -->
<!-- -->
<!-- ProdName- New полное название из прайса поставщика -->
<!-- ProdN- New сокращенное название из прайса поставщика -->
<!-- FromProdName- Upgrade/Exchange полное название из прайса поставщика -->
<!-- LangR- язык (русская транскрипция) -->
<!-- LangE- язык (английская транскрипция) -->
<!-- Box- тип упаковки -->
<!-- PNote- дополнительное описание позиции -->
<!-- CompanyName- полное наименование компании разработчика -->
<!-- LicExt- дополнительный тип лицензии-->
<!-- -->
<!-- Autodesk Commercial -->
<!-- New -->
<TemplateList>
<channel>
<item>
<title>T00-15F1-15-00L1-14-00-00</title>
<description>ProdName коммерческий, LangR, локальный PNote</description>
</item>
<item>
<title>T00-15F1-15-00L2-14-14-00</title>
<description>ProdName коммерческий, LangR, локальный,доп.лицензия PNote</description>
</item>
<item>
<title>T00-15F1-15-00L1-15-00-00</title>
<description>ProdName коммерческий, LangR, сетевой PNote</description>
</item>
<item>
<title>T00-15F1-15-00L2-15-15-00</title>
<description>ProdName коммерческий, LangR, сетевой, доп.лицензия PNote</description>
</item>
<item>
<title>T00-15F1-15-00L1-00-00-00</title>
<description>ProdName коммерческий, LangR PNote</description>
</item>
<!-- Trial -->
<item>
<title>T00-15F1-12-00L0-00-00-00</title>
<description>ProdName LangR Trial(Demo) PNote</description>
</item>
<!-- Upgrade -->
<item>
<title>T00-15F3-11-00L1-00-00-00</title>
<description>FromProdName -> ProdName Upgrade, LangR PNote</description>
</item>
<item>
<title>T00-15F3-11-00L1-14-00-00</title>
<description>FromProdName -> ProdName Upgrade, LangR, локальный PNote</description>
</item>
<item>
<title>T00-15F3-11-00L2-15-15-00</title>
<description>FromProdName -> ProdName Upgrade, LangR, локальный, доп.лицензия PNote</description>
</item>
т.е. в xml можно использовать любые комбинации структур данных какие надо
продолжение следует...
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Старик Крупский
- Активный участник
- Сообщения: 803
- Зарегистрирован: 27 июл 2006, 22:17
- Откуда: Москва
Re: Мастер класс ;-) Классификаторы на XML
Всё! Понял! Ты просто используешь XML как хранилище классификатора. А я-то подумал, что ты объектный классификатор каждый раз выгружаешь в XML, потом обратно считываешь из XML и все получается быстро )
"Лучше меньше, да лучше" (C)
- Александр
- Активный участник
- Сообщения: 1652
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Мастер класс ;-) Классификаторы на XML
да именно так как ВНЕШНЕЕ альтернативное хранилище
борюсь за каждую секунду - здесь выиграл аж целых 6 на каждую операцию
работает быстрее - однозначно
кроме того нам например нужен КЛАДР классификатор адресов России
если сделать его аналог в Лоции то мы умрем на 2000 тысячах комбинаций республика-область-город
между тем на xml такие классификаторы используются в web - odnoklassniki к примеру, и на других сайтах для локализации юзера и работаю в Реальном Времени!!!! и есть бесплатно! это однозначный прорыв в скорости (я имею в виду скорость привязанную к структуре данных Лоции - с проверками на права)
код к мастер классу показать? или и так все ясно?
борюсь за каждую секунду - здесь выиграл аж целых 6 на каждую операцию
работает быстрее - однозначно
кроме того нам например нужен КЛАДР классификатор адресов России
если сделать его аналог в Лоции то мы умрем на 2000 тысячах комбинаций республика-область-город
между тем на xml такие классификаторы используются в web - odnoklassniki к примеру, и на других сайтах для локализации юзера и работаю в Реальном Времени!!!! и есть бесплатно! это однозначный прорыв в скорости (я имею в виду скорость привязанную к структуре данных Лоции - с проверками на права)
код к мастер классу показать? или и так все ясно?
Последний раз редактировалось Александр 22 янв 2009, 11:04, всего редактировалось 1 раз.
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
Re: Мастер класс ;-) Классификаторы на XML
Идея с XML очень интересная. Идея 5 баллов
Но как я понимаю этот XML файл хранится у каждого пользователя на компьютере или вы расшарили этот файл в сети?
Ведь вроде хранить этот файл в БД не получится?
Но как я понимаю этот XML файл хранится у каждого пользователя на компьютере или вы расшарили этот файл в сети?
Ведь вроде хранить этот файл в БД не получится?
- Александр
- Активный участник
- Сообщения: 1652
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Мастер класс ;-) Классификаторы на XML
да у нас 2 варианта на случай сбоев
в обновлении Лоции на сети есть своя папка с шаблонами и прочими нашими файлами, вместе с этими
там же есть есть ini в котором прописано откуда брать файлы - из сети или из клиента
при очередном обновлении все копируется на клиентские места
и в зависимости от стабильности работы сети - я или юзер сам может изменить путь
в общем при отладке - берем из сети
потом переключаемся на локальные пути
хранить xml можно и в базе, у SQL2005 есть такой тип данных, но у Лоции вроде как не прописан
так что пока как внешние файлы
в обновлении Лоции на сети есть своя папка с шаблонами и прочими нашими файлами, вместе с этими
там же есть есть ini в котором прописано откуда брать файлы - из сети или из клиента
при очередном обновлении все копируется на клиентские места
и в зависимости от стабильности работы сети - я или юзер сам может изменить путь
в общем при отладке - берем из сети
потом переключаемся на локальные пути
хранить xml можно и в базе, у SQL2005 есть такой тип данных, но у Лоции вроде как не прописан
так что пока как внешние файлы
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
Re: Мастер класс ;-) Классификаторы на XML
Будем ждать, может пропишут
- Alexey
- Активный участник
- Сообщения: 123
- Зарегистрирован: 21 окт 2005, 15:49
- Откуда: Белоруссия, Минск
- Контактная информация:
Re: Мастер класс ;-) Классификаторы на XML
Александр, как всегда на высоте!!! Вот сижу и завидую... так как наши Заказчики работают не с самой последней версией лоции, а точнее 4.12 да и еще и сборочка... жутики... а ведь такие решения тоже упростили бы и им и нам жизнь.
Так что Саша, еще раз +100.
Так что Саша, еще раз +100.
- А деньги?
- Какие деньги? - сказал Остап, открывая дверь. - Вы, кажется, спросили про какие-то деньги?
----------------------------------
SEO стало интересным
- Какие деньги? - сказал Остап, открывая дверь. - Вы, кажется, спросили про какие-то деньги?
----------------------------------
SEO стало интересным
- Александр
- Активный участник
- Сообщения: 1652
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: Мастер класс ;-) Классификаторы на XML
ты хоть скажи +100 в какой валюте?
буду виртуально копить
ps
кстати на счет версии - можно и заработать на апгрейде - не так ли?
аргументы есть убойные!
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Alexey
- Активный участник
- Сообщения: 123
- Зарегистрирован: 21 окт 2005, 15:49
- Откуда: Белоруссия, Минск
- Контактная информация:
Re: Мастер класс ;-) Классификаторы на XML
офтоп: +100 в граммах ))) Копи, копи... мот накопишь. А что касается апгрейда... то уже миллион раз уговаривали.. но никак... но попыток не оставляем... чтобы апгрейдик все же сделать...
- А деньги?
- Какие деньги? - сказал Остап, открывая дверь. - Вы, кажется, спросили про какие-то деньги?
----------------------------------
SEO стало интересным
- Какие деньги? - сказал Остап, открывая дверь. - Вы, кажется, спросили про какие-то деньги?
----------------------------------
SEO стало интересным