2011-10-01 65 views
2

我有一個Crystal Report鏈接到SQL Server數據庫中的Customer表。我的報表生成器將執行SELECT SQL並將結果表作爲數據源傳遞到報表中。獲取Crystal Report中的特定單元格

在報告中,我有一個字段,我希望此字段在表格的特定行索引和列索引處顯示單元格數據(也許我知道列名稱)。例如,我的字段應顯示數據源第3行第2列的單元格。

我該如何使用Crystal Report來做到這一點。最新版本現在是2011.

回答

1

首先,爲了使行號具有任何意義,您需要使用ORDER BY子句(通過排序報表)查詢表。沒有它,你不能對數據庫中的「原始記錄順序」做任何假設,因爲實際上沒有。

有幾種方法可以獲取此字段,具體取決於要在其中顯示報告的位置。如果你只是想表明它在細節部分,你可以使用一個簡單的公式是這樣

if rownumber = 3 then {table.column}

如果你想在頁腳,而不是顯示它,你可以利用一個變量,而不是:

whileprintingrecords; 
numbervar thedatavariable; 
if recordnumber = 3 then thedatavariable := {table.column}

在報告的詳細信息部分中拋出該公式,然後您可以在腳註中自由使用數據變量。

現在對於列:如果列索引不是動態的,您可以看到哪個列對應...例如,如果表的列是customer_id,customer_name,那麼列2將始終只是客戶名稱。如果索引號會改變,就像通過參數一樣,你可以製作這樣的公式

select {?colIndexParameter} 
case 1 : {table.customer_id} 
case 2 : {table.customer_name} ...
相關問題