我怎样才能调试这个水晶报告公式?

时间:2013-06-11 21:18:16

标签: sql debugging crystal-reports formula

我在水晶报告表格中有如下公式:

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的值

2 个答案:

答案 0 :(得分:4)

由于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

答案 1 :(得分:3)

如果我发布我所做的也可以提供帮助。

Running Total Formaul (Basic Syntax)
dim debug as number
debug = 0

<buggy code>

formula = debug / debug   <- divide by zero  breakpoint

在预览中运行时,您将看到变量及其当前正在尝试调试的公式中的值。