热条,文本的动态位置偏移

时间:2018-11-07 09:15:50

标签: charts jasper-reports heatmap

我想在报告中插入新列,以图形方式显示“针”,显示位置在0%-100%范围内,如下所示: enter image description here

我正在寻找想法!

我的想法

使用图形(每个详细信息列中的彩虹0%-100%)。 使用像素偏移量(以某种方式?),在这里我只是放置一个过大的“ |”类型。因此,如果0%-100%为200px,则意味着将针显示为50%,我会抵消类型100px!

1 个答案:

答案 0 :(得分:2)

我找到并实现的最简单/最直接的选项:

<image scaleImage="RetainShape" onErrorType="Blank">
    <reportElement x="575" y="1" width="100" height="13" uuid="7cf54aff-65ac-40e5-8dc9-7f95d6f34d49"/>
        <imageExpression>
        <![CDATA[net.sf.jasperreports.renderers.BatikRenderer.getInstanceFromText("
        <svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100\" height=\"13\" viewBox=\"0 0 100 13\">
            <defs>
            <linearGradient id=\"linear-gradient\" x1=\"-176.88\" y1=\"316.13\" x2=\"-150.45\" y2=\"316.13\" gradientTransform=\"matrix(3.78, 0, 0, -3.78, 689.01, 1202.56)\" gradientUnits=\"userSpaceOnUse\">
            <stop offset=\"0\" stop-color=\"green\"/>
            <stop offset=\"1\" stop-color=\"green\" stop-opacity=\"0\"/>
            </linearGradient>
            </defs>
            <path d=\"M0,1.26H100v10.4H0Z\" style=\"fill: url(#linear-gradient)\"/>
            <path d=\"M" + !!! OFFSET CALCULATION !!! + ",0V13\" style=\"fill: none;stroke: #000\"/>
        </svg>
        ")]]></imageExpression>
</image>

结果:

enter image description here