3

現在、SQL Server 2008 R2 を使用しています。

私の Web サイトには、パラメーターが表示されるコンテナーを含め、レポートがそのまま表示されます (クライアントはその方​​法を好みます)。

ただし、私の Web サイト ソリューションにはローカリゼーション (ポルトガル語、英語、スペイン語) が含まれています。

言語ごとに 1 つのパラメーターを作成してパラメーターを翻訳し、選択したパラメーターに従ってそれらを表示しようとしました。SSRS 2008 では機能しませんでした。プロンプトの表示プロパティを見つける方法がわからないためです。

誰かが解決策を知っていますか...または、SQL Server 2012にパラメーターのプロンプトまたは条件付き可視性を変換するための解決策があるか?

ありがとう。

4

3 に答える 3

0

これまでに見つけた唯一の解決策 (SSRS 2008、2008R2、2010、2012) は、DRY 命令を破り、レポート名の一部として言語コードを使用してレポートを複製することです (例: MyReport_sp.rdl、MyReport_de.rdl など)。 )、クライアント要求と SSRS インスタンスの間に Web サービスを配置します。次に、Web サービスは、クライアントの要求で渡された「Culture」パラメーターに基づいて、正しいレポートに要求を送信する必要があります。

これは良い解決策ではありませんが、少なくとも Culture パラメータはレポートの残りの部分をローカライズする際にも使用されます。将来、MS が迅速なローカライズ機能を追加し、レポートの名前を MyReport.rdl に変更して、すべてを実際にローカライズできるようになることを期待しています。うーん、なんというコンセプト…

于 2013-04-19T01:48:55.087 に答える
0

別の回避策として、パラメーターのプロンプトに数値を入力し、「クエリから値を取得」を使用するか、ラベル式で switch ステートメントを含む式ビルダーを使用して、各パラメーターのラベルの前にローカライズされたバージョンを付けます。

クエリオプションから値を取得する場合、クエリに翻訳されたバージョンがある場合、次のようなデータセットがあります。

SELECT ParamLabel, ParamValue
FROM MyLocalisedParameters
WHERE UserLanguage = @Language

または、そうでない場合は次のようにします。

SELECT
    CASE @Language
        WHEN 'pt-PT' THEN 'Selecione Departamento: ' + ParamLabel
        WHEN 'es-ES' THEN 'Seleccionar Departamento: ' + ParamLabel
        ELSE 'Select Department: '  + ParamLabel
    END AS ParamLabel
    , ParamValue
FROM MyParametersTable

どちらの場合も、Globals!Language を作成して @Language というパラメーターに割り当てます。

または、ハードコーディングされた値のセットに式ビルダーを使用する場合は、次のようになります。

ここに画像の説明を入力

いずれにせよ、最終結果は次のようになります。

ここに画像の説明を入力

完璧ではありませんが、同じレポートの複数のコピーよりも機能し、保守が容易です。見た目を少しすっきりさせたい場合は、パラメータ プロンプトをパラメータ リストの 1 つのエントリとして設定し、デフォルト値に設定して、すべての行で繰り返しが発生しないようにします。

于 2014-01-02T17:09:51.387 に答える