【问题标题】:Best Data Structure for list of parts with assemblies, sub-assemblies, and such in VBA?VBA中带有装配体、子装配体等的零件列表的最佳数据结构?
【发布时间】:2011-03-05 21:25:26
【问题描述】:

我正在开展一个项目,该项目基本上是在 excel 表上的 hack 之上的 hack,不幸的是我们没有时间重新分解,但核心代码根本不够快。

我们有由子组件和零件组成的组件。所以装配是上层结构,零件是最小结构。

我们有一个 BoM,即材料清单,我们通过各种方法(手动、导入、解析...等)将其放入 Excel 中,并将其放入树结构中,而不是堆或树。

我的问题是,这些部分不需要按任何特定顺序排列,它们确实需要被搜索,但我认为将它作为树没有任何优势。

我认为一个更好的结构应该是一个 Linked List inside a Linked List within a Lin... 以此类推。

谁能提出更好的方法?

编辑更多细节: 装配体有几个属性,如质量、cg、惯性等,它们是应该指向其他几个对象部件的对象,这些部件具有与装配体相同的属性等等。程序集还可以包含其他程序集。

【问题讨论】:

    标签: vba data-structures excel


    【解决方案1】:

    可以设置一系列依赖列表,例如在 List1 中选择项目“widget”,List2 填充与项目“widget”相关的所有项目,等等。在主要 Excel 组之一中搜索“条件列表”和可能的“动态名称”以获取示例。通常,这些与一系列 DropDown 一起使用。问题是,根据各自的列表大小和分支数量,您可能很快就会遇到非常难以管理的事情。另一种方法是相对简单的数据库。带有描述和编号的单个零件列表,每个零件都有一个或多个类别,一个类别可以指向一个“父”零件。然后,您可以过滤类别。 除了“搜索”之外,不确定总体目标是什么。 Excel 本身的速度非常快,即使对于大型未排序列表也是如此。

    【讨论】:

    • 本质上它是用于计算整个装配体的质量属性,但这个项目的变化非常迅速,因此您需要能够一次取出零件或整个装配体......这意味着它们已从质量计算中删除。所以我需要一个布尔值说“是的,使用这个”或“不,不要添加这个”......实际的计算真的很难解释......我明天早上将尝试这个条件列表的想法,让你们知道它是如何工作的。感谢您的帮助。
    • 实际上,现在我想起来了,我可以将其中的很多内容作为 SQL 数据库来实现……不过我不完全确定这会有多快。
    【解决方案2】:

    可以在 Excel 中使用 ADO。表格可以是整个工作表、范围或命名范围。您拥有 Jet 引擎的强大功能,因此您可以运行引擎支持的任何查询,包括使用 JOINS 和子查询。

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      • 2021-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多