Frage

Ich versuche, ein Feld in einer BDC (Business Data Catalog) Definition zu formatieren, in Sharepoint mit einem Tausendertrennzeichen.

Es erscheint nicht in der BDC XML-Definition möglich zu sein, und nur durch die Sharepoint Designer (!). Die Felder, die ich derzeit habe sind System.Decimal, so dass es als 12.345,98 zeigt, aber ich bin zu wollen als 12,345.98 angezeigt werden soll.

Wissen Sie, ob es durch die BDC XML-Definition erreicht werden kann?

    <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>

Prost

Nick

War es hilfreich?

Lösung

XML ist eine Metasprache nicht zu formatieren oder vorliegenden Informationen beabsichtigt, es beschreibt und speichert andere Vokabulare. In diesem Sinne, ist die Antwort. Nein, Sie können nicht erreichen, was Sie nur mit Hilfe von XML gefragt

Ein empfohlene Weg wäre, die XSLT verwenden Element in der BDC Listenansicht oder BDC Artikelansicht webpart Sie verwenden. Wenn Sie die Daten Trog andere Weise konsumieren können Sie einfach das Ausgabeformat während der Wiedergabe.

Sagen Sie diesen Teil des Codes haben Ihre Dezimal-Typ Anzeige:

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

Sie müssen es mit etwas verkapseln, wie (bezogen auf die Probe in Link):

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

Sie können die XSLT für die webpart im Modify Geteilt WebPart Menü finden, oder, wie Sie gesagt haben, Sharepoint Designer.

Andere Tipps

Scheint möglich Complex Formatting auf TypeDescriptor Elemente. Als ich diese Lösung nicht richtig ein Umfeld zu testen, scheint folgende Definitionen gelten und richtet sich Ihr spezielles Szenario zu sein:

    <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>

Beachten Sie wie in MSDN-Dokumentation, "ComplexFormatting is slow" gewarnt. Vielleicht besser ist mit Stick F.Aquino beantworten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top