質問

私は、SharePointでBDC(ビジネスデータカタログ)定義のフィールドを千単位のセパレータでフォーマットしようとしています。

BDC XML定義では可能ではないようで、SharePoint Designer(!)でのみ可能です。現在取得しているフィールドはSystem.Decimalであるため、12345.98と表示されますが、12,345.98と表示されるようにしたいです。

BDC XML定義によって達成できるかどうか知っていますか?

    <Parameter Direction="Return" Name="@ContactTotals">
      <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">
        <TypeDescriptors>
          <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">
            <TypeDescriptors>
              <TypeDescriptor TypeName="System.Int32" IdentifierName="dim_claims_key" Name="dim_claims_key" />
              <TypeDescriptor TypeName="System.Decimal" Name="total_outstanding" DefaultDisplayName="Total Outstanding (USD)" />
              <TypeDescriptor TypeName="System.Decimal" Name="total_paid" DefaultDisplayName="Total Paid (USD)" />
              <TypeDescriptor TypeName="System.Decimal" Name="total_incurred" DefaultDisplayName="Total Incurred (USD)" />
            </TypeDescriptors>
          </TypeDescriptor>
        </TypeDescriptors>
      </TypeDescriptor>
    </Parameter>
  </Parameters>

乾杯

ニック

役に立ちましたか?

解決

XMLは、情報をフォーマットまたは表示することを意図していないメタ言語であり、他の語彙を記述および保存します。それを念頭に置いて、答えは次のとおりです。いいえ、XMLのみを使用して、要求したことを達成することはできません。

推奨される方法は、XSLT <!> lt; xsl:decimalを使用することです。使用しているBDCリストビューまたはBDCアイテムビューWebパーツの-format / <!> gt; 要素。他の方法でデータを使用している場合、レンダリング中に出力を簡単にフォーマットできます。

10進数のタイプを表示するコードのこの部分があるとします:

<xsl:value-of select="$ColName_0" />

(リンクのサンプルに基づいて)次のようにカプセル化する必要があります。

<xsl:value-of select="format-number($ColName_0, '#.###,00', 'euro')"/>

[共有Webパーツの変更]メニューでWebパーツのXSLTを見つけることができます。または、前述のとおり、SharePoint Designerを使用します。

他のヒント

Complex Formatting = "http://msdn.microsoft.com/en-us/library/ms543392.aspx" rel = "nofollow noreferrer"> TypeDescriptor 要素。このソリューションを適切にテストする環境がないため、次の定義が有効であるようで、特定のシナリオに対応しています。

    <Parameter Direction="Return" Name="@ContactTotals">
      <TypeDescriptor TypeName="System.Data.IDataReader, ..."
                      IsCollection="true" Name="Reader">

        <!-- note this -->
        <Properties>
            <Property Name="ComplexFormatting"
                      Type="System.String" />
        </Properties>

        <TypeDescriptors>
          <TypeDescriptor TypeName="System.Data.IDataRecord, ..." Name="Record">
            <TypeDescriptors>
              <TypeDescriptor TypeName="System.Int32"
                              IdentifierName="dim_claims_key"
                              Name="dim_claims_key" />
              <TypeDescriptor TypeName="System.Decimal"
                              Name="total_outstanding"
                              DefaultDisplayName="Total Outstanding (USD)" />

                  <!-- note this -->
                  <Properties>
                      <Property Name="FormatString"
                                Type="System.String">{0:#.###,00}</Property>
                  </Properties>
              </TypeDescriptor>
              ...
            </TypeDescriptors>
          </TypeDescriptor>
        </TypeDescriptors>
      </TypeDescriptor>
    </Parameter>
  </Parameters>

MSDNのドキュメントで警告されているように、"ComplexFormatting is slow" F.Aquinoの回答

に固執する方が良いかもしれません
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top