1

ActiveReport (*.rdlx ファイル) を使用して作成された膨大な数のページ レポートがあり、ASP.NET MVC Web アプリケーションからそれらを使用しています。

すべてのキャプションとその他のものは、最初は英語で作成されました

そこに多言語サポートを追加する必要があるため、何らかの形ですべての既存のテキストをリソース ファイルに挿入し、翻訳を追加できるようにする必要があります。

各レポート フィールドに移動して手動でリソース ファイルに抽出することなく、このタスクをすばやく達成する方法はありますか? ドキュメントには、Language プロパティを変更すると、リソース ファイルが作成されると記載されていますが、XML レポートでは機能しないようです。または、トリックがあるはずです。

コード ビハインドで設計されたレポートの場合、Windows フォームを作成する場合とほとんど同じようにリソース ファイルが作成されますが、XML レポートでこれを行う方法がわかりません。

4

2 に答える 2

3

ページ レポートはローカリゼーションをサポートしています。ただし、リソース ファイルではそうしません。

これは、ActiveReports 7 によるローカライゼーションに関するページの 1 つの文でさりげなく言及されています。

ページ レポートでのローカライズされた値の設定は、セクション レポートでの設定と同じです。レポートのLanguageプロパティを変更してから、新しいテキスト ボックスの値を設定するだけです。レポートの実行時に、テキスト ボックスの適切な値が使用されます。

上で述べたように、これは個別の .resx ファイルを生成しません。代わりに、結果の .rdlx を調べるdd:LocalizationResourcesと、レポート要素の言語設定と新しい値を指定するカスタム要素が作成されていることがわかります。

于 2013-08-17T15:42:00.817 に答える
1

ドキュメントとコード ビハインド レポートで参照している Localize プロパティは、コード ベースの「セクション レイアウト」レポート用ですが、XML ベースの「ページ レイアウト」レポートでは機能しません(生成されたコードを見るとレポートの場合、デザイナーはレポートをローカライズするための一連のコードを生成しているだけであることがわかります)。

コード ビハインド レポートはカスタム コードをサポートするか、別の DLL への参照を追加できるため、簡単な関数を記述してキャプションをローカライズできます。これを .rdl レポート用にローカライズする良い例がここにあります。ActiveReports の .rdlx ファイルでもまったく同じアプローチを使用できます。

レポートをローカライズ可能にするための初期構成中に、各静的文字列を呼び出しに手動で変更するかCode.LocalizedValue、単純なスクリプトを記述して各//Textbox/Value 要素を検索し、同様の呼び出しに置き換えることができます。xpath と正規表現を組み合わせた単純なスクリプトは、レポートの初期構成を自動化するのに役立ちます。レポート内のテキスト ボックス値以外のもの (レポート パラメーター、ラベル/ブックマークなど) をローカライズするには、テキスト ボックス値とは異なる要素のテキストを置き換える必要がありますが、概念は同じです。

もちろん、レポート内の静的文字列をローカライズしていると仮定しています。データベースの値をローカライズしたい場合は、別の方法で行う必要があります (ヘルプが必要な場合はコメントしてください。説明します)。

于 2013-08-09T04:17:29.283 に答える