using System;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Metadata;
/// <summary>
/// 查询CRM公共选择框
/// </summary>
public class OptionSetHelper
{
public void Retrieve(IOrganizationService service)
{
//构造Request对象
RetrieveAllOptionSetsRequest request = new RetrieveAllOptionSetsRequest();
RetrieveAllOptionSetsResponse response = (RetrieveAllOptionSetsResponse)service.Execute(request);
if (response.OptionSetMetadata != null && response.OptionSetMetadata.Length > 0)
{
foreach(OptionSetMetadataBase metadataBase in response.OptionSetMetadata)
{
if (metadataBase.OptionSetType != null)
{
if ((OptionSetType)metadataBase.OptionSetType == OptionSetType.Picklist)
{
#region
//如果是下拉框
OptionSetMetadata optionSetMetadata = (OptionSetMetadata)metadataBase;
//下拉框的中文名称
string name = optionSetMetadata.DisplayName.LocalizedLabels.Count > 0 ?
optionSetMetadata.DisplayName.LocalizedLabels[0].Label : string.Empty;
System.Console.WriteLine("OptionSetDisplayName: " + name);
//遍历下面的每一个小项
foreach (OptionMetadata option in optionSetMetadata.Options)
{
string v = option.Value.ToString();
string n = option.Label.UserLocalizedLabel.Label.ToString();
System.Console.WriteLine("name: " + n + ",value: " + v);
}
#endregion
}
else if ((OptionSetType)metadataBase.OptionSetType == OptionSetType.Boolean)
{
//Boolean
BooleanOptionSetMetadata optionSetMetadata = (BooleanOptionSetMetadata)metadataBase;
//字段的中文名称
string name = optionSetMetadata.DisplayName.LocalizedLabels.Count > 0 ?
optionSetMetadata.DisplayName.LocalizedLabels[0].Label : string.Empty;
System.Console.WriteLine("OptionSetDisplayName: " + name);
//True
System.Console.WriteLine("TrueOption");
System.Console.WriteLine("OptionValue:" + optionSetMetadata.TrueOption.Value.ToString());
System.Console.WriteLine("OptionDescription:" + optionSetMetadata.TrueOption.Label.UserLocalizedLabel.Label.ToString());
//False
System.Console.WriteLine("TrueOption");
System.Console.WriteLine("OptionValue:" + optionSetMetadata.FalseOption.Value.ToString());
System.Console.WriteLine("OptionDescription:" + optionSetMetadata.FalseOption.Label.UserLocalizedLabel.Label.ToString());
}
}
}
}
}
}