我正在尝试在 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 <xsl:decimal-format />您正在使用的 BDC ListView 或 BDC 项目 View Web 部件中的元素。如果您通过其他方式使用数据,您可以在渲染期间轻松格式化输出。
假设您有这部分代码显示您的十进制类型:
<xsl:value-of select="$ColName_0" />
您需要用类似的东西封装它(基于链接中的示例):
<xsl:value-of select="format-number($ColName_0, '#.###,00', 'euro')"/>
您可以在“修改共享 Web 部件”菜单中找到该 Web 部件的 XSLT,或者如您所说,使用 SharePoint Designer。
关于sharepoint - BDC 字段的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1804510/