Dynamics crm 无法使用REST javascript检索货币属性

Dynamics crm 无法使用REST javascript检索货币属性,dynamics-crm,dynamics-crm-2011,Dynamics Crm,Dynamics Crm 2011,我正在为我的自定义实体调整位于此处的REST示例 它检索并显示除money之外的所有属性的表。也就是说,如果我请求的属性不包括money类型的属性,则表将显示该属性。添加货币属性后,将不显示任何内容。下面是我的自定义html。我使用的是示例vs解决方案中包含的相同SDK.OptionSetSample.js <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/

我正在为我的自定义实体调整位于此处的REST示例

它检索并显示除money之外的所有属性的表。也就是说,如果我请求的属性不包括money类型的属性,则表将显示该属性。添加货币属性后,将不显示任何内容。下面是我的自定义html。我使用的是示例vs解决方案中包含的相同SDK.OptionSetSample.js

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=9" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Contacts Page</title>
    <script src="../../ClientGlobalContext.js.aspx" type="text/javascript"></script>
    <script src="Scripts/json2.js" type="text/javascript"></script>
    <script src="Scripts/SDK.OptionSetSample.js" type="text/javascript"></script>
    <script src="Scripts/SDK.MetaData.js" type="text/javascript"></script>
    <script src="Scripts/SDK.REST.js" type="text/javascript"></script>
    <link href="Styles/OptionSetSample.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">

        var attributes = [
        "new_revenuesportspartnershipsId",
   "new_name",
   "new_PledgeorCash",
   "new_Designation",
   "new_DonorStatus"
   , "new_FY2011"
];

        var ContactListTableData = {
            Id: "ContactList",
            BodyId: "ContactListBody",
            CheckboxColumn: true,
            SearchFieldId: "SearchString",
            CreateButtonId: "createContact",
            DeleteButtonId: "deleteSelectedRecords",
            Columns: [
  { Name: "new_name" },
  { Name: "new_PledgeorCash" },
  { Name: "new_Designation" },
    { Name: "new_DonorStatus" }
    ,{ Name: "new_FY2011" }
  ]
        };

        var CurrentContactForm = {
            Id: "CurrentContact",
            SaveButtonId: "SaveCurrentContact",
            CloseFormControlId: "closeFormSpan"
        };



        window.onload = function () {
            SDK.OptionSetSample.Entity = "new_revenuesportspartnerships";
            SDK.OptionSetSample.Columnset = attributes;
            SDK.OptionSetSample.PrimaryIdAttribute = "new_revenuesportspartnershipsId";
            SDK.OptionSetSample.TextSearchAttribute = "new_name";
            SDK.OptionSetSample.PrimaryAttribute = "new_name";
            SDK.OptionSetSample.TableData = ContactListTableData,
            SDK.OptionSetSample.FormData = CurrentContactForm;


            //Get the Attribute metadata
            SDK.OptionSetSample.getAttributeMetadataCollection.Execute();

        }

    </script>
</head>
<body>
    <ul id="message">
    </ul>
    <div>
        <button id="createContact">
            Create</button>
        <button id="deleteSelectedRecords" disabled="disabled">
            Delete Selected Contacts</button>
        <span id="searchBy">Search by Full Name :</span><input id="SearchString" type="text" />
        <table id="ContactList" class="RecordList" />
    </div>
    <div id="CurrentContact" class="editForm">
        <span id="closeFormSpan" class="closeFormSpan">X</span>
        <!--  Only Boolean, Picklist, Status, and String attribute types are supported in this sample.-->
        <div id="new_nameField">
        </div>
        <div id="new_PledgeorCashField">
        </div>
        <button id="SaveCurrentContact" disabled="disabled">
            Save</button>
    </div>
</body>
</html>

联系人页面
变量属性=[
“新收入体育俱乐部”,
“新名称”,
“新抵押贷款”,
“新指定”,
“新捐助国”
,“2011财年新课程”
];
var ContactListTableData={
Id:“联系人列表”,
BodyId:“ContactListBody”,
CheckboxColumn:true,
SearchFieldId:“SearchString”,
CreateButtonId:“createContact”,
DeleteButtonId:“deleteSelectedRecords”,
栏目:[
{Name:“新名称”},
{名称:“新抵押贷款”},
{名称:“新名称”},
{名称:“新捐助国”}
,{名称:“2011财年新增”}
]
};
var CurrentContactForm={
Id:“当前联系人”,
SaveButtonId:“SaveCurrentContact”,
CloseFormControlId:“closeFormSpan”
};
window.onload=函数(){
SDK.options setsample.Entity=“新建收入体育项目”;
SDK.OptionSetSample.Columnset=属性;
SDK.options setsample.primarydataAttribute=“new_revenuesportspartnershipsId”;
SDK.OptionSetSample.TextSearchAttribute=“新名称”;
SDK.OptionSetSample.PrimaryAttribute=“新名称”;
SDK.OptionSetSample.TableData=联系人列表TableData,
SDK.OptionSetSample.FormData=CurrentContactForm;
//获取属性元数据
OptionSetSample.getAttributeMetadataCollection.Execute();
}
创造 删除所选联系人 按全名搜索: X 拯救
示例脚本看起来是这样的,因为它已经有了一个案例:

case "Money":
case "Integer":
 var Value = record[AttributeMetadata.SchemaName];
 record[AttributeMetadata.SchemaName] = {};
 record[AttributeMetadata.SchemaName].Value = Value;
 record[AttributeMetadata.SchemaName].isDirty = false;
在上述两种情况下,Integer可以正常工作,因为它是一种基本类型,因此会将实际数值返回到
记录[AttributeMetadata.SchemaName].value

但是,货币类型是一个复杂的对象,因此它被分配给同一个变量,但实际上不会给您它仅代表对象的值,这就是它不显示的原因。实际上,您还需要在末尾添加一个
.value
,以检索它所表示的数值

将开关切换到以下位置:

case "Integer":
 var Value = record[AttributeMetadata.SchemaName];
 record[AttributeMetadata.SchemaName] = {};
 record[AttributeMetadata.SchemaName].Value = Value;
 record[AttributeMetadata.SchemaName].isDirty = false;
case "Money":
 var Value = record[AttributeMetadata.SchemaName];
 record[AttributeMetadata.SchemaName] = {};
 record[AttributeMetadata.SchemaName].Value = Value.value;
 record[AttributeMetadata.SchemaName].isDirty = false;
或者,当您将money属性放入表中时,请确保显示的值是
record[AttributeMetadata.SchemaName].value.value

我认为它是
value
的小写,可能是
value


希望这是有意义的。

我想我需要在processRetrievedRecordProperties函数中的case“Money”开关中添加一些逻辑。只是一种预感,是价值,价值。谢谢你,克里斯!