首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BIRT动态图像报告生成

BIRT动态图像报告生成
EN

Stack Overflow用户
提问于 2016-08-16 12:02:49
回答 1查看 2.9K关注 0票数 3

在我的数据库中,我有表Rapid_Slum_Appraisal

代码语言:javascript
复制
id | general_info_left_image  
--------------------------------------
 1 | http://127.0.0.1/media/image1.jpg  
 2 | http://127.0.0.1/media/image2.jpg       

如果您点击URL,您可以在浏览器中看到图像。

我使用BIRT image.rptdesign创建了designer.In文件--我创建了数据源和数据集,以便从数据库中检索general_info_left_image。

我跟着-

  1. 首先,我创建了数据源和数据集,以便从数据库中检索图像。
  2. 然后从工具箱中拖动图像报表项以创建动态图像。
  3. 当将数据类型设置为Blob并尝试使用BIRT Viewer查看报告时,我在下面看到错误和图像不显示。

无法将7rRHk5J.jpg的值转换为二进制类型

  1. 当我将数据类型设置为字符串时,不显示图像。

image.rptdesign文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.23" id="1">
    <property name="createdBy">Eclipse BIRT Designer Version 4.6.0.v201606072122</property>
    <property name="units">in</property>
    <property name="iconFile">/templates/blank_report.gif</property>
    <property name="bidiLayoutOrientation">ltr</property>
    <property name="imageDPI">96</property>
    <data-sources>
        <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="django" id="4">
            <list-property name="privateDriverProperties">
                <ex-property>
                    <name>metadataBidiFormatStr</name>
                    <value>ILYNN</value>
                </ex-property>
                <ex-property>
                    <name>disabledMetadataBidiFormatStr</name>
                </ex-property>
                <ex-property>
                    <name>contentBidiFormatStr</name>
                    <value>ILYNN</value>
                </ex-property>
                <ex-property>
                    <name>disabledContentBidiFormatStr</name>
                </ex-property>
            </list-property>
            <property name="odaDriverClass">org.postgresql.Driver</property>
            <property name="odaURL">jdbc:postgresql://127.0.0.1/django</property>
            <property name="odaUser">postgres</property>
            <encrypted-property name="odaPassword" encryptionID="base64">c29mdGNvcm5lcg==</encrypted-property>
        </oda-data-source>
    </data-sources>
    <data-sets>
        <oda-data-set extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet" name="image" id="5">
            <property name="nullsOrdering">nulls lowest</property>
            <list-property name="columnHints">
                <structure>
                    <property name="columnName">general_info_left_image</property>
                    <property name="analysis">dimension</property>
                    <text-property name="displayName">general_info_left_image</text-property>
                    <text-property name="heading">general_info_left_image</text-property>
                </structure>
            </list-property>
            <structure name="cachedMetaData">
                <list-property name="resultSet">
                    <structure>
                        <property name="position">1</property>
                        <property name="name">general_info_left_image</property>
                        <property name="dataType">string</property>
                    </structure>
                </list-property>
            </structure>
            <property name="dataSource">django</property>
            <list-property name="resultSet">
                <structure>
                    <property name="position">1</property>
                    <property name="name">general_info_left_image</property>
                    <property name="nativeName">general_info_left_image</property>
                    <property name="dataType">string</property>
                </structure>
            </list-property>
            <xml-property name="queryText"><![CDATA[select general_info_left_image 
from public.master_rapid_slum_appraisal]]></xml-property>
            <xml-property name="designerValues"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<model:DesignValues xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design" xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
  <Version>2.0</Version>
  <design:ResultSets derivedMetaData="true">
    <design:resultSetDefinitions>
      <design:resultSetColumns>
        <design:resultColumnDefinitions>
          <design:attributes>
            <design:identifier>
              <design:name>general_info_left_image</design:name>
              <design:position>1</design:position>
            </design:identifier>
            <design:nativeDataTypeCode>12</design:nativeDataTypeCode>
            <design:precision>100</design:precision>
            <design:scale>0</design:scale>
            <design:nullability>NotNullable</design:nullability>
            <design:uiHints>
              <design:displayName>general_info_left_image</design:displayName>
            </design:uiHints>
          </design:attributes>
          <design:usageHints>
            <design:label>general_info_left_image</design:label>
            <design:formattingHints>
              <design:displaySize>100</design:displaySize>
            </design:formattingHints>
          </design:usageHints>
        </design:resultColumnDefinitions>
      </design:resultSetColumns>
      <design:criteria/>
    </design:resultSetDefinitions>
  </design:ResultSets>
</model:DesignValues>]]></xml-property>
        </oda-data-set>
    </data-sets>
    <page-setup>
        <simple-master-page name="Simple MasterPage" id="2">
            <page-footer>
                <text id="3">
                    <property name="contentType">html</property>
                    <text-property name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property>
                </text>
            </page-footer>
        </simple-master-page>
    </page-setup>
    <body>
        <table id="6">
            <property name="dataSet">image</property>
            <list-property name="boundDataColumns">
                <structure>
                    <property name="name">general_info_left_image</property>
                    <text-property name="displayName">general_info_left_image</text-property>
                    <expression name="expression" type="javascript">dataSetRow["general_info_left_image"]</expression>
                    <property name="dataType">string</property>
                </structure>
            </list-property>
            <column id="15"/>
            <header>
                <row id="7">
                    <cell id="8"/>
                </row>
            </header>
            <detail>
                <row id="10">
                    <cell id="11">
                        <image id="16">
                            <property name="dataSet">image</property>
                            <list-property name="boundDataColumns">
                                <structure>
                                    <property name="name">general_info_left_image</property>
                                    <expression name="expression" type="javascript">dataSetRow["general_info_left_image"]</expression>
                                    <property name="dataType">blob</property>
                                    <property name="allowExport">true</property>
                                </structure>
                            </list-property>
                            <property name="source">expr</property>
                            <expression name="valueExpr">row["general_info_left_image"]</expression>
                        </image>
                    </cell>
                </row>
            </detail>
            <footer>
                <row id="13">
                    <cell id="14"/>
                </row>
            </footer>
        </table>
    </body>
</report>

系统信息:

代码语言:javascript
复制
Ubuntu 16.04
BIRT  4.6.0
Java Version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~16.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-02 18:42:08

现在我可以看到混乱的地方了。从数据库中检索的不是实际图像,而是它的位置。

要使此操作正常,您必须确保每个查看报告的人都可以访问该链接。(即你只需将链接粘贴在浏览器中,你就可以看到图片)

修正报告的步骤:

  1. 从图像中删除数据集。您希望它通过它所在的表获取数据,所以将其设置为None。
  2. 该表的general_info_left_image设置为string,就像在dataset中一样,因此这是正确的。不需要改变。
  3. 选择图像并将“从图像中选择”设置为URI
  4. 输入URI,选择javascript语法,然后输入表达式生成器。
  5. 选择“可用列绑定”,选择“表”,选择“general_info_left_image”(双击将其添加到表达式)。您的表达式应该是:行“general_info_left_image”

这应该能行。祝好运。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38974455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档