2

レポート サブスクリプションを管理する、Silverlight に基づくカスタム ビルド アプリケーションがあります。問題は、新しいサブスクリプションを追加するたびに、Subscriptions テーブルの Locale 値が「en-US」に設定されることです。

Report Manager でサブスクリプションを直接作成する場合、Locale フィールドの値はブラウザーの言語設定によって決まります (これはまさに私たちが達成したいことです)。

CreateSubscription メソッドを呼び出す前に Locale フィールドを設定する方法が見つかりません。これは、Locale パラメーターを受け入れないようであり、デフォルトで en-US になっているためです (これはサーバー設定であると思います)。

SSRS でサブスクリプションを作成するときにロケールを設定する方法を知っていますか?

4

2 に答える 2

0

SOAP API 経由ではまだ試していませんが、Accept-Language ヘッダーを設定することはできないのでしょうか? レポートをさまざまな言語でレンダリングするときにこれを行っています。各レポートの言語は に設定されてい=User!Languageます。WCF を使用してレポート サービスにアクセスする場合は、次のことができます (VB.NET の例)。

Using oReportingService As New ReportingService2010SoapClient
    oReportingService.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation

    Using oScope As OperationContextScope = New OperationContextScope(oReportingService.InnerChannel)
      If i_oSubscription.Language IsNot Nothing Then
        ' Accept-Language
        Dim oHttpRequestProperty As New HttpRequestMessageProperty
        oHttpRequestProperty.Headers.Add(HttpRequestHeader.AcceptLanguage, i_oSubscription.Language)
        OperationContext.Current.OutgoingMessageProperties(HttpRequestMessageProperty.Name) = oHttpRequestProperty
      End If

      oReportingService.CreateSubscription(New ReportingService2010.TrustedUserHeader(), i_oSubscription.Path, oExtensionSettings, i_oSubscription.Description, "TimedSubscription", sMatchData, lstParameters.ToArray(), sSubscriptionId)

      Return sSubscriptionId
    End Using
  End Using

編集:これは私が自分でやっている方法であり、うまくいくようです:)

i_oSubscription次のようなプロパティを持つ単純なコンテナですDescription

注:これはほとんどの場合うまくいくようです。ただし、MonthlyRecurrence の「Days」フィールドは、ロケールに依存してフォーマットされます ( https://stackoverflow.com/questions/16011008/ssrs-monthlyrecurrence-formatting-for-different-languagesを参照) 。

于 2013-04-15T07:09:42.853 に答える