2013-06-11 27 views
3

我有一個水晶報表以下的公式:我怎樣才能調試這個晶體報告公式?

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

+0

您是否嘗試將其作爲字段添加到報告詳細信息中? –

+0

Crystal Reports沒有類似於您在合適的IDE中所期望的調試功能。 – craig

回答

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

剛剛發現這個想法是有效的http://scn.sap.com/thread/1579437 –

+0

很高興知道。如果出現「鏈接腐爛」,另一個線程建議在要檢查公式計算值的位置創建一個除零誤差(1/0)。 – craig

3

可能是有益的,如果我後我做了什麼爲好。

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

<buggy code> 

formula = debug/debug <- divide by zero breakpoint 

當在預覽模式下運行時,您將看到變量以及您嘗試調試的公式中的當前值。