Лучшая структура данных для списка деталей со сборками, сборочными узлами и т.п. в VBA? - PullRequest
0 голосов
/ 20 июня 2010

Я работаю над проектом, который по сути является взломом поверх взлома на листе Excel, и, к сожалению, у нас нет времени на перефакторинг, но основной код просто недостаточно быстр.

У нас есть узлы, которые состоят из узлов и деталей. Таким образом, сборка - это суперструктура, а деталь - наименьшая структура.

У нас есть BoM, ведомость материалов, которую мы помещаем в Excel различными способами (вручную, импорт, анализ ... и т. Д.), И это помещается в древовидную структуру, а не в кучу, дерево.

Моя проблема в том, что детали не должны быть в каком-то определенном порядке, их нужно искать, но я не вижу никакого преимущества в том, чтобы иметь это в виде дерева.

Я думал, что лучшей структурой будет Связанный список в Связанном списке внутри Лин ... и так далее.

Кто-нибудь может предложить лучший подход?

РЕДАКТИРОВАТЬ ДЛЯ БОЛЬШЕ ДЕТАЛЕЙ: Сборки имеют несколько свойств, таких как масса, cg, инерция и т. Д., Они являются объектами, которые должны указывать на несколько других частей объектов, которые имеют те же свойства, что и сборки, и другие. Сборки также могут содержать другие сборки.

Ответы [ 3 ]

1 голос
/ 21 июня 2010

Можно настроить серию зависимых списков, например, выбрать элемент «виджет» в List1, а список List2 заполнен всеми элементами, которые относятся к элементу «виджет», и так далее. Ищите «Условные списки» и, возможно, «динамические имена» в одной из основных групп Excel для примеров. Обычно они используются с серией DropDowns. Проблема в том, что в зависимости от размеров списков и количества филиалов вы можете быстро получить что-то очень сложное в управлении. Альтернативный подход - относительно простая база данных. Один список частей с описанием и номером, каждая из которых имеет одну или несколько категорий, может указывать на «родительскую» часть. Затем вы можете фильтровать по категориям. Не уверен, что общая цель помимо просто «поиск». Excel делает это довольно быстро, даже с большими несортированными списками.

1 голос
/ 21 июня 2010

Можно использовать ADO с Excel. Таблица может быть целым листом, диапазоном или именованным диапазоном. У вас есть мощное ядро ​​Jet, поэтому вы можете выполнить любой запрос, поддерживаемый этим движком, включая использование JOINS и подзапросов.

1 голос
/ 20 июня 2010

Я бы лично попробовал хеш-таблицы.Я не программист VBA, но, судя по некоторым поискам в Google, есть способы использовать Collection или Dictionary, чтобы взломать что-то вместе.Для чего это стоит, я получил информацию от здесь .

-Бретт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...