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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.05.2009, 11:17   #1  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Думаю, примерно так:
X++:
static void classMethodInfo(Args _args)
{
    SysDictClass    sysDictClass;
    DictMethod      dictMethod;
    counter         methodCount, varCount;
    str             parmsStr;
    ;
 
    sysDictClass = new SysDictClass(classnum(RunBaseBatch));
 
    setPrefix(sysDictClass.name());
 
    methodCount = sysDictClass.objectMethodCnt();
 
    while (methodCount)
    {
        dictMethod = sysDictClass.objectMethodObject(methodCount);
 
        if (dictMethod)
        {
            parmsStr = '';
 
            for (varCount = dictMethod.parameterCnt(); varCount >= 1; varCount --)
            {
                parmsStr += strFmt("%1 %2, ", dictMethod.parameterType(varCount), dictMethod.parameterName(varCount));
            }
 
            parmsStr = strdel(parmsStr, strlen(parmsStr) - 1, 2);
 
            info (strFmt ("%1 (%2)", dictMethod.name(), parmsStr));
        }
 
        methodCount --;
    }
}
Небольшое дополнение :
1. данный код не учитывает статических методов, дополнил job DSPIC, чтобы статические методы учитывались
X++:
static void classMethodInfo(Args _args)
{
    SysDictClass    sysDictClass;
    DictMethod      dictMethod;
    counter         methodCount, varCount;
    str             parmsStr;
    ;
    sysDictClass = new SysDictClass(classnum(SysDictClass));
    setPrefix(sysDictClass.name());
    methodCount = sysDictClass.objectMethodCnt();
    while (methodCount)
    {
        dictMethod = sysDictClass.objectMethodObject(methodCount);
        if (dictMethod)
        {
            parmsStr = '';
            for (varCount = dictMethod.parameterCnt(); varCount >= 1; varCount --)
            {
                parmsStr += strFmt("%1 %2, ", dictMethod.parameterType(varCount), dictMethod.parameterName(varCount));
            }
            parmsStr = strdel(parmsStr, strlen(parmsStr) - 1, 2);
            info (strFmt ("%1 (%2)", dictMethod.name(), parmsStr));
        }
        methodCount --;
    }
 //SRF -->
    methodCount = sysDictClass.staticMethodCnt();
    while (methodCount)
    {
        dictMethod = sysDictClass.staticMethodObject(methodCount);
        if (dictMethod)
        {
            parmsStr = '';
            for (varCount = dictMethod.parameterCnt(); varCount >= 1; varCount --)
            {
                parmsStr += strFmt("%1 %2, ", dictMethod.parameterType(varCount), dictMethod.parameterName(varCount));
            }
            parmsStr = strdel(parmsStr, strlen(parmsStr) - 1, 2);
            info (strFmt ("%1 (%2)", dictMethod.name(), parmsStr));
        }
        methodCount --;
    }
//SRF <--
}
2. Данный код не работает в AX 3.0 SP2(он просто не компилируется, поскольку у dictMethod отсутсвует метод parameterName)

OFFTOPIC : вообще если нужны только списки методов без параметров то для DAX 4.0(также для других версий) можно использовать static-методы класса sysPickList, например, чтобы получить список методов таблицы в DAX 4.0 достаточно вызвать ниже приведенный код
X++:
sysPickList::fillTablesMethodsMap(tableId)
Старый 28.05.2009, 11:57   #2  
s_s_a is offline
s_s_a
Участник
 
8 / 10 (1) +
Регистрация: 04.03.2009
Ну все нахрен этот встроенный отчетник Буду теперь через нормальные ситстемы печатать

Последний раз редактировалось s_s_a; 28.05.2009 в 12:06.
Старый 28.05.2009, 12:09   #3  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от s_s_a Посмотреть сообщение
Ну все нахрен этот встроенный отчетник Буду теперь через нормальные ситстемы печатать
Что за "встроенный отчетник"? Какие "нормальные системы"?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 28.05.2009, 12:23   #4  
s_s_a is offline
s_s_a
Участник
 
8 / 10 (1) +
Регистрация: 04.03.2009
А как в Аксапте сделать неполомав рук сложную форму? ТТН, например?

Вот я и озадачился. Прикрутил StimulSoft Report. И через BusinessConnector.Net пхаю в него данные. Работает быстро. А уж разработка самих форм ваааще песня!

Первая версия собранных мной костылей требует некоторой ручной работы. Вот решил доавтоматизировать чуток
Старый 28.05.2009, 12:26   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от s_s_a Посмотреть сообщение
А как в Аксапте сделать неполомав рук сложную форму? ТТН, например?

Вот я и озадачился. Прикрутил StimulSoft Report. И через BusinessConnector.Net пхаю в него данные. Работает быстро. А уж разработка самих форм ваааще песня!

Первая версия собранных мной костылей требует некоторой ручной работы. Вот решил доавтоматизировать чуток
Что то я не совсем понял... Тема вроде про то, как получить список методов таблицы
... Причем тут репорты аксаптовские??
Про то что сделать в аксаптовском репорте сложную печатную форму - это мука, полностью согласен!
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 28.05.2009, 12:35   #6  
s_s_a is offline
s_s_a
Участник
 
8 / 10 (1) +
Регистрация: 04.03.2009
Получить данные из АХ сторонее приложение (в данном случае сторонний Генератор Отчетов) может и через базу напрямую, наверное. Но ведь таблицы могут выводить и какие-то расчитанные налету данные через методы. Вот, чтоб руками их не указывать, а получать список и использовать как поля в отчетнике, мне и понадобилась ваша помощь.

Если кто заинтересуется, могу подробней расписать...
Теги
sysdicttable

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Лукап, отображающий список полей определённой таблицы Damn DAX: Программирование 7 17.09.2010 18:00
Пересоздание таблицы при синхронизации Serg16 DAX: Администрирование 1 26.08.2009 13:55
Вставка строк в таблицы Аксапты сторонними средствами Андре DAX: База знаний и проекты 1 07.05.2009 16:49
Методы таблицы в DataSources (DAX4) Qaz Qwerty DAX: Программирование 2 16.06.2008 10:11
Получение из поля Map кода поля реальной таблицы, к ней привязанной (Mappings) vey DAX: Функционал 5 16.03.2005 11:16

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

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

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