sql SELECT SYS_XMLAGG(XMLELEMENT("po_header", XMLATTRIBUTES(PHA.SEGMENT1, PHA.CREATION_DATE, PHA.PO_HEADER_ID, PHA.ORG_ID, APS.VENDOR_NAME), (SELECT XMLAGG(XMLELEMENT("po_line", XMLATTRIBUTES(PLA.LINE_NUM, PLA.CREATION_DATE, PLA.ITEM_ID, PLA.ITEM_DESCRIPTION, PLA.UNIT_MEAS_LOOKUP_CODE, PLA.UNIT_PRICE, PLA.ORG_ID))) FROM PO_LINES_ALL PLA WHERE PLA.PO_HEADER_ID = PHA.PO_HEADER_ID)), SYS.XMLGENFORMATTYPE('root')) INTO mm FROM PO_HEADERS_ALL PHA, AP_SUPPLIERS APS WHERE PHA.VENDOR_ID = APS.VENDOR_ID(+) AND PHA.LAST_UPDATE_DATE >= SYSDATE - 15; xsl-fo <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fn="http://www.w3.org/2005/xpath-functions"> <xsl:output version="1.0" method="xml" encoding="UTF-8" indent="no"/> <xsl:variable name="fo:layout-master-set"> <fo:layout-master-set> <fo:simple-page-master master-name="A4" page-height="297mm" page-width="210mm" margin-left="1cm" margin-right="1cm"> <fo:region-body margin-top="0.79in" margin-bottom="0.79in"/> <fo:region-before /> </fo:simple-page-master> </fo:layout-master-set> </xsl:variable> <xsl:template match="/"> <fo:root> <xsl:copy-of select="$fo:layout-master-set"/> <fo:page-sequence master-reference="A4" initial-page-number="1" format="1"> <fo:static-content flow-name="xsl-region-before"> <fo:block text-align="center" font-size="24pt">XSL-FO做的PO报表</fo:block><fo:block text-align="right">page:<fo:page-number />/<fo:page-number-citation ref-id="last_page" /></fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:for-each select="/root/po_header"> <fo:block margin-top="1cm" border-bottom-width="0.5mm" border-bottom-style="solid" border-color="#fd58df"> <fo:inline width="60mm">采购日期: <xsl:value-of select="@CREATION_DATE" /></fo:inline> <fo:inline width="65mm">PO No.: <xsl:value-of select="@SEGMENT1" /></fo:inline> <fo:inline>供应商: <xsl:value-of select="@VENDOR_NAME" /></fo:inline> </fo:block> <fo:table> <xsl:if test="position() mod 5 = 0"> <xsl:attribute name="break-after">page</xsl:attribute> </xsl:if> <fo:table-column column-width="15mm" /> <fo:table-column column-width="25mm" /> <fo:table-column column-width="20mm" /> <fo:table-column column-width="65mm" /> <fo:table-column column-width="35mm" /> <fo:table-column column-width="15mm" /> <fo:table-column column-width="15mm" /> <fo:table-header> <fo:table-row background-color="#aaaaaa"> <fo:table-cell> <fo:block font-weight="bold">行序</fo:block> </fo:table-cell> <fo:table-cell> <fo:block font-weight="bold">创建日期</fo:block> </fo:table-cell> <fo:table-cell> <fo:block font-weight="bold">物料ID</fo:block> </fo:table-cell> <fo:table-cell> <fo:block font-weight="bold">物料描述</fo:block> </fo:table-cell> <fo:table-cell> <fo:block font-weight="bold">单位</fo:block> </fo:table-cell> <fo:table-cell> <fo:block font-weight="bold">单价</fo:block> </fo:table-cell> <fo:table-cell> <fo:block font-weight="bold">组织ID</fo:block> </fo:table-cell> </fo:table-row> </fo:table-header> <fo:table-body> <xsl:for-each select="po_line"> <fo:table-row> <fo:table-cell> <fo:block text-align="center"><xsl:value-of select="@LINE_NUM" /></fo:block> </fo:table-cell> <fo:table-cell> <fo:block><xsl:value-of select="@CREATION_DATE" /></fo:block> </fo:table-cell> <fo:table-cell> <fo:block><xsl:value-of select="@ITEM_ID" /></fo:block> </fo:table-cell> <fo:table-cell> <fo:block><xsl:value-of select="@ITEM_DESCRIPTION" /></fo:block> </fo:table-cell> <fo:table-cell> <fo:block><xsl:value-of select="@UNIT_MEAS_LOOKUP_CODE" /></fo:block> </fo:table-cell> <fo:table-cell> <fo:block><xsl:value-of select="@UNIT_PRICE" /></fo:block> </fo:table-cell> <fo:table-cell> <fo:block><xsl:value-of select="@ORG_ID" /></fo:block> </fo:table-cell> </fo:table-row> </xsl:for-each> </fo:table-body> </fo:table> </xsl:for-each> <fo:block id="last_page"></fo:block> </fo:flow> </fo:page-sequence> </fo:root> </xsl:template> </xsl:stylesheet>