教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> Oracle >> 开发技术 >> 使用XMLTransform和XSL-FO格式化报表 RSS订阅
使用XMLTransform和XSL-FO格式化报表
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   

  XMLTransform SQL函数使得应用程序开发人员能够不用第三方报表工具就直接从数据库产生高质量的格式化报表。
  
  XMLTransform内嵌于SQL,因此它能够被任何能够连接到数据库并运行简单SQL语句的客户程序使用。
  
  可扩展样式表语言(XSL)是指将一个XML文档转换成另外一种结构的XML的工具,它支持条件、XPath树遍历、循环和排序构造。XSL格式化对象(XSL-FO)也是一个XML应用程序,但是它支持各种高质量格式的文档的产生,比如说PDF、PostScript,甚至是GIF。
  
  很多FO处理器是免费的,比如Apache FOP,而其它是内嵌于XML编辑器和处理器的。很多供应商开始推出WYSIVWYG编辑器来创建XSL-FO文件,这是必要的,因为XSL-FO可能会极度复杂。
  
  下面给出一个非常简单的例子,首先假设我有一个XML文档:
  
  <doc>Hello World</doc>
  
  如果我需要使用“Hello World”以24-point大小的Arial字体产生一个PDF页面,我想要一个大概像下面这个样子的XSL-FO文档:
  
  <?xml version="1.0" encoding="UTF-8"?>
  <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <fo:layout-master-set>
    <fo:simple-page-master master-name="my-page">
     <fo:region-body margin="1in"/>
    </fo:simple-page-master>
   </fo:layout-master-set>
   <fo:page-sequence master-reference="my-page">
    <fo:flow flow-name="xsl-region-body">
     <fo:block font-family="Arial" font-size="24pt">Hello World</fo:block>
    </fo:flow>
   </fo:page-sequence>
  
  </fo:root>
  
  这大概是你所能够产生的最简单的XSL-FO文件了。如果我将其保存为“hello.fo”然后通过一个XSL-FO处理器运行它,我就可以产生这个文档的一个PDF或PostScript表示。
  
  要从我的XML文档得到我的XSL-FO文档,我需要一个XSL样式表来完成文档之间的转换:
  
  <?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
      <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
        <fo:layout-master-set>
          <fo:simple-page-master master-name="my-page">
            <fo:region-body margin="1in"/>
          </fo:simple-page-master>
        </fo:layout-master-set>
        <fo:page-sequence master-reference="my-page">
          <fo:flow flow-name="xsl-region-body">
            <fo:block font-family="Arial" font-size="24pt">
              <xsl:value-of select="/doc"/>
            </fo:block>
          </fo:flow>
        </fo:page-sequence>
      </fo:root>
    </xsl:template>
  </xsl:stylesheet>
  
  XSLT处理器没有什么缺点,本文最关心的是内建于Oracle9iSQL产生我的XML文档,我可以使用:
  
  select XMLElement("doc",'Hello World') from dual;
  
  要使用SQL在数据库内部自动产生FO文档,我可以使用:
  
  set long 1000000
  select XMLTransform(
    XMLElement("doc",'Hello World'),
    XMLType(
    '<xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/">
        <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
          <fo:layout-master-set>
            <fo:simple-page-master master-name="my-page">
              <fo:region-body margin="1in"/>
            </fo:simple-page-master>
          </fo:layout-master-set>
          <fo:page-sequence master-reference="my-page">
            <fo:flow flow-name="xsl-region-body">
              <fo:block font-family="Arial" font-size="24pt">
                <xsl:value-of select="/doc"/>
              </fo:block>
            </fo:flow>
          </fo:page-sequence>
        </fo:root>
      </xsl:template>
    </xsl:stylesheet>')) result
   from dual;
  
  这里给出了使用SQL从数据库产生一个XSL-FO文档的最简单方法。在实际的环境中,你可以在一个WYSIWYG编辑器中从外部操纵XML和XSL-FO,将其保存到表中,然后从数据库产生一致的、高质量的报表。

来源:upschool.com.cn
作者:
关键字:XSL,FO格式化报表
发表日期:2007-1-6 1:06:31

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:Oracle 10G 的新特性   下一篇:使用插值在序列中查找遗漏的值


2008-12-3 5:01:47
本文的相类似文章
  • 使用XMLTransform和XSL-FO格式化报表
  • 通过向XSLT传送参数来定制输出
  • php与XML、XSLT、Mysql的结合运用
  • 使用XML、XSLT和XPath创建可排序、分页、重用的数据显示页
  • Jsp结合XML+XSLT将输出转换为Html格式
  • 使用XML、XSLT和XPath创建可排序、分页、重用的数据显示页
  • 在XSL中实现项目列表的例子
  • XSL学习心得-制作图像超链接
  • XSL简明教程
  • 在XSL/XSLT中实现随机排序
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com