0

ここに私の入力コントロールがあります:

ここに画像の説明を入力

「コースグループ」(単一選択クエリ)の情報は英語であることに注意してください

「コースグループ」のデータを取得するクエリは次のとおりです。

select distinct(cog.cog_id) id, concat(cd.cd_shortdescription, ' 
(', cn.cn_shortname,' - ', cog.cog_org_be_id, ' - ', cd_code.cd_code, ')')
coursegroup
from es_exam_statistics_ft es, cg_classgroup cg, org_organisation org, 
cn_campusname cn, cog_coursegroup cog, cd_codedescription cd, cd_code
where es.es_cg_id = cg.cg_id
and es.es_cog_id = cog.cog_id
and cog.cog_coursegroup_cd_id = cd.cd_id
and cd.cd_id = cd_code.cd_id
and org.org_be_id = cog.cog_org_be_id
and org.org_campusid = cn.cn_campusid
and cg.cg_startdate >= $P{startDate}  
and cg.cg_enddate <= $P{endDate}
and cd.cd_language_id = 3
and cn.cn_language_id = 3
order by coursegroup

問題は、私が太字にした言語IDの行に付属しています

2=Afrikaans
3=English

ご覧のとおり、言語が常に英語になるようにクエリがハードコーディングされているため、ユーザーが別の言語でログインすると、入力コントロールのデータは常に英語になります。

値3フォーム クエリ ( and cd.cd_language_id = 3) を"$P{REPORT_LOCALE}.getDisplayLanguage().equals("English") ? new Integer(3): new Integer(2)" 、レポートの XML では機能するが、入力コントロール クエリでは機能しない に置き換えてみました

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

これらの値はデータベースに保存されるため、入力コントロール値の言語を変更することはできません。入力コントロールは、データベースに保存されているデータが何であれ、データベースからデータを取得するだけです。データベースに他の言語で保存されている場合、入力コントロール値を変更できるのはあなただけです。

JasperReport サーバー レベルで入力値を変更するには:-

 1:- Create one more input control(p_language) to ask the Language
                   (value column (id) and visible column(language desc))

 2:- then create a casecading input control to fetch the value of course group 
     using this query.

   select distinct(cog.cog_id) id, concat(cd.cd_shortdescription, ' 
    (', cn.cn_shortname,' - ', cog.cog_org_be_id, ' - ', cd_code.cd_code, ')')
    coursegroup
    from es_exam_statistics_ft es, cg_classgroup cg, org_organisation org, 
    cn_campusname cn, cog_coursegroup cog, cd_codedescription cd, cd_code
    where es.es_cg_id = cg.cg_id
    and es.es_cog_id = cog.cog_id
    and cog.cog_coursegroup_cd_id = cd.cd_id
    and cd.cd_id = cd_code.cd_id
    and org.org_be_id = cog.cog_org_be_id
    and org.org_campusid = cn.cn_campusid
    and cg.cg_startdate >= $P{startDate}  
    and cg.cg_enddate <= $P{endDate}
    and cd.cd_language_id = $P{p_language}
    and cn.cn_language_id = $P{p_language}
    order by coursegroup
于 2013-03-19T12:00:06.833 に答える