2

JasperReport でドル ($) 記号をエスケープする方法があるかどうか知りたいです (私は Dynamic Jasper を使用しています)。Unicode と xml エスケープを試みましたが、うまくいきません。

このエラーが発生します:

1. Syntax error on token "$F", { expected
            value = $F{$}; //$JR_EXPR_ID=13$
                    <>

動的 Jasper レポート コードは次のとおりです。

    drb.setTitle(screenTitleData) 
        .setSubtitle(styledSubTitle)
        .setTitleStyle(titleStyle).setTitleHeight(new Integer(30))
        .setSubtitleHeight(new Integer(20))
        .setDetailHeight(new Integer(8))//defines the height for each record of the report
        .setMargins(margin, margin, margin, margin)
        .setDefaultStyles(titleStyle, null, headerStyle, columDetail)
        .setPrintBackgroundOnOddRows(true)
        .setOddRowBackgroundStyle(oddRowStyle)
        .setColumnsPerPage(new Integer(1))//defines columns per page (like in the telephone guide)
        .setColumnSpace(new Integer(5))
        .setWhenNoData(SwtConstants.DYNAMIC_JASPER_NO_DATA_FOUND, null,true,true)
        .setQuery(queryResult.getExecutedQuery(), DJConstants.QUERY_LANGUAGE_SQL);

ご覧のとおり、「setQuery」を使用しています。オブジェクトに保存された列のリストがあるため、リストを参照して、次のコードを使用して列を作成します。

// Varchar columns will not be styled
                abstractColumn = ColumnBuilder.getNew()
                        .setColumnProperty(columns.get(i).getColumnLabel(), String.class.getName())
                        .setTitle(columns.get(i).getColumnLabel()).setWidth(85)
                        .setStyle(commonStyle).setHeaderStyle(headerStyle)
                        .build();

このエラーを再現したい場合は、次のようなクエリを入力してください:

Select '$' from dual

「}」文字でも同様のエラーが発生するので注意してください。

誰でも私を助けてくれますか?

4

1 に答える 1