2016-09-21 13 views
2

InventTransテーブルをクエリして購入トランザクションを行う特殊なフォームを作成する必要があります。2つの列にORを含むフォームデータソースに条件を追加します。

空でないバウチャーか、空でないパッキングスリップID(PackingSlipId)のいずれかを選択して取引を選択する必要があります。

これをクエリの範囲で指定する方法を見て、このクエリの範囲をテーブルのRecIdに関連付けることが可能であることがわかりました。これはこれを行う通常の古典的な方法ですか?私の例を見てください(これはうまくいくようです)。

QueryBuildDataSource qbds; 
    ; 

    qbds = this.query().dataSourceTable(tableNum(inventTrans)); 

    sysQuery::findOrCreateRange(qbds, fieldNum(InventTrans, RecId)).value(
    strfmt('(%1 != "") || (%2 != "")', 
      fieldstr(InventTrans, Voucher), 
      fieldstr(InventTrans, PackingSlipId))); 
+1

私はそれを正確にこのようにしていると私はそれについて感じることはありませんでしたが、AFAIKあなたが必要なもののために、 'Query'オブジェクトでそれを行う唯一の方法です。 –

答えて

4

ものは範囲式と呼ばれ、Queryオブジェクトと、より複雑なクエリを述べるための唯一の方法ですされている - this Axaptapedia pageを見てまたthis MSDN page

を参照してください(FH-Inwayのおかげで)

についてもしそれが古典的な方法ならば:いいえ - 必要な場合にのみ使用してください

+1

Axaptapediaには、この[topic](http://www.axaptapedia.com/Expressions_in_query_ranges)の素敵な記事があります。詳細や例は、クエリ式を操作する際に常に役立ちます。 –

+1

良い点 - 時間が経つにつれて、その面をほとんど忘れてしまった:)答えに追加する – DAXaholic

関連する問題