Работая над своим проектом "Каталог радиолюбителя", столкнулся с проблемой. В справочниках базы все хорошо расфасовано, но пользоваться не очень удобно. Имея много всевозможных коробочек и ящичков для хранения элементной базы, трудно найти, где же все это находится. И вот пришла идея, представить справочник складов в графическом виде.
Представил иерархию справочника так как расставлены реально коробки на полках и в ящиках. Собрал все это в белее крупные группы, как это выглядит в пространстве, и вывел все это на экран в виде надписей и кнопочек. Сразу стала видна общая картина хранилища.
Кнопочкам прикрутил запросы по остаткам товара, и получилось так, как будто выдвигаешь коробочки и видишь остатки в каждой ячейке склада.
Во всей этой прелести есть недостаток - на экран много не поместится и графику отрисовывать все таки сложно на слабых компах. Поэтому в предлагаемой обработке установлены ограничители: 10 элементов в горизонтальной группировке (это те элементы, которые входят в группу элементов справочника) и не более 150 элементов на запрос. На скрине видно, что при сложной иерархии эта графика становится бессмысленной.
Есть еще ограничения. Если в коде элемента, а это основа чтобы найти концы в программируемой матрице, встречаются знаки типа пробел или "-", или вообще справочник построен без кода, то такие элементы пропускаются при построении.
В двух словах об алгоритме: названия групп справочника образуют вертикальные и горизонтальные программируемые группировки, а элементы справочника выводятся на экран в виде кнопок. Кнопкам привязано действие открывать форму списка справочника и позиционироваться в этом списке.
В моем проекте, //infostart.ru/public/97906/ , все заточено под склад, а каждый склад снабжен картинкой места хранения, поэтому можно, как вариант, просматривать справочник в виде иерархического набора картинок.