2013-03-12 74 views
0

在Crystal Reports中,我想添加一個WHERE field <> date來篩選出在我的報表中從我的數據庫中獲得NULL值的日期。編輯參數字段水晶報告有NOT值?

我在後端使用了一個傳統的FoxPro數據庫,它從我的報告生成一條SQL語句,但似乎無法將WHERE子句添加到生成的語句中。

當直接訪問FoxPro的後端,與psudo NULL值的日期有1899-12-30的日期,但是,當他們從FoxPro通過水晶拉它們顯示爲12/30/99(這也許只是顯示在MM/DD/YY格式相同的日期)。

我注意到報告有一個現有的參數字段,提示用戶將原始查詢過濾到特定的日期範圍。我試圖添加自己除了參數現場,但發現,我需要用我的WHERE field <> date不是一種可行的選擇,因爲只有3種主要場參數:

離散

  • 接受單個值和離散值。

遠程

  • ,以便選擇在該範圍內的一切接受一個下部和上部的值。

離散和遠程

  • 兩個以上

沒有這些的組合似乎能過濾使用WHERE NOT類型的子句查詢的結果,是有一些其他方式來做到這一點?

+0

數據是否會顯示在表格中?如果是這樣,我相信你可以做一個過濾器顯示哪些行將與此匹配。 – badpanda 2013-03-12 18:16:27

+0

是的,它將在表格中詳細顯示,這是你的意思嗎? – leeand00 2013-03-12 18:18:45

+2

如果您只想排除NULL日期,則需要使用select專家而不是參數。參數用於給最終用戶選項以供選擇,並且選擇專家是對源數據的過濾器。它有很多選項,包括編寫自定義公式來過濾數據。 – EvilBob22 2013-03-12 18:42:03

回答

0

我真正需要做的是添加一些標準到WHERE子句的SQL語句,在SQL客戶端很簡單,但是當你」再在Crystal Reports這樣V10這是一個有點難以找到,除非你知道你正在尋找...

什麼所以我需要做的是:

  1. 選擇現場FILT呃在報告中(在Details部分)
  2. 單擊Experts工具欄上的Select ExpertThe select Expert Button in the Experts toolbar按鈕。
  3. Select Expert對話框中,您的字段的名稱應顯示在選項卡中。
  4. 您可以在下面選擇用於過濾記錄的WHERE條件。
1

添加到您的記錄選擇公式:

// remove actual nulls 
AND Not(Isnull({table.date_field})) 
// remove old dates 
AND {table.field} <> date(1899,12,30) 
// remove dates not in select parameter value 
AND {table.field} IN {@date_parameter} 
+0

記錄選擇公式在哪裏?在側欄上?在公式下?我怎麼知道哪一個是記錄選擇公式? – leeand00 2013-03-12 21:17:11

+0

在'Field Explorer-> Fields-> Database Fields-> p_active'中的某個字段旁邊實際上有一個綠色複選標記,當我查看由Crystal Reports生成的SQL語句時,它具有NOT條件。我如何訪問? – leeand00 2013-03-13 20:13:16