AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.04.2011, 17:18   #1  
netmstnet is offline
netmstnet
Участник
 
14 / 10 (1) +
Регистрация: 08.06.2009
? Значение picklist из plugin?
Подскажите пожалуйста, как узнать какое значение в picklist было выбрано?
есть picklist:
mypicklist :
A=1
B=2
и условие типа:

if (mypicklist.value=1)
{
clas="A"
}

else
{
clas="B"
}

Спасибо!!!
П.С.: сильно не пинайте, 3 дня только в плагинах .
Старый 01.04.2011, 17:47   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Какая версия системы? Если 4.0 то можно использовать что-то вроде:

Код:
public void Execute(IPluginExecutionContext context)
{
   DynamicEntity entity = null;

   // Check if the input parameters property bag contains a target
   // of the create operation and that target is of type DynamicEntity.
   if (context.InputParameters.Properties.Contains("Target") &&
      context.InputParameters.Properties["Target"] is DynamicEntity)
{
      // Obtain the target business entity from the input parmameters.
      entity = (DynamicEntity)context.InputParameters.Properties["Target"];

      ***
}
}
Получив ваш объект можете спрашивать у него нужные свойства и делать проверки.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
За это сообщение автора поблагодарили: netmstnet (1).
Старый 01.04.2011, 18:05   #3  
netmstnet is offline
netmstnet
Участник
 
14 / 10 (1) +
Регистрация: 08.06.2009
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Какая версия системы? Если 4.0 то можно использовать что-то вроде:

Код:
public void Execute(IPluginExecutionContext context)
{
   DynamicEntity entity = null;

   // Check if the input parameters property bag contains a target
   // of the create operation and that target is of type DynamicEntity.
   if (context.InputParameters.Properties.Contains("Target") &&
      context.InputParameters.Properties["Target"] is DynamicEntity)
{
      // Obtain the target business entity from the input parmameters.
      entity = (DynamicEntity)context.InputParameters.Properties["Target"];

      ***
}
}
Получив ваш объект можете спрашивать у него нужные свойства и делать проверки.
Спасибо! Если не трудно, пожалуйста уточните, вот мой код:

public void Execute(IPluginExecutionContext context)
{
DynamicEntity entity = null;


if (context.InputParameters.Properties.Contains("Target") &&
context.InputParameters.Properties["Target"] is DynamicEntity)
{
entity = (DynamicEntity)context.InputParameters.Properties["Target"];
if (entity.Name != "new_certificat") { return; }

}
else
{
return;
}
{
// на форме "new_certificat" есть picklist "new_cursul" со значениями : (Inter=1; Rinter=2)
}
Старый 01.04.2011, 18:26   #4  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Как то так должен выглядеть код:

X++:
if (!entity.Properties.Contains("new_cursul"))
return;

int value = ((Picklist)entity["new_cursul"]).Value;

//обработка вашей логики
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: netmstnet (1).
Старый 04.04.2011, 11:43   #5  
netmstnet is offline
netmstnet
Участник
 
14 / 10 (1) +
Регистрация: 08.06.2009
Спасибо огромное, все получилось.
Ваш совет толкнул меня на мысль: просто передать в качестве параметра, имя значений а не значения.

Вот так у меня работает:
int value = ((Picklist)entity["new_cursul"]).Value;
cname = value.ToString();
..............

Неудобство в том что имена в виде 1,2,3,... и тд., не очень информативны, когда "Inter", "Rinter", "Adr", в полне нормально.

Как передать имя а не значения?
Спасибо!
Старый 04.04.2011, 12:21   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Боюсь что никак. Значение пиклиста - это именно цифровой код опции, а не пользовательская метка. Метки могут меняться по требованиям бизнеса, будут отличаться при переключении языков интерфейса и.т.д Цифровое значение должно быть неизменным идентификатором. Если же вам все же нужно получить метку из кода, то вы можете воспользоваться сервисом метаданных IPluginExecutionContext.CreateMetadataService(). С его помощью вы можете получить всю необходимую информацию о любом атрибуте.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 04.04.2011, 12:31   #7  
netmstnet is offline
netmstnet
Участник
 
14 / 10 (1) +
Регистрация: 08.06.2009
Мда, Вы правы я этот момент упустил. Спасибо.
Тогда добавлю еще один колумн в таблице типа FrendlyName с именем счетчика , и все станет информативно.
Старый 04.04.2011, 12:32   #8  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Что у вас за задача?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 04.04.2011, 12:36   #9  
netmstnet is offline
netmstnet
Участник
 
14 / 10 (1) +
Регистрация: 08.06.2009
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Что у вас за задача?
Отсюда:
Сложный автоинкремент.

У меня все получилось. Если кому интересно, могу выложить сурсы.
Старый 04.04.2011, 14:08   #10  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Боюсь что нет
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM Programmer: Get Picklist Value By Picklist Name Blog bot Dynamics CRM: Blogs 1 05.02.2010 13:17
haditeo: Is it possible to register different event handlers in only one assembly to be registered in Dynamics CRM Plugin ? Blog bot Dynamics CRM: Blogs 0 13.08.2009 15:05
Microsoft Dynamics CRM Team Blog: New Dependent Picklist Sample Blog bot Dynamics CRM: Blogs 0 09.06.2009 04:06
Microsoft Dynamics CRM Team Blog: CRM 4.0: Checkbox style Multi-Select Picklist Blog bot Dynamics CRM: Blogs 0 01.04.2009 05:07
Jim Wang: CRM 4.0: Checkbox style Multi-Select Picklist Blog bot Dynamics CRM: Blogs 0 11.02.2009 06:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:48.