グリッドのレコードが存在しない場合にレコードを印刷しないようにします。
構文
Print If Detail
説明
特定の顧客のデータと請求書のレポートのみを印刷し、請求書のない顧客を省略する (つまり、請求書のない顧客の名前は印刷しない) 場合があります。これを行うには、ネストされた For Each コマンドのグループが 2 つ必要です。次のとおり、外部の For Each コマンドは Customers テーブルにアクセスし、内部の For Each コマンドは Invoices テーブルにアクセスします:
For each order CustomerId // Customers テーブルにアクセス
Print Pb_CustomerInformation
For each // Invoices テーブルにアクセス
Print Pb_CustomerInvoices
EndFor
EndFor
Print If Detail コマンドの目的は、次の例に示すとおり、顧客に関連付けられた請求書がない場合に顧客のデータを印刷しないようにすることです。次の例を参照してください:
For each order CrewRank
Print Pb_CrewData
Print if detail
For each
Print Pb_FlightNumber
EndFor
EndFor
このプロセスの目的は、フライトに割り当てられた乗務員のフライト番号すべてを一覧に示すことです。Print If Detail コマンドを省略すると、各フライトに割り当てられているかどうかに関わらず、乗務員全員が一覧に表示されます。この場合、CrewRank 項目属性および Pb_CrewData の printblock を通した Crew がベーステーブルです。そのため、最初に乗務員に関連付けられたフライトの番号を含むテーブルを確認する必要があります。Print If Detail コマンドの目的は、(各 For Each コマンドについて) 同じベーステーブルにネストしている最初の For Each コマンドのベーステーブルを変更することです。ただし、Order 節の CrewRank 項目属性はコントロールブレークのままとなります。
例は Print プロシージャーに関するものですが、印刷出力が特に含まれない場合でも Print If Detail コマンドを使用できます。たとえば、請求書のある顧客を (印刷ではなく) マークする必要がある場合などに使用できます。
適用範囲
オブジェクト: Procedure
|