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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.06.2013, 05:14   #1  
Blog bot is offline
Blog bot
Участник
 
25,475 / 846 (79) +++++++
Регистрация: 28.10.2006
Dynamics AXBR: AX2012 – Criando propriedades a partir de um texto selecionado
Источник: http://feedproxy.google.com/~r/daxbr/~3/kLZ55KcNcjI/
==============

Caros,
Frequentemente temos que criar métodos do tipo ‘parm’ no DAX via X++ e toda vez é sempre a mesma coisa, criamos a classe, as variáveis e etc… O próximo passo é criar os métodos para que essas propriedades possam ser atribuídas / lidas, e hoje, ao presenciar essa situação novamente eu resolvi criar um script que gera pra mim os métodos dentro da minha classe a partir do Class Declaration. Vamos ao exemplo.

A primeira coisa a se fazer é criar o método que irá tratar o meu texto selecionado, para isso:

Na classe EditorScripts crie um novo método com a estrutura:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546public void template_method_createAllParms(Editor editor){ Source template = "public %1 parm%3(%1 _%2 = %2)\r\n{\r\n ;\r\n %2 = _%2;\r\n return %2;\r\n}"; str parmOne, parmTwo; int spacePosition; List linesToCreate = new List(Types::String); List parmsToCreate = new List(Types::String); ListEnumerator listEnum; str currentLine; ClassBuild obj; TreeNode parent = TreeNode::findNode(SysTreeNode::pathParent(editor.path())); ; linesToCreate = strSplit(EditorScripts::getSelectedText(editor), '\r\n'); if(linesToCreate) { listEnum = linesToCreate.getEnumerator(); while(listEnum.moveNext()) { currentLine = strLTrim(listEnum.current()); if(currentLine) { spacePosition = strScan(currentLine, " ", 1, strLen(currentLine)); parmOne = subStr(currentLine, 0, (spacePosition - 1)); parmTwo = strLTrim(strRTrim(subStr(currentLine, spacePosition, strLen(currentLine)))); parmTwo = subStr(parmTwo, 0, strLen(parmTwo) -1); parmsToCreate.addEnd(strFmt(template, parmOne, parmTwo, str2Capital(parmTwo))); } } } if(parmsToCreate) { listEnum = parmsToCreate.getEnumerator(); obj = new ClassBuild(parent.AOTname(), true); while(listEnum.moveNext()) { currentLine = strLTrim(listEnum.current()); obj.addMethod('name', listEnum.current()); obj.classNode().AOTcompile(); } }}
O segundo passo é criar a classe com as variáveis:

12345678class Class1{ str StringOne; int IntOne; real RealOne; date DateOne; NoYes NoYesEnum;}
Agora que já temos tudo o que precisávamos, vamos ao funcionamento!

1 -> Abra o ClassDeclaration da classe criada acima;
2 -> Selecione as variáveis que quer criar as propriedades;
3 -> Clique com o botão direito e seguir o caminho: Scripts -> Template -> Method -> CreateAllParms.



Espere o processo terminar, e no final sua classe ficará assim:



Considerações:
  • Eu não fiz essa classe me preocupando com o que há de mais ‘bonito’ a ser feito, foi algo que me atendeu bem e acredito que atenderá a maioria dos desenvolvedores;
  • Foi feita já em AX 2012 e pode ser usada em qualquer outra versão;
  • Se quiser melhorá-la, fique a vontade, se puder me enviar depois é melhor ainda.
Abração,
Pichler



Источник: http://feedproxy.google.com/~r/daxbr/~3/kLZ55KcNcjI/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 13 Blog bot Dynamics CRM: Blogs 0 27.03.2013 22:12
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 12 Blog bot Dynamics CRM: Blogs 0 30.01.2013 01:11
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 10 Blog bot Dynamics CRM: Blogs 0 17.08.2012 03:27
Dynamics AXBR: Visualizar valores de um container Blog bot DAX Blogs 0 13.04.2011 10:11
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:23.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.