2014-12-31 23 views
0

我有一個水晶報表與數據庫命令:不能重新映射域 - 地圖領域的窗口缺少新表

CR Database Expert

的命令有可以被刪除,從表中讀取連接子句在數據庫中,因爲它表示靜態數據。我這個表(稱爲_System)添加到數據庫專家:

New table added

現在我編輯的命令刪除加入並引用此表的列。因爲這取決於這些列報告字段不再映射,這將導致出現映射字段窗口:

CR map fields

...不具備的新表中它。如果我取消了這個,我就回到原來的地方。如果我在沒有映射的情況下點擊「確定」,報告中所有未映射的字段都將被刪除(可以說......我不期待這個> :()

我試過在命令和新表格之間添加鏈接,爽口報告參數,但這些都沒有影響。

一種解決方法是手動替換報表中的每個領域,但這種勞動強度非常大。


這是命令的輪廓之前:

SELECT ACT.Account_Code, ACT.Company, ACT.FName, --etc 
     STM.CompanyName AS 'DLRName', STM.Address_1 AS 'DLRAddress', STM.City AS 'DlrCity' --etc 
FROM Accounts AS ACT 
    JOIN _System AS STM ON 1 = 1 
GROUP BY ACT.Account_Code, ACT.Company, ACT.FName, --etc 
     STM.CompanyName, STM.Address_1, STM.City --etc 

而經過:

SELECT ACT.Account_Code, ACT.Company, ACT.FName, --etc 
FROM Accounts AS ACT 
GROUP BY ACT.Account_Code, ACT.Company, ACT.FName --etc 

我已刪除的_System表JOIN,和所有引用的列。

回答

1

它似乎不會將您的_system表識別爲新來源。

我想:

1)留下您的命令對象SQL不變&獲取問題制定出與_System表,然後

2)確保您能夠建立命令對象之間的連接字段和_System表字段,最後是

3)然後重新映射字段。

第二步我懷疑是問題的根源,因爲您的連接條件是「ON 1 = 1」,我認爲這意味着您可能在兩個表中都沒有公共密鑰字段。

請注意,您的原始命令SQL選擇STM.Companyname AS'DLRName'。

因此,水晶現在知道一個叫DLRName場的,但不知道一個叫公司名稱字段的,因此它不能使DLRName之間的關聯在舊的源代碼,並在公司名稱新中源...

與從命令對象移動到附加表中的其餘字段類似。如果沒有名稱匹配存在... Crystal不能建立連接。然而...它會列出報告中的所有不匹配字段以及識別數據源中所有未使用的字段,並允許您自己指定匹配項。

但它不......它告訴我,嘗試附加/打開_System表時出現了問題。因此,您需要先解決問題,然後再進行現場調整。

如果這不能讓你通過...然後顯示一些示例數據,所以我可以看到這兩個表是如何相關的(確保有一些例子存在哪裏有兩個表中的行匹配)。

+0

這兩個表完全沒有關係,這就是爲什麼我將_System帶出連接。不幸的是,沒有共同的關鍵字段。我嘗試在命令中的aliased _System列與表中的實際列之間添加鏈接,但這不適用於地圖字段窗口。 它似乎承認_System作爲一個新的來源,因爲關閉數據庫專家給出「多個數據源或存儲過程已用於此報告」的警告。 – Aaroninus

+0

好的...我錯過了這裏的大圖。在那裏使用_System表的目的是什麼?它爲你做了什麼?當您運行報告的原始版本時,這些字段是否已填充? –

+0

_System表包含用於填充報告標題的靜態信息([請參閱示例1](http://kenhamady.com/cru/archives/716))。我試圖將它從命令中分離出來,而不必手動重新添加所有報告對象。 – Aaroninus