Formatierung von BDC Feldern
-
05-07-2019 - |
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
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
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