01.04.2011, 17:18 | #1 |
Участник
|
Значение 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 |
Moderator
|
Какая версия системы? Если 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 |
Участник
|
Цитата:
Сообщение от Артем 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 |
Чайный пьяница
|
Как то так должен выглядеть код:
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 |
Участник
|
Спасибо огромное, все получилось.
Ваш совет толкнул меня на мысль: просто передать в качестве параметра, имя значений а не значения. Вот так у меня работает: int value = ((Picklist)entity["new_cursul"]).Value; cname = value.ToString(); .............. Неудобство в том что имена в виде 1,2,3,... и тд., не очень информативны, когда "Inter", "Rinter", "Adr", в полне нормально. Как передать имя а не значения? Спасибо! |
|
04.04.2011, 12:21 | #6 |
Moderator
|
Боюсь что никак. Значение пиклиста - это именно цифровой код опции, а не пользовательская метка. Метки могут меняться по требованиям бизнеса, будут отличаться при переключении языков интерфейса и.т.д Цифровое значение должно быть неизменным идентификатором. Если же вам все же нужно получить метку из кода, то вы можете воспользоваться сервисом метаданных IPluginExecutionContext.CreateMetadataService(). С его помощью вы можете получить всю необходимую информацию о любом атрибуте.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
04.04.2011, 12:31 | #7 |
Участник
|
Мда, Вы правы я этот момент упустил. Спасибо.
Тогда добавлю еще один колумн в таблице типа FrendlyName с именем счетчика , и все станет информативно. |
|
04.04.2011, 12:32 | #8 |
Moderator
|
Что у вас за задача?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
04.04.2011, 12:36 | #9 |
Участник
|
|
|
04.04.2011, 14:08 | #10 |
Moderator
|
Боюсь что нет
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
|