![]() |
|
||||||||||
|
|||||
|
Допустим, есть два раздела ‘Доски’ и ‘Гвозди’. Есть одна организация, которая производит доски и гвозди.
И сам вопрос, как эту организацию поместить в два раздела автоматом? Само собой в одном из разделов эта организация будет прописана, а другие разделы, относящиеся к этой организации должны автоматом ее прописать. <node> <node label="Доски"> <node label="организация" meta="доски, гвозди" url=""/> </node> <node label="Гвозди"> <node label=""/> <!-- здесь должна быть таже организация что и в разделе 'Доски'--></node> </node> Может это просто не реально сделать… В примере только компонент Tree дергающий xml. |
|
|||||
|
либо тупо делать копии узлов в нужные категории,
либо создавать что-то типа индексации (либо в разных документах либо в одном) <node> <company> <node id="1" label="организация" meta="доски, гвозди" url=""/> <node id="2" label="организация" meta="доски" url=""/> <node id="3" label="организация" meta="колбаса" url=""/> </company> <category> <node label="Доски"> <node cid="1"/> <node cid="2"/> </node> <node label="Колбаса"> <node cid="3"/> </node> <node label="Гвозди"> <node cid="1"/> </node> </category> </node> Последний раз редактировалось Mnilionic; 07.01.2009 в 15:46. |
|
|||||
|
Цитата:
![]() Цитата:
Последний раз редактировалось KiL33; 07.01.2009 в 15:58. |
|
|||||
|
Это как минимум не рационально.)
Видите ли, организаций более 5тс. и думается, что их будет только больше и больше, и создавать лишние xml совсем не желательно и уж тем более вручную вбивать организации в разделы. Не совсем понятен пример от Mnilionic в принципе приходится так же вбивать организации только теперь по id)) |
|
|||||
|
listener
|
Что можно попробовать:
иметь один хмл, где просто описан линейно список организаций с аттрибутом meta = "гвозди" ну или "доски" либо и то и другое. при клике на ноду "доски" нужно пробегать весь этот список, ища ноды в нем, у которых в мета есть "доски" и делать addChildNode этого узла к узлу "доски" в tree.dataProvider. это и будет сборка "на лету". чтобы каждый раз не пробегаться по всему списку, можно придумать, точнее продумать, систему индексации записей этого списка, и искать не в списке, а в индексах. Но в этом случае придется изменить механизм добавления организаций в список, т.е. нужно при добавлении в список менять и индексную информацию. Однако, и в простом случае без индексации вы все равно вынуждены вписывать руками, что организация делает то-то и то-то. Это можно трактовать как тривиальный случай индексации. Индексную информацию можно хранить либо в том же файле, вместе со списком, либо в отдельном файле (файлах). PS. А что, заюзать обычную sql-базу невозможно? Последний раз редактировалось alexcon314; 08.01.2009 в 13:19. |
|
|||||
|
Цитата:
Я вам предложил, почти то что подробно расписал alexcon314: * линейный список компаний * линейный список категорий * в категориях индексный список по id компаний удовлетворяющих категории. Изначально в tree показываете список категорий. при выборе категорий получаем её индексы и хватаем по id необходимые компании. Так как во флеш нету getElementById(), то выкручиваемся так: При загрузки пробегаемся по всему списку компаний и создаём ассациативный массив с id компании, в качестве ключей, и ссылкой ну узел, в качестве значения. Ну и помимо добавления новый коспании нужно будет добавлять её индекс в необходимые категории ,за неимением базы и админки, в ручную =). но всё же посмотрите в сторону человекской sql базы! Последний раз редактировалось Mnilionic; 08.01.2009 в 14:52. |
|
|||||
|
Нет ну конечно в большей степени не рационально использовать в моем случае xml, но а какими еще средствами локально я могу получить данные. Если локально использовать sql, видимо нужно будет устанавливать дополнительных клиентов для обработки данных. А это лишние мегабайты. Если я в чем-то не прав поправьте.
Может быть попробовать заюзать Access Database, но с этим так я вообще дел никаких не имел. P.S. В проектике использую Zinc, может быть, используя его возможности можно что-нибудь выдумать)) P.P.S. Автоматизации никакой, может и не браться за это дело, с другой стороны если ради опыта, то почему бы и нет.) |
|
|||||
|
listener
|
Класс mdm.Database.MSAccess. Для работы вам потребуется только файл самой базы .mdb, ничего дополнительно устанавливать не надо, насколько мне известно. Для вашей задачи нужно составить sql-запрос типа
mdm.Database.MSAccess.select("SELECT * FROM myTable WHERE meta='гвозди'");
var dataSet:Array = mdm.Database.MSAccess.getData();
Ну или развивайте интеллект, юзая xml. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|