2017-10-12 9 views
1

Ich verwende RTF-Vorlage, um einen BI-Bericht zu erstellen. Ich muss die Anzahl der Zeilen in 3 Datensätze auf der ersten Seite beschränken. Die verbleibenden Datensätze/Zeilen füllen weiterhin die nächsten Seiten. Ich muss auch die Seitensumme drucken. Ich habe den folgenden Code verwendet, um die Anzahl der Datensätze zu begrenzen, druckt jedoch nur 1 Zeile. Jede Hilfe wird geschätzt. DankBegrenzte Zeilen pro Seite in BI Publisher

<?xdoxslt:set_variable($_XDOCTX, ‘counter’, 0)?> 
<?xdoxslt:set_variable($_XDOCTX, ‘lines_page’, 3)?> 
<?xdoxslt:set_variable($_XDOCTX, ‘tot_lines’, count(.//PdfDraftPurchaseOrderHeaderVORow))?> 
<?xdoxslt:set_variable($_XDOCTX,’remainder’,0)?> 

<?for-each:PdfDraftPurchaseOrderHeaderVORow?> 
<?xdoxslt:set_variable($_XDOCTX, ‘counter’, xdoxslt:get_variable($_XDOCTX, ‘counter’)+1)?> 
<[email protected]:xdoxslt:get_variable($_XDOCTX,’counter’) != xdoxslt:get_variable($_XDOCTX,’tot_lines’)?> 
<[email protected]:position() mod xdoxslt:get_variable($_XDOCTX, ‘lines_page’) = 0?><?call:breaking?><?end if?><?end if?> 
<?end for-each?> 
+0

Können Sie das vereinfachte XML posten? – EdHayes3

Antwort

1

Versuchen Sie, diese für-jeden

<?if: position() = 3?> 
<?split-by-page-break:?> 
<?end if?> 

in der Verwendung habe ich ein einfaches Beispiel und das funktionierte gut. Ich habe 3 Datensätze auf der ersten Seite und 6 auf dem Rest.

Was Seite Summen, fügen Sie diese nach dem Element, das Sie addieren möchten, wo TotalFieldName der Name der gesamten variablen ist und Element ist das XML-Nummer Element Sie

<?add-page-total:TotalFieldName;Element?> 

Fügen Sie diese in der summieren möchten Fußzeilen für die Seite insgesamt, wo TotalFieldName ist die Variable, die wir oben erstellt und die NumberFormat ist so etwas wie 9G999D00

<?show-page-total:TotalFieldName; 'NumberFormat'?> 
+0

Hallo, Ich habe das Split-by-Page-Break-Problem bereits behoben, aber die Seitensumme ist noch in Bearbeitung. Ich fand heraus, dass die Daten, die hinzugefügt werden, im String-Format sind, also habe ich versucht, es in den Datentyp Zahl zu konvertieren, aber laut Orakeldokumentation funktioniert die Seitensummenfunktion nur, wenn die Quell-XML-Codedatei numerische Werte enthält. Die Nummern dürfen nicht vorformatiert sein. Gibt es einen Workaround dafür? Vielen Dank für Ihre Hilfe –

+0

Ich lese das auch, und ich glaube nicht, dass es da ist. sollte jedoch leicht die XML-Datendefinition zu beheben. – EdHayes3

1

Sie diese Syntax verwenden können, wenn Sie eine Seite brechen wollen nach n Anzahl der Zeilen:

<? if position() mod 3 = 0?> 
<?split-by-page-break:?> 
<?end if?> 

dies wird die Seite nach drei Reihen brechen, dann nach 6 Reihen und so weiter für jeden 3 Mehr. Sie können 3 durch die gewünschte Zeilenanzahl ersetzen.

Übrigens ist position() die Zeilennummer in Ihrer XML-Datenquelle.