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|
Category: BIP