Crystal Report XI - 有条件的总和问题

时间:2012-09-26 14:44:57

标签: sql crystal-reports report

我有一个名为InvoiceShipments的数据表。对于发票上附带的每种产品,它会继续排成一排。每个产品都属于一个产品类别,我可以查询和过滤。有些产品是带有Bill of Material的优质产品,其中Bill of Materials(BOM)是合并成品的零件清单。

InvoiceShipments表格中,已列出成品并列出价格但没有成本。然后是成品的组件(BOM),后者又有成本但没有价格。我有一个单独的表,列出了所有组件项目和成品。请注意,组件商品可以属于多个BOM。

我目前可以根据产品类别(从连接到不同的表)按我想要的产品过滤InvoiceShipments。我想要做的就是获取完成的好数字,并获得构成该BOM的所有部分#的列表,然后返回InvoiceShipments并总结与这些组件匹配的所有行的成本#s和发票#。但是我没有长时间使用Crystal知道在查询级别做什么,如何处理命令表,如何处理公式等等。

Sample Screenshots:

图库中的顶部表是BOM表,第二个表是InvoiceShipments,第三个表是期望的结果。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

根据我收集的内容,您希望合并发票编号,但使用完成的产品信息。我做了类似的事情,解决方案有点奇怪,但它的工作原理。您只需要InvoiceShipments表

  1. 按发票编号分组
  2. 为订单I​​D,SKU和ProductName

    创建公式

    如果价格<> 0和成本= 0那么    Orider ID'< - 根据公式(SKU,ProductName)更改此值 其他    “”

  3. 插入 - >每个公式的摘要为最大值,并将其放在分组的发票行上。

  4. 由于数量不变,您可以将该字段放在分组发票行上。
  5. 插入 - >关于使用SUM的成本和成本的汇总并将其放在分组的发票行上。
  6. 隐藏详细信息。
  7. 这应该可以为您提供所需的结果。发生的事情是因为您的公式只打印成品信息,其他项目是空白的。因此,当您使用MAXIMUM时,将打印非空白项目。

    希望这有帮助。


    新解决方案

    我没有像您的数据那样设置任何表格或视图,因此我无法测试此解决方案,但希望有足够的信息可以制定出一个好的解决方案

    我注意到您无法使用InvoiceShipments中的材料来识别BillofMaterials中的成品。材料重演。我们必须使用成品来识别它们。

    1. 添加InvoiceShipments并将其重命名为InvoiceShipments1(添加表格时,右侧窗口,右键单击表格并重命名。
    2. 使用精选专家,隔离您的成品。 (价格<> 0和Cost = 0)
    3. 数据库 - >数据库专家。添加您的BillofMaterials表。将SKU链接到ProductSKU。左外加入
    4. 现在材料与发票编号相关联,我们可以尝试将INvoiceShipments的另一个副本链接到BOM。这很棘手。

      1. 数据库 - >数据库专家。在InvoiceShipments表中添加重命名为InvoiceShipments2。将InvoiceShipments2.invoice#链接到InvoiceShipments1.Invoice#,并将InvoiceShipments2.SKU链接到Material#。使用左外连接
      2. 在OrderID,SKU和ProductName列上创建一个在InvoiceShipments1和InvoiceShipments2之间切换的公式

        IF ISNULL({InvoiceShipments1.OrderID})那么     {} InvoiceShipments2.OrderID 其他     {InvoiceShipments1.OrderID}

      3. 创建一个结合了InvoiceShipments2.invoice#和SKU(SKU公式版本)的公式

      4. 在上一步中按公式分组(如果发票包含2个成品,则会为一张发票创建2行。
      5. 在GF上放入InvoiceShipments2.invoice#,OrderID(公式版),SKU(公式版),ProductNmae(公式版),InvoiceShipments2.quantity,Summerize(InvoiceShipments2.price),Summerize(InvoiceShipments2.cost)
      6. Hide GH
      7. 希望它有效!