1

と呼ばれるデータを含むテーブルがありますInvoiceShipments。請求書に記載されている各製品の行が続きます。各製品は製品カテゴリに属しており、クエリとフィルタリングを行うことができます。一部の製品は、が付いた完成品ですBill of Material。ここで、Bill of Materials(BOM)は、完成品を作成するために組み合わせるパーツのリストです。

表にはInvoiceShipments、完成品が価格とともに記載されていますが、費用はかかりません。次に、完成品のコンポーネント(BOM)が続きます。これには、コストはかかりますが、価格はありません。すべてのコンポーネントアイテムと、それがどの完成品に行くかをリストした別のテーブルがあります。コンポーネント商品は複数のBOMに属することができることに注意してください。

InvoiceShipments現在、製品カテゴリ(結合から別のテーブルへ)に基づいて、必要な製品でフィルタリングできます。私がやりたいのは、適切な数を取得し、そのBOMを構成するすべてのパーツ番号のリストを取得してから、InvoiceShipmentsに戻り、それらのコンポーネント番号に一致するすべての行のコストを合計することです。請求書#。しかし、クエリレベルで何をすべきか、コマンドテーブルで何をすべきか、数式で何をすべきかなどを知るのに十分な時間、Crystalを使用していません。

サンプルスクリーンショット:

ギャラリーの一番上のテーブルはBOMテーブル、2番目のテーブルは、、InvoiceShipments3番目のテーブルは望ましい結果です。

どんな助けでもいただければ幸いです。

4

1 に答える 1

0

私が収集したものから、請求書番号を結合したいが、完成品の情報を使用したいと考えています。私は似たようなことをしましたが、解決策は少し奇妙ですが、うまくいきます。InvoiceShipments テーブルのみが必要です

  1. 請求書番号でグループ化
  2. 注文 ID、SKU、および製品名の式を作成する

    IF Price <> 0 AND Cost = 0 THEN Orider ID '<-式に従ってこれを変更 (SKU, ProductName) ELSE ""

  3. [挿入] -> [最大値] として各式の概要を入力し、グループ化された請求明細行に配置します。

  4. 数量は一定であるため、グループ化された請求明細行にそのフィールドを配置できます。
  5. Insert-> Price のサマリー、次に SUM を使用した Cost のサマリーをグループ化された請求明細行に配置します。
  6. 詳細を非表示にします。

これにより、必要な結果が得られるはずです。数式が完成品の情報のみを印刷しているため、他の項目は空白になっています。したがって、MAXIMUM を使用すると、空白でないアイテムが印刷されます。

お役に立てれば。


新しいソリューション

あなたのデータのように設定されたテーブルやビューがないため、このソリューションをテストできませんが、適切なソリューションを策定できる十分な情報があることを願っています

BillofMaterials の完成品を識別するために、InvoiceShipments の材料を使用できないことに気付きました。マテリアルは繰り返されます。完成品を使用してそれらを特定する必要があります。

  1. InvoiceShipments を追加し、名前を InvoiceShipments1 に変更します (テーブルを追加する場合、右側のウィンドウで、テーブルを右クリックして名前を変更します。
  2. 選択したエキスパートを使用して、完成品を分離します。(価格 <> 0 およびコスト = 0)
  3. データベース -> データベース エキスパート。BillofMaterials テーブルに追加します。SKU を ProductSKU にリンクします。左外部結合

これで、材料が請求書番号に関連付けられました。INvoiceShipments の別のコピーを BOM にリンクすることができます。これはトリッキーです。

  1. データベース -> データベース エキスパート。InvoiceShipments テーブルの名前を InvoiceShipments2 に追加します。InvoiceShipments2.invoice# を InvoiceShipments1.Invoice# に、InvoiceShipments2.SKU を Material# にリンクします。左外部結合を使用する
  2. 列 OrderID、SKU、および ProductName で InvoiceShipments1 と InvoiceShipments2 を交互に使用する数式を作成します。

    IF ISNULL({InvoiceShipments1.OrderID}) THEN {InvoiceShipments2.OrderID} ELSE {InvoiceShipments1.OrderID}

  3. InvoiceShipments2.invoice# と SKU を組み合わせた数式を作成する (SKU 数式バージョン)

  4. 前のステップの数式でグループ化します (請求書に 2 つの完成品が含まれている場合、1 つの請求書に対して 2 行が作成されます。
  5. GF put InvoiceShipments2.invoice#、OrderID (数式版)、SKU (数式版)、ProductNmae (数式版)、InvoiceShipments2.quantity、Summerize(InvoiceShipments2.price)、Summerize(InvoiceShipments2.cost)
  6. GH を非表示

それがうまくいくことを願っています!

于 2012-09-27T14:47:04.450 に答える