2017-07-25 62 views
0

我在Oracle BI Publisher報表中有重複部分。在這個重複器中,我想綁定來自兩個不同數據模型(數據集)的兩個數據表。這兩個數據集都與一個公共列鏈接。現在的問題是鏈接dt1.col1 - > dt2.col1,dt1數據集重複整個dt2記錄。因此顯示重複的記錄。我怎樣才能避免這種情況?將多個數據表綁定在一個數據集的某一列的重複部分分組中

+0

你能與更新編程你已經有?就像教案和if語句一樣?如果您可以提供數據XML的樣本,那也有幫助。 – EdHayes3

+0

我已經使用在線編輯器。作爲新手,我不知道如何爲你提供相同的服務。請建議。 –

回答

0

您需要使用變量來保持鏈接。這是一個基本的例子。

如果您已設置數據:

<data> 
<set1> 
<row> 
<attribute1>A</attribute1> 
<attribute2>A1</attribute2> 
<attribute3>A11</attribute3> 
</row> 
<row> 
<attribute1>B</attribute1> 
<attribute2>B1</attribute2> 
<attribute3>B11</attribute3> 
</row> 
<row> 
<attribute1>C</attribute1> 
<attribute2>C1</attribute2> 
<attribute3>C11</attribute3> 
</row> 
</set1> 
<set2> 
<row> 
<attribute1>A</attribute1> 
<attribute4>A2</attribute4> 
<attribute5>A22</attribute5> 
</row> 
<row> 
<attribute1>B</attribute1> 
<attribute4>B2.1</attribute4> 
<attribute5>B22.1</attribute5> 
</row> 
<row> 
<attribute1>B</attribute1> 
<attribute4>B2.2</attribute4> 
<attribute5>B22.2</attribute5> 
</row> 
</set2> 
</data> 

你必須報告的代碼看起來是這樣的:

<?for-each:data/set1/row?> 
<?xdoxslt:set_variable($_XDOCTX, 'v_record', attribute1)?> 
Record: <?attribute1?> 
Attribute2: <?attribute2?> 
Attribute3: <?attribute3?> 
Linked Records: 
<?for-each:../../set2/row?> 
<?if:xdoxslt:get_variable($_XDOCTX,'v_record')=attribute1?> 
--Attribute4: <?attribute4?> 
--Attribute5: <?attribute5?> 
<?end if?> 
<?end for-each?> 
End 

<?end for-each?> 

處理的報表會顯示:

Record: A 
Attribute2: A1 
Attribute3: A11 
Linked Records: 
--Attribute4: A2 
--Attribute5: A22 
End 

Record: B 
Attribute2: B1 
Attribute3: B11 
Linked Records: 
--Attribute4: B2.1 
--Attribute5: B22.1 
--Attribute4: B2.2 
--Attribute5: B22.2 
End 

Record: C 
Attribute2: C1 
Attribute3: C11 
Linked Records: 
End 
相關問題