我如何调试这个水晶报告公式?

jor*_*dan 3 sql debugging formula crystal-reports

我在水晶报表上有以下公式:

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
Run Code Online (Sandbox Code Playgroud)

我如何逐步完成并查看当前的 REPORT_INVOICE_SUMMARY.ITEMCONCAT 是什么?

我真的需要看看 REPORT_INVOICE_SUMMARY.ITEMCONCAT 的值

cra*_*aig 5

由于 CR 没有调试功能,您需要尝试以下方法之一:

  • 一次构建一个公式并在画布上查看结果
  • 通过为每种情况返回一个值来测试复杂的逻辑: 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
Run Code Online (Sandbox Code Playgroud)