DynamicJasper ExcelとHyperLinks

DynamicJasperを使用してExcelセルにハイパーリンクを追加した人はいますか?

どのようにそれを行うかを示すsrc内のテストがあります....しかし、私はそれらがxlsではなくhtml出力のためだけであることを恐れています。

例えば

DJHyperLink djlink = new DJHyperLink();
    djlink.setExpression(new StringExpression() {
        public Object evaluate(Map fields, Map variables, Map parameters) {             
            return "http://linkInImage.com?param=" + variables.get("REPORT_COUNT");
        }
    });
    djlink.setTooltip(new LiteralExpression("I'm a literal tootltip"));     

AbstractColumn.setLink(djlink)を実行すると、出力するときに evaluate()が呼び出されないので動作しません。

また、リテラル = HYPERLINK( "www.test.com") .....を設定してみました。

ビットは今止まった。

0
ちょっと速いアップデート:私は多かれ少なかれ私がDJでできることを試したと思う、私はいくつかのアドバイスを支払うことができるかどうかを確認するために彼らのサポートを電子メール...返信を待っている。最初の検査では、私がやる必要があるすべてをやっているようですが、open officeでExcel xlsxファイルを開いているという唯一の問題があります。それを離れて45分でそれと一緒に立ち上がることができました。かなりクール。
追加された 著者 HKalsi,
ダイナミックジャスパーの人々から聞いたことはありませんでした。だから、私はSpreadsheetMLとDocx4jの喜びについてすべてのことを学ぶのに24時間を費やしました、超柔軟性、超高速.....私はそれを愛する! ooxmlのinital複雑さから離れて!
追加された 著者 HKalsi,

1 答え

私はあなたが今これで解決策を見つけたに違いないと信じています。しかし、それは他の人を助けるかもしれないようにここに答える。リリースノートの一部として記載されている特定の修正が見つかりませんでしたが、これは DJ 4.0.3のリリースで、リリースされました。

私はこれをAbstractLayoutManagerで見るが、

if (column.getLink() != null) {
    String name = getDesign().getName() + "_column_" + getReport().getColumns().indexOf(column);
    HyperLinkUtil.applyHyperLinkToElement((DynamicJasperDesign) getDesign(),column.getLink(),textField,name);
}

..最終的にExpressionUtil :: createCustomExpressionInvocationText2()に移動し、

public static String createCustomExpressionInvocationText2(String customExpName) {

    String fieldsMap = getTextForFieldsFromScriptlet();
    String parametersMap = getTextForParametersFromScriptlet();
    String variablesMap = getTextForVariablesFromScriptlet();

    String stringExpression = "(("+CustomExpression.class.getName()+")$P{REPORT_PARAMETERS_MAP}.get(\""+customExpName+"\"))."
        +CustomExpression.EVAL_METHOD_NAME+"( "+ fieldsMap +", " + variablesMap + ", " + parametersMap +" )";

    return stringExpression;
}

私はあなたのコードを試してみましたが、Excelと同様にHTMLでもうまくいきました。

0
追加された