ireport - list style type =“square”不起作用

时间:2018-01-18 09:58:41

标签: jasper-reports

我要求在ireport中启用带方形项目符号的列表。

我使用了以下编码并将标记设置为“html”,但不知道如何实现此目的。

"Names of fruits are:" +
"<ul style = {margin-top=-13px; list-style-type=square;} >" +
"<li> &nbsp; &nbsp;Apple</li>" +
"<li> &nbsp; &nbsp;Orange</li>" +
"<li> &nbsp; &nbsp;Banana</li>" +
"</ul>"

在iReport的文本字段表达式中输入上面的代码。当我编译无错误时。当我做预览时,列表附带的光盘子弹不是正方形。此外,还要缩小ul&amp; amp; li出现默认值。任何人都知道解决方案,请帮助编码。

1 个答案:

答案 0 :(得分:0)

不支持的元素

<ul><ol>元素为not supported

  

JasperReports专有标记语言称为样式文本,是一种基于XML的格式,通过将该部分嵌入<style>标记或其他简单HTML中,可以更改文本元素内任何文本部分的样式标记来自以下列表:

<b>
<u>
<i>
<font>
<sup>
<sub>
<li>
<br>
     

<style>标记具有各种属性,用于更改文本的颜色,字体或其他样式属性。从标准HTML <font>标记中,JasperReports引擎只识别fontFace,color和size属性。当使用嵌套的<style>标记时,每个单独的样式属性都从整个文本元素继承,或从父<style>标记继承。

解决方案#1 - 结构化数据

不要直接在报表中包含HTML blurb,而是考虑直接从数据源查询数据。例如,请考虑数据库中的以下表,名称为Fruits

| fruits |
|--------|
| Apple  |
| Orange |
| Banana |

如:

SELECT fruit_name FROM fruits;

然后更改报告中的表示逻辑:

<detail>
    <band height="15">
        <staticText>
            <reportElement x="0" y="0" width="10" height="15" />
            <text><![CDATA[■]]></text>
        </staticText>
        <textField>
            <reportElement x="11" y="0" width="50" height="15"/>
            <textFieldExpression><![CDATA[$F{fruit_name}]]></textFieldExpression>
        </textField>
    </band>
</detail>

解决方案#2 - 解析数据

如果输入字符串必须是一个简单的HTML文档(一种将表示与内容混合在一起的想法,一种不幸的耦合),那么另一种可能性是:

  1. 将HTML转换为plain text string
  2. 将该字符串转换为结构化数据字符串(例如,将每行放在双引号中,然后用逗号连接所有换行符。)
  3. 将结构化字符串转换为JR data source(例如JRCsvDataSource)。
  4. 将JR数据源传递到子报告。
  5. 修改子报表的详细信息区域,如第一个解决方案中所示。
  6. 附录

    还有其他可能性,但潜在的问题是数据(即HTML字符串)提供两种不同的功能:(1)数据如何与(2)要显示的数据一起出现。要以最灵活的方式解决此问题,请分离数据必须如何从数据本身出现。也就是说,不要将预先格式化的HTML传递给报告。