How to design XSL Stylesheet& XSL-FO Template in Oracle Fusion BI Publisher

Data Model

–Query

SELECT
HP.PARTY_ID,
HP.PARTY_NUMBER,
HP.PARTY_NAME,
HP.PARTY_TYPE,
HCA.ACCOUNT_NAME ,
HCA.ACCOUNT_NUMBER ,
HCA.ACCOUNT_TERMINATION_DATE ,
HCA.STATUS
FROM HZ_CUST_ACCOUNTS HCA, HZ_PARTIES HP
WHERE 1=1
AND HP.PARTY_ID = HCA.PARTY_ID
AND ROWNUM  < 50

XSL Stylesheet

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="xml" version="1.0"   encoding="UTF-8"    indent="yes"/>
	   <xsl:template match="/">
		<!--<xsl:element name="Document" xmlns="urn:iso:std:iso: 20022: tech: xsd: pain.001.001.03" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance">-->
		<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
			
			
			<xsl:element name="CUSTOMER">
				<xsl:for-each select="DATA_DS/G_1">
					
					<xsl:element name="CUSTOMERID">
						<xsl:element name="PARTY_ID">
							<xsl:value-of select="PARTY_ID"/>
						</xsl:element>
						<xsl:element name="PARTY_NUMBER">
							<xsl:value-of select="PARTY_NUMBER"/>
						</xsl:element>						
					</xsl:element>

					<xsl:element name="CUSTOMERNAME">
						<xsl:element name="PARTY_TYPE">
							<xsl:value-of select="PARTY_TYPE"/>
						</xsl:element>
						<xsl:element name="PARTY_NAME">
							<xsl:value-of select="PARTY_NAME"/>
						</xsl:element>						
					</xsl:element>					
					
				</xsl:for-each>
			</xsl:element>
			
			
		</Document>
	</xsl:template>
</xsl:stylesheet>
 

XSL-FO

<?xml version = '1.0' encoding = 'utf-8'?>
<!--Generated by Oracle BI Publisher 12.2.1.4.0-->
<!--xslt1.0-compatibility-->
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:ora="http://www.oracle.com/XSL/Transform/java/" xmlns:xdofo="http://xmlns.oracle.com/oxp/fo/extensions" xmlns:xdoxslt="http://www.oracle.com/XSL/Transform/java/oracle.xdo.template.rtf.XSLTFunctions" xmlns:xdoxliff="urn:oasis:names:tc:xliff:document:1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
	<xsl:param name="_XDOCALENDAR">GREGORIAN</xsl:param>
	<xsl:param name="_XDOLOCALE">en-us</xsl:param>
	<xsl:param name="_XDOTIMEZONE">GMT</xsl:param>
	<xsl:param name="_XDODFOVERRIDE">;</xsl:param>
	<xsl:param name="_XDOCURMASKS">;</xsl:param>
	<xsl:param name="_XDONFSEPARATORS"/>
	<xsl:param name="_XDOCHARTTYPE">image/svg+xml</xsl:param>
	<xsl:param name="_XDOOUTPUTFORMAT">application/pdf</xsl:param>
	<xsl:param name="_XDOSVGFONTEMBED">true</xsl:param>
	<xsl:param name="_XDODEFDATE"/>
	<xsl:param name="_XDODEFTIME"/>
	<xsl:param name="_XDODEFNUM"/>
	<xsl:param name="_XDODEFCC"/>
	<xsl:param name="_XDOCTX">#</xsl:param>
	<xsl:variable name="_XDOXSLTCTX" select="xdoxslt:set_xslt_locale($_XDOCTX, $_XDOLOCALE, $_XDOTIMEZONE, $_XDOCALENDAR, $_XDODFOVERRIDE, $_XDOCURMASKS, $_XDONFSEPARATORS)"/>
	<xsl:variable name="titlevar" select="'RTF Template'" xdofo:tobetranslated="true"/>
	<xsl:variable name="_XDOFOPOS" select="''"/>
	<xsl:variable name="_XDOFOPOS2" select="number(1)"/>
	<xsl:variable name="_XDOFOTOTAL" select="number(1)"/>
	<xsl:variable name="_XDOFOOSTOTAL" select="number(0)"/>
	<xsl:template match="/">
		<fo:root xdofo:nf-separator="{$_XDONFSEPARATORS}">
			<fo:layout-master-set>
				<fo:simple-page-master master-name="master0" margin-left="66.6pt" margin-right="66.6pt" page-height="792.0pt" page-width="1584.0pt" margin-top="36.0pt" margin-bottom="36.0pt">
					<fo:region-before region-name="region-header" extent="36.0pt"/>
					<fo:region-body region-name="region-body" margin-top="36.0pt" margin-bottom="36.0pt"/>
					<fo:region-after region-name="region-footer" extent="36.0pt" display-align="after"/>
				</fo:simple-page-master>
			</fo:layout-master-set>
			<fo:page-sequence master-reference="master0">
				<fo:title>
					<xsl:value-of select="xdoxslt:one($titlevar)" xdofo:field-name="$titlevar"/>
				</fo:title>
		 
				<xsl:variable name="_SECTION_NAME" select="string('master0')" xdofo:alt="internal"/>
				<fo:static-content flow-name="region-header"/>
				<fo:static-content flow-name="region-footer"/>
				<fo:flow flow-name="region-body">
					<fo:block xdofo:line-spacing="multiple:12.95pt" orphans="2" widows="2" linefeed-treatment="preserve" text-align="start" padding-bottom="0.25pt" end-indent="5.4pt" padding-top="0.25pt">
						<fo:table start-indent="0.0pt" style-id="ts15" style-name="Table Grid" xdofo:align="start" xdofo:table-summary="Template Table 1" xdofo:row-header-count="0">
					 
							
							<fo:table-column column-width="150pt"/>  
							<fo:table-column column-width="150pt"/> 
							<fo:table-column column-width="150pt"/> 
							
							<fo:table-column column-width="150pt"/> 
							<fo:table-column column-width="150pt"/> 
							<fo:table-column column-width="150pt"/> 
							
						
							<fo:table-header>
							
			<!-- Table Row 1  -->						
								<fo:table-row keep-with-next="always" xdo-first-row="true" xdo-last-row="false" xdo-first-col="true" xdo-last-col="false" xdo-banded-row="true" xdo-banded-col="false">
									
									
									<fo:table-cell padding-end="5.4pt" padding-bottom="0.0pt" padding-start="5.4pt" padding-top="0.0pt" vertical-align="bottom" number-columns-spanned="2">
										<fo:block orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
											<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="16.0pt" color="#000000" font-weight="bold">Customer Details Report</fo:inline>
										</fo:block>
									</fo:table-cell>
									
 								</fo:table-row>
								
								
		<!-- Table Row 2  -->						
								<fo:table-row keep-with-next="always" xdo-first-row="true" xdo-last-row="false" xdo-first-col="true" xdo-last-col="false" xdo-banded-row="true" xdo-banded-col="false">
								
								<fo:table-cell padding-end="5.4pt" padding-bottom="0.0pt" padding-start="5.4pt" padding-top="0.0pt" vertical-align="bottom" number-columns-spanned="1" border-bottom="0.5pt solid #000000">
										<fo:block/>
									</fo:table-cell>
								
								<fo:table-cell padding-end="5.4pt" padding-bottom="0.0pt" padding-start="5.4pt" padding-top="0.0pt" vertical-align="bottom" number-columns-spanned="1" border-bottom="0.5pt solid #000000">
										<fo:block/>
									</fo:table-cell>
								
					 

								</fo:table-row>
								
	<!-- Table Row 3 --> 							
								<fo:table-row keep-with-next="always" xdo-first-row="true" xdo-last-row="false" xdo-first-col="true" xdo-last-col="false" xdo-banded-row="true" xdo-banded-col="false">
		
		<!-- COl 1 -->	
								<fo:table-cell padding-start="5.15pt" vertical-align="bottom" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
										<fo:block orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
											<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt" color="#000000" font-weight="bold">Party ID </fo:inline>
										</fo:block>
									</fo:table-cell>
			<!-- COl 2 -->				
									<fo:table-cell padding-start="5.15pt" vertical-align="bottom" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
										<fo:block orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
											<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt" color="#000000" font-weight="bold">Party Name</fo:inline>
										</fo:block>
									</fo:table-cell>
									
									
			<!-- COl 3 -->				
									<fo:table-cell padding-start="5.15pt" vertical-align="bottom" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
										<fo:block orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
											<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt" color="#000000" font-weight="bold">Party Type</fo:inline>
										</fo:block>
									</fo:table-cell>

					<!-- COl 4 -->				
									<fo:table-cell padding-start="5.15pt" vertical-align="bottom" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
										<fo:block orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
											<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt" color="#000000" font-weight="bold">Account Number</fo:inline>
										</fo:block>
									</fo:table-cell>

			<!-- COl 5 -->				
									<fo:table-cell padding-start="5.15pt" vertical-align="bottom" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
										<fo:block orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
											<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt" color="#000000" font-weight="bold">Account Termination Date</fo:inline>
										</fo:block>
									</fo:table-cell>
		

			<!-- COl 6 -->				
									<fo:table-cell padding-start="5.15pt" vertical-align="bottom" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
										<fo:block orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
											<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt" color="#000000" font-weight="bold">Account Status</fo:inline>
										</fo:block>
									</fo:table-cell>
		
									
								</fo:table-row>
							</fo:table-header>
							
<!-- Table 4  -->				
							
							<fo:table-body>
 
								<xsl:for-each select=".//G_1" xdofo:ctx="3">
								 	
									
									<fo:table-row xdo-first-row="true" xdo-last-row="false" xdo-first-col="true" xdo-last-col="false" xdo-banded-row="true" xdo-banded-col="false" xdofo:repeat="R">
									
									 
										<fo:table-cell padding-start="5.15pt" vertical-align="top" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
											<fo:block xdofo:xliff-note="PARTY_ID" orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
												<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt">
													<xsl:value-of select="PARTY_ID" xdofo:field-name="PARTY_ID"/>
												</fo:inline>
											</fo:block>
										</fo:table-cell>
										
										
										
										<fo:table-cell padding-start="5.15pt" vertical-align="top" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
										
											<fo:block xdofo:xliff-note="PARTY_NAME" orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
												<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt">
													<xsl:value-of select="PARTY_NAME" xdofo:field-name="PARTY_NAME"/>
												</fo:inline>
											</fo:block>
										</fo:table-cell>

											<fo:table-cell padding-start="5.15pt" vertical-align="top" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
										
											<fo:block xdofo:xliff-note="PARTY_TYPE" orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
												<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt">
													<xsl:value-of select="PARTY_TYPE" xdofo:field-name="PARTY_TYPE"/>
												</fo:inline>
											</fo:block>
										</fo:table-cell>
										
										
										<fo:table-cell padding-start="5.15pt" vertical-align="top" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
										
											<fo:block xdofo:xliff-note="ACCOUNT_NUMBER" orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
												<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt">
													<xsl:value-of select="ACCOUNT_NUMBER" xdofo:field-name="ACCOUNT_NUMBER"/>
												</fo:inline>
											</fo:block>
										</fo:table-cell>
										
										
										<fo:table-cell padding-start="5.15pt" vertical-align="top" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
										
											<fo:block xdofo:xliff-note="ACCOUNT_TERMINATION_DATE" orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
												<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt">
													<xsl:value-of select="ACCOUNT_TERMINATION_DATE" xdofo:field-name="ACCOUNT_TERMINATION_DATE"/>
												</fo:inline>
											</fo:block>
										</fo:table-cell>

										<fo:table-cell padding-start="5.15pt" vertical-align="top" border-bottom="0.5pt solid #000000" border-end-color="#000000" wrap-option="wrap" padding-top="0.0pt" border-end-style="solid" border-start-color="#000000" padding-end="5.15pt" number-columns-spanned="1" border-top="0.5pt solid #000000" border-start-style="solid" border-end-width="0.5pt" padding-bottom="0.0pt" border-start-width="0.5pt">
										
											<fo:block xdofo:xliff-note="STATUS" orphans="2" widows="2" linefeed-treatment="preserve" start-indent="0.0pt" text-align="start" padding-bottom="0.0pt" end-indent="0.0pt" padding-top="0.0pt">
												<fo:inline white-space-collapse="false" style-name="Normal" font-family-generic="swiss" font-family="Calibri" font-size="11.0pt">
													<xsl:value-of select="STATUS" xdofo:field-name="STATUS"/>
												</fo:inline>
											</fo:block>
										</fo:table-cell>


										
									</fo:table-row>
								</xsl:for-each>
							</fo:table-body>
						</fo:table>
					</fo:block>
					
					<fo:block xdofo:line-spacing="multiple:12.95pt" orphans="2" widows="2" linefeed-treatment="preserve" start-indent="5.4pt" text-align="start" padding-bottom="8.0pt" end-indent="5.4pt" padding-top="0.0pt" font-size="11.0pt" font-family="Calibri"/>
					<fo:block xdofo:line-spacing="multiple:12.95pt" orphans="2" widows="2" linefeed-treatment="preserve" start-indent="5.4pt" text-align="start" padding-bottom="8.0pt" end-indent="5.4pt" padding-top="0.0pt" font-size="11.0pt" font-family="Calibri">
						<fo:inline id="{concat('page-total-', $_SECTION_NAME, $_XDOFOPOS)}"/>
						<fo:inline id="{concat('page-total', $_XDOFOPOS)}"/>
					</fo:block>
				</fo:flow>
			</fo:page-sequence>
		</fo:root>
	</xsl:template>
</xsl:stylesheet>

•XML-based markup language for formatting XML data.

•XSL FO Supports many formats  : XSLFO, Excel, PDF, RTF etc

RTF, XSL, XSL-FO Template Formats

Comments |0|

Legend *) Required fields are marked
**) You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Category: BIP