【仅供内部供应商使用,不提供对外解答和培训】

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

前言

在FineReport中,提供了一套简单的API用于读写XML操作,在这套关键的API中,主要的用到的关键类就是XMLableReader和XMLPrintWriter。从类的名字可以看出,XMLableReader是用于读取XML的,而XMLPrintWriter则是用于写XML的。

示例

我们以实际的示例来看这两个类的使用,示例代码以自定义的网页框为例子,源码在这里,下面就以这个额自定义控件中设计到读取XML的部分代码为例子进行具体的讲解。先来看一下在表中添加了一个网页框控件后,表单的XML文件(frm文件)中关于这个控件的XML片段:

网页框控件XML片段
<InnerWidget class="com.fr.plugin.form.widget.core.RHIframe">
<WidgetName name="rHIframe0"/>
<WidgetAttr>
<PrivilegeControl/>
</WidgetAttr>
<Attr scrollX="true" scrollY="true"/>
<RHIframeAttr class="com.fr.plugin.form.widget.core.RHIframeAttr">
<RHIframeSource class="com.fr.plugin.form.widget.core.TemplateSource">
<Attr path="/mark.cpt"/>
</RHIframeSource>
<Parameters/>
</RHIframeAttr>
</InnerWidget>

其中第1行到第5行是网页框控件父类提供的一些属性,我们暂时不用管,我们把关注点集中在第5行以后。

来对照着网页框控件的源码来看看,由于我们只关注读写XML,所以这里的片段就只贴读写XML相关的部分:

writeXML
@Override
public void writeXML(XMLPrintWriter writer) {
        super.writeXML(writer);
        writer.startTAG("Attr");
        writer.attr("scrollX", overflowX);
        writer.attr("scrollY", overflowY);
        writer.end();
        if (attr != null) {
            GeneralXMLTools.writeXMLable(writer, attr, RHIframeAttr.XML_TAG);
        }
    }
}

 

 

  • No labels