Полагаю, вы уже нашли решение для этого. Однако отвечая здесь, чтобы это могло помочь другим. Я не смог найти конкретное исправление, упомянутое как часть примечаний к выпуску, но это, кажется, прекрасно работает с DJ 4.0.3 release .
Я вижу это в 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;
}
Когда я пытался использовать ваш код, он отлично работал как для HTML, так и для Excel.