3

Crystalレポートフォームに式として次のものがあります。

IF ({REPORT_INVOICE_SUMMARY.ITEMCONCAT} <> 'Move'
    and {REPORT_INVOICE_SUMMARY.ITEMCONCAT} <> 'Daywork'
    and {REPORT_INVOICE_SUMMARY.ITEMCONCAT} <> 'Billable Repair'
    and InStr({REPORT_INVOICE_SUMMARY.ITEMCONCAT},'Non-Billable',1) = 0
    and {REPORT_INVOICE_SUMMARY.ITEMCONCAT} <> 'Turnkey Daywork') then
    {REPORT_INVOICE_SUMMARY.QUANTITY}
else
    0

それをステップ実行して、現在の REPORT_INVOICE_SUMMARY.ITEMCONCAT が何であるかを確認するにはどうすればよいですか?

REPORT_INVOICE_SUMMARY.ITEMCONCAT の値を確認する必要があります。

4

2 に答える 2

6

CR にはデバッグ機能がないため、次のいずれかの方法を試す必要があります。

  • 数式を 1 つずつ作成し、結果をキャンバスに表示する
  • ケースごとに値を返すことで、複雑なロジックをテストします。If [test] Then 'A' Else If [test] Then 'B' Else 'C'
  • 再利用可能なロジックをカスタム関数にリファクタリングする

いずれにせよ、ロジックを構築するためのより良い方法は次のとおりです。

IF Not( {REPORT_INVOICE_SUMMARY.ITEMCONCAT} IN ['Move','Daywork','Billable Repair','Turnkey Daywork'] )
    AND InStr({REPORT_INVOICE_SUMMARY.ITEMCONCAT},'Non-Billable',1) = 0 THEN
    {REPORT_INVOICE_SUMMARY.QUANTITY}
ELSE
    0
于 2013-06-12T19:49:03.663 に答える