crm使用soap创建下拉框

//C#代码
//#region OptionMetadataCollection
//OptionMetadataCollection opCollection = new OptionMetadataCollection();
//opCollection.Add(new OptionMetadata(new Label("2000年", languageCode), 2000));
//opCollection.Add(new OptionMetadata(new Label("2001年", languageCode), 2001));
//opCollection.Add(new OptionMetadata(new Label("2002年", languageCode), 2002));
//opCollection.Add(new OptionMetadata(new Label("2003年", languageCode), 2003));
//opCollection.Add(new OptionMetadata(new Label("2004年", languageCode), 2004));
//opCollection.Add(new OptionMetadata(new Label("2005年", languageCode), 2005));
//#endregion

//OptionSetMetadata optionSet = new OptionSetMetadata(opCollection);
//optionSet.Name = "new_year";
//optionSet.Description = new Label("年份", languageCode);
//optionSet.DisplayName = new Label("年份", languageCode);
//optionSet.IsGlobal = true;
//optionSet.OptionSetType = OptionSetType.Picklist;

//CreateOptionSetRequest request = new CreateOptionSetRequest();
//request.OptionSet = optionSet;
//CreateOptionSetResponse response = (CreateOptionSetResponse)service.Execute(request);

//例子
function demo() {
    //字段名称
    var attrName = "new_year";
    //标签
    var labelName = "年份";
    //语言编码
    var code = 2052;
    //集合
    var dataArray = [];
    dataArray.push(getOptionItem("2000年", 2000));
    dataArray.push(getOptionItem("2001年", 2001));
    dataArray.push(getOptionItem("2002年", 2002));
    dataArray.push(getOptionItem("2003年", 2003));
    dataArray.push(getOptionItem("2004年", 2004));
    dataArray.push(getOptionItem("2005年", 2005));
    dataArray.push(getOptionItem("2006年", 2006));

    createOption(attrName, labelName, code, dataArray);
   
}

function getOptionItem(name, value) {
    var item = new Object();
    item.name = name;
    item.value = value;
    return item;
}


function createOption(attrName,labelName,code,dataArray) {
    var request = "<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>";
    request += "<s:Body>";
    request += "<Execute xmlns='http://schemas.microsoft.com/xrm/2011/Contracts/Services' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>";
    request += "<request i:type='a:CreateOptionSetRequest' xmlns:a='http://schemas.microsoft.com/xrm/2011/Contracts'>";
    request += "<a:Parameters xmlns:b='http://schemas.datacontract.org/2004/07/System.Collections.Generic'>";
    request += "<a:KeyValuePairOfstringanyType>";
    request += "<b:key>OptionSet</b:key>";
    request += "<b:value i:type='c:OptionSetMetadata' xmlns:c='http://schemas.microsoft.com/xrm/2011/Metadata'>";
    request += "<c:MetadataId i:nil='true' />";
    request += "<c:HasChanged i:nil='true' />";
    request += "<c:Description>";
    request += "<a:LocalizedLabels>";
    request += "<a:LocalizedLabel>";
    request += "<c:MetadataId i:nil='true' />";
    request += "<c:HasChanged i:nil='true' />";
    request += "<a:IsManaged i:nil='true' />";
    request += "<a:Label>"+ labelName +"</a:Label>";
    request += "<a:LanguageCode>2052</a:LanguageCode>";
    request += "</a:LocalizedLabel>";
    request += "</a:LocalizedLabels>";
    request += "<a:UserLocalizedLabel i:nil='true' />";
    request += "</c:Description>";
    request += "<c:DisplayName>";
    request += "<a:LocalizedLabels>";
    request += "<a:LocalizedLabel>";
    request += "<c:MetadataId i:nil='true' />";
    request += "<c:HasChanged i:nil='true' />";
    request += "<a:IsManaged i:nil='true' />";
    request += "<a:Label>"+ labelName +"</a:Label>";
    request += "<a:LanguageCode>2052</a:LanguageCode>";
    request += "</a:LocalizedLabel>";
    request += "</a:LocalizedLabels>";
    request += "<a:UserLocalizedLabel i:nil='true' />";
    request += " </c:DisplayName>";
    request += "<c:IsCustomOptionSet i:nil='true' />";
    request += "<c:IsCustomizable i:nil='true' />";
    request += "<c:IsGlobal>true</c:IsGlobal>";
    request += "<c:IsManaged i:nil='true' />";
    request += "<c:Name>"+ attrName +"</c:Name>";
    request += "<c:OptionSetType>Picklist</c:OptionSetType>";
    request += "<c:Options> ";
    //添加具体的每一小项
    if (dataArray != null && dataArray.length > 0) {
        var len = dataArray.length;
        for (var i = 0; i < len; i++) {
            var item = dataArray[i];
            request += getItem(item.name, item.value, code);
        }
    }
    request += "</c:Options>";
    request += "</b:value>";
    request += "</a:KeyValuePairOfstringanyType>";
    request += "</a:Parameters>";
    request += "<a:RequestId i:nil='true' />";
    request += "<a:RequestName>CreateOptionSet</a:RequestName>";
    request += "</request>";
    request += "</Execute>";
    request += "</s:Body>";
    request += "</s:Envelope>";

    execSoap(request);
}

function getItem(name,value,code) {
    var request = "<c:OptionMetadata>";
    request += "<c:MetadataId i:nil='true' />";
    request += "<c:HasChanged i:nil='true' />";
    request += "<c:Description i:nil='true' />";
    request += "<a:IsManaged i:nil='true' />";
    request += "<c:Label>";
    request += "<a:LocalizedLabels>";
    request += "<a:LocalizedLabel>";
    request += "<c:MetadataId i:nil='true' />";
    request += "<c:HasChanged i:nil='true' />";
    request += "<a:IsManaged i:nil='true' />";
    request += "<a:Label>" + name + "</a:Label>";
    request += "<a:LanguageCode>"+ code +"</a:LanguageCode>";
    request += "</a:LocalizedLabel>";
    request += "</a:LocalizedLabels>";
    request += "<a:UserLocalizedLabel i:nil='true' />";
    request += "</c:Label>";
    request += "<c:Value>"+ value +"</c:Value>";
    request += "</c:OptionMetadata>";
    return request;
}


//获取服务地址
function getWebUrl() {
    var serverUrl = Xrm.Page.context.getServerUrl();
    if (serverUrl.match(/\/$/)) {
        serverUrl = serverUrl.substring(0, serverUrl.length - 1);
    }
    return serverUrl + "/XRMServices/2011/Organization.svc/web";
}
//执行请求
function execSoap(request) {
    var ajaxRequest = new XMLHttpRequest();
    ajaxRequest.open("POST", getWebUrl(), true)
    ajaxRequest.setRequestHeader("Accept", "application/xml, text/xml, */*");
    ajaxRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    ajaxRequest.setRequestHeader("SOAPAction", "
http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute");
    ajaxRequest.send(request);
}

使用VBA可以轻松地创建联级下拉框。联级下拉框是一种特殊的下拉框,其选项的内容会根据前一个下拉框的选择而动态变化。 创建联级下拉框的基本步骤如下: 1. 打开Excel,按下“ALT + F11”快捷键打开VBA编辑器。 2. 在VBA编辑器中,选择要创建联级下拉框的工作表,在工具栏上点击“插入”-“用户窗体”。 3. 在用户窗体设计器中,添加两个组合框控件,分别表示两个下拉框,称为ComboBox1和ComboBox2。 4. 在VBA代码窗口中,编写以下代码: ```vba Private Sub ComboBox1_Change() ComboBox2.Clear ' 清空下拉框2的选项 Select Case ComboBox1.Value ' 根据下拉框1的选择,添加不同的选项到下拉框2 Case "选项1" ComboBox2.AddItem "选项1-1" ComboBox2.AddItem "选项1-2" Case "选项2" ComboBox2.AddItem "选项2-1" ComboBox2.AddItem "选项2-2" Case "选项3" ComboBox2.AddItem "选项3-1" ComboBox2.AddItem "选项3-2" End Select End Sub ``` 5. 在ComboBox1的“Change”事件中,根据ComboBox1的选项,添加相应的选项到ComboBox2。根据需求,可以使用“Select Case”语句来判断ComboBox1的选择。 通过以上步骤,我们就可以创建一个简单的联级下拉框。当ComboBox1的选择发生改变时,ComboBox2的选项会实时变化。 当需要创建多个联级下拉框时,只需重复以上步骤即可。在ComboBox1的“Change”事件中,根据具体的需求添加不同的选项到相应的ComboBox。 使用VBA创建联级下拉框可以将复杂的数据选项分门别类展示,提高数据筛选的效率和准确性,对于数据处理和数据分析非常有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值