سؤال
وأنا أحاول أن تنسيق حقل في (كتالوج بيانات العمل) BDC تعريف، في SharePoint، مع ألف الفاصل.
ولا يبدو ليكون من الممكن في تعريف XML BDC، وممكن إلا من خلال مصمم شير (!). الحقول أنا عندي في الوقت الحاضر هي System.Decimal، لذلك فإنه يعرض كما 12345.98، ولكن أنا يريد أن يعرض كما 12،345.98.
هل تعرف إذا كان يمكن أن يتحقق من خلال XML تعريف 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>
وهتاف
ونيك
المحلول
وXML هو لغة الفوقية لا تهدف إلى تنسيق أو تقديم المعلومات، فهو يصف ومخازن المفردات الأخرى. أخذ ذلك في الاعتبار، فإن الجواب هو: لا، لا يمكنك تحقيق ما طلبتم باستخدام XML فقط
وهناك طريقة الموصى بها سيكون لاستخدام XSLT
ويقول لديك هذا الجزء من التعليمات البرمجية عرض نوع العشري الخاص بك:
<xsl:value-of select="$ColName_0" />
وتحتاج لتغليف بشيء مثل (على أساس العينة في الوصلة):
<xsl:value-of select="format-number($ColName_0, '#.###,00', 'euro')"/>
ويمكنك العثور على XSLT لجزء الويب في القائمة تعديل جزء ويب المشتركة، أو كما قال لك، باستخدام SharePoint Designer.
نصائح أخرى
يبدو ممكن لتحديد Complex Formatting
على الموقع 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 الإجابة