2011-08-22 39 views
2

我有一個報告從存儲過程中引入值。我想將這些值中的一部分用作報表標題標題的一部分。連接單個數據庫字段的多個值

我試圖找到一種方法,將數據庫字段「Distrib」中的2到5個不同值連接起來,並在需要時將它們連接起來以使標題以空格和逗號分隔。

如果我在C#中這樣做,我會使用foreach並打印出每個值,但在Crystal Reports中看不到這樣的功能。

如何連接單個數據庫字段中的每個值? FWIW,該字段目前用於填充交叉表中的一行。我想也可以訪問交叉表字段,但是我不明白在一個函數內是如何實現的。

回答

3

創建一個公式,命名爲「推」,將其添加到細節部分,壓制它,然後添加以下爲其全文:

//{@push} 
//build an array of unique string values 

//force formula to execute during first pass (before grouping and totaling is done) 
WhileReadingRecords; 

//create a string array 
Stringvar Array items; 

//change {table.field} to an appropriate value 
items := Array_Push(items, {table.field}); 

//can't return an array, so use a dummy value 
true; 

創建一個名爲「連載」公式,把它添加到報表頁眉節,然後添加以下爲其全文:

//{@serialize} 
//create comma-delimited list 

//force evaluation to occur during second pass 
WhilePrintingRecords; 

//declare array 
Stringvar Array items; 

//serialize array 
Join(items, ","); 

該解決方案依賴於我建了兩個自定義功能:Array_Push()Array_Contains()

+0

感謝迴應,克雷格。如果這些公式依賴於你的功能,我是否也需要這些功能? – Smittles

+0

好吧,我添加了自定義函數 - 這並不困難 - 但是當我試圖將Push公式添加到細節部分時出現此錯誤: – Smittles

+0

「此字段名稱未知」,然後突出顯示{table.Distrib }作爲未知字段名稱。 – Smittles