Question

J'essaie de formater un champ dans une définition BDC (Business Data Catalog), dans SharePoint, avec un séparateur de milliers.

Cela ne semble pas être possible dans la définition XML BDC, et uniquement via le concepteur SharePoint (!). Les champs que j’ai actuellement sont System.Decimal. Il s’affiche donc sous la forme 12345.98, mais je souhaite l’affichage sous la forme 12,345,98.

Savez-vous si cela peut être réalisé à l'aide de la définition XML de BDC?

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

A bientôt

Nick

Était-ce utile?

La solution

XML est un méta-langage non destiné à formater ou à présenter des informations, il décrit et stocke d’autres vocabulaires. Dans cet esprit, la réponse est: Non, vous ne pouvez pas réaliser ce que vous avez demandé en utilisant uniquement XML.

Une méthode recommandée consiste à utiliser le < xsl: décimal de XSLT. -format / > élément dans le WebPart que vous utilisez avec la vue de liste BDC ou la vue d'élément BDC. Si vous utilisez les données par d'autres moyens, vous pouvez facilement formater la sortie lors du rendu.

Supposons que cette partie de code affiche votre type décimal:

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

Vous devez l'encapsuler avec quelque chose comme (basé sur l'exemple dans le lien):

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

Vous pouvez trouver le XSLT pour le composant WebPart dans le menu Modifier le composant WebPart partagé ou, comme vous l'avez dit, à l'aide de SharePoint Designer.

Autres conseils

semble possible de définir Complex Formatting à TypeDescriptor éléments. Comme je ne dispose pas d’un environnement pour tester correctement cette solution, les définitions suivantes semblent être valides et s’adressent à votre scénario particulier:

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

Notez comme indiqué dans la documentation MSDN, "ComplexFormatting is slow". Il est peut-être préférable de s'en tenir à la réponse de F.Aquino

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top