2014-03-25 38 views
0

我目前正在嘗試修復與從存儲過程返回的某些行有關的Crystal Report/SQL存儲過程而非顯示的問題。Crystal Reports - 來自SQL的某些輸出不顯示

稍微背景:存儲過程從某個表中獲取記錄,幷包含與表中的兩個外鍵匹配的WHERE子句。水晶報告顯示從此過程返回的行。出現了一個問題,數據輸入到表中可能缺少給定的外鍵之一。該存儲過程然後將無法返回該行。

決定更改存儲過程的WHERE子句以僅匹配其中一個鍵(該行保證有)。目前還沒有記住爲什麼要檢查另一個關鍵,原因是時間流逝。 :/

在任何情況下,都進行了更改,但受影響的行未出現。當存儲過程直接運行時,可以看到正確的輸出。

我的問題:是否有辦法根據字段的值限制Crystal Report中的結果集,類似於SQL查詢中的WHERE子句,並且可能導致某些記錄無法顯示那個報告?

此外:任何其他原因可能無法顯示整個結果集?檢查地點?

我是一個完整的Crystal Reports新手。

+0

因此,有一個發展。該報告使用兩個存儲過程來返回不同的信息。我不知道它們是以任何方式鏈接的,但是在查看數據庫專家時發生了某種連接。這似乎是這兩個鍵所必需的。我毫不猶豫地把這個作爲答案,因爲我仍然不知道具體意義上發生了什麼。但是,問題解決了,所以感謝所有的幫助。如果有人能想到解釋兩個存儲過程之間的聯接是如何工作的,那麼我很樂意將其作爲對這個問題的答案。謝謝。 –

回答

0

表正確鏈接?聽起來像這可能是一個INNER JOIN vs OUTER JOIN問題。

關於限制晶體內部結果的部分 - 如果我正確理解這一點,您需要使用select專家。 ,選擇有問題的領域,選擇一些像「不等於」,並把該值

0

,因爲你可以看到從記錄存儲過程返回......下面是幾個點,這將有助於你:

  1. 選擇晶體報告的專家作爲where子句......因此,如果您想將數據限制在報告中,那麼您可以將條件放入選擇專家。
  2. 如果您在報告中使用參數,並且參數中的值與存儲過程返回的數據不匹配,那麼CR也將爲空白。
  3. 檢查數據庫連接是否顯示Crystal是否連接到正確的數據庫。
+0

我已經連接到正確的數據庫,我正在手動更改測試數據並將其反映在CR中。 CR正在返回一些數據,它的行爲就好像存儲過程沒有改變一樣,只是用兩個鍵返回行。我看到了文檔中的精選專家,但我無法理解如何看待現有條件,只知道如何添加新條件。您能否詳細說明如何使用Select Expert來查看是否有條件被應用? –

+0

要查看選擇專家...'去報告--->選擇專家'那裏你可以檢查任何條件存在..通常,如果這是空白,那麼暗示選擇專家是應用但仍然如果你想檢查,然後進入'數據庫--->顯示sql查詢'那裏你可以看到生成的查詢並檢查任何where子句。既然你說你已經更新過程,請嘗試一次'Database ---> Verify database'選項,這樣如果有任何更改將被加載。 – Siva