我有一个名为InvoiceShipments
的数据表。对于发票上附带的每种产品,它会继续排成一排。每个产品都属于一个产品类别,我可以查询和过滤。有些产品是带有Bill of Material
的优质产品,其中Bill of Materials
(BOM)是合并成品的零件清单。
在InvoiceShipments
表格中,已列出成品并列出价格但没有成本。然后是成品的组件(BOM),后者又有成本但没有价格。我有一个单独的表,列出了所有组件项目和成品。请注意,组件商品可以属于多个BOM。
我目前可以根据产品类别(从连接到不同的表)按我想要的产品过滤InvoiceShipments
。我想要做的就是获取完成的好数字,并获得构成该BOM的所有部分#的列表,然后返回InvoiceShipments并总结与这些组件匹配的所有行的成本#s和发票#。但是我没有长时间使用Crystal知道在查询级别做什么,如何处理命令表,如何处理公式等等。
图库中的顶部表是BOM表,第二个表是InvoiceShipments
,第三个表是期望的结果。
任何帮助都将不胜感激。
答案 0 :(得分:0)
根据我收集的内容,您希望合并发票编号,但使用完成的产品信息。我做了类似的事情,解决方案有点奇怪,但它的工作原理。您只需要InvoiceShipments表
为订单ID,SKU和ProductName
创建公式如果价格<> 0和成本= 0那么 Orider ID'< - 根据公式(SKU,ProductName)更改此值 其他 “”
插入 - >每个公式的摘要为最大值,并将其放在分组的发票行上。
这应该可以为您提供所需的结果。发生的事情是因为您的公式只打印成品信息,其他项目是空白的。因此,当您使用MAXIMUM时,将打印非空白项目。
希望这有帮助。
新解决方案
我没有像您的数据那样设置任何表格或视图,因此我无法测试此解决方案,但希望有足够的信息可以制定出一个好的解决方案
我注意到您无法使用InvoiceShipments中的材料来识别BillofMaterials中的成品。材料重演。我们必须使用成品来识别它们。
现在材料与发票编号相关联,我们可以尝试将INvoiceShipments的另一个副本链接到BOM。这很棘手。
在OrderID,SKU和ProductName列上创建一个在InvoiceShipments1和InvoiceShipments2之间切换的公式
IF ISNULL({InvoiceShipments1.OrderID})那么 {} InvoiceShipments2.OrderID 其他 {InvoiceShipments1.OrderID}
创建一个结合了InvoiceShipments2.invoice#和SKU(SKU公式版本)的公式
希望它有效!