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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.02.2013, 07:18   #1  
morza is offline
morza
Участник
 
18 / 10 (1) +
Регистрация: 13.02.2013
помогите пожалуйста с инфологом
привет,прошу Вас помочь,пожалуйста.я новичок
на форме есть таблица и кнопка.нужно,чтобы при нажатии на кнопку выводилось в infolog все поля этой таблицы
Старый 15.02.2013, 07:43   #2  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
В infolog можно вывести ссылку.
Кликнув по ссылке перейти в главную форму.
Но как делается уже не помню. Помню только, что как то легко.
Всю таблицу в инфолог не закинуть.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
За это сообщение автора поблагодарили: morza (1).
Старый 15.02.2013, 07:54   #3  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
Цитата:
Сообщение от miklenew Посмотреть сообщение
В infolog можно вывести ссылку.
Кликнув по ссылке перейти в главную форму.
Но как делается уже не помню. Помню только, что как то легко.
Всю таблицу в инфолог не закинуть.
Делается через классы SysInfoAction
Пример тут.
Вывести все поля конечно можно через DictTable и DictField, но вариант со ссылкой более правильный. Если надо для отладки по быстрому посмотреть только значения, можно так:
X++:
info(con2str(buf2con(table), '; '));
Если нужно посмотреть содержимое временной таблицы во время отладки, то вам сюда.
__________________
Кононов Пётр
За это сообщение автора поблагодарили: morza (1).
Старый 15.02.2013, 08:11   #4  
morza is offline
morza
Участник
 
18 / 10 (1) +
Регистрация: 13.02.2013
dictTable = new SysDictTable(tableName2Id('Address'));
if (dictTable)
{
for (i = 1; i <= dictTable.fieldCnt(); i++)
{
dictField = dictTable.fieldObject(dictTable.fieldCnt2Id(i));

if (!dictField.isSystem())
info (dictField.name());

вот я сделал через dicttable, но тут он берет ту таблицу которую мы ему напишем,а можно ли как то сделать,чтобы он брал таблицу из Grid'a,даже точнее из источника
Старый 15.02.2013, 08:16   #5  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
В вашем варианте не корректно будут выводиться поля-массивы (например набор фин. аналитик), более правильно будет так:
X++:
static void testFields(Args _args)
{
    InventTable                 inventTable;
    DictTable                   dt;
    SysDictField                df;
    SysDictField                dfExt;
    Counter                     idx;
    Counter                     arrayIdx;
    ;

    select firstonly inventTable;
    
    dt = new DictTable(tablenum(InventTable));

    for (idx = 1; idx <= dt.fieldCnt(); idx++)
    {
        df = new SysDictField(dt.id(), dt.fieldCnt2Id(idx));

        if (df.isSql())
        {
            for (arrayIdx = 1; arrayIdx <= df.arraySize(); arrayIdx++)
            {
                dfExt = new SysDictField(dt.id(), df.id(), arrayIdx);

                info(strFmt("%1: %2", dfExt.label(), inventTable.(dfExt.id())));
            }
        }
    }
}
Насчет передачи таблицы из грида, если используете для кнопки MenuItem смотрите его свойство DataSource и класс Args, на что-то подобное уже отвечал тут
__________________
Кононов Пётр
За это сообщение автора поблагодарили: morza (1).
Старый 15.02.2013, 08:24   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от morza Посмотреть сообщение
тут он берет ту таблицу которую мы ему напишем,а можно ли как то сделать,чтобы он брал таблицу из Grid'a,даже точнее из источника
X++:
dt = new DictTable(FormDataSource.table())
За это сообщение автора поблагодарили: morza (1).
Старый 15.02.2013, 08:32   #7  
morza is offline
morza
Участник
 
18 / 10 (1) +
Регистрация: 13.02.2013
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
X++:
dt = new DictTable(FormDataSource.table())
почему он пишет нет такого поля?
Старый 15.02.2013, 08:48   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от morza Посмотреть сообщение
почему он пишет нет такого поля?
Вы вместо FormDataSource поставили имя своего датасурса?
Старый 15.02.2013, 09:15   #9  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от morza Посмотреть сообщение
dictTable = new SysDictTable(tableName2Id('Address'));
if (dictTable)
{
for (i = 1; i <= dictTable.fieldCnt(); i++)
{
dictField = dictTable.fieldObject(dictTable.fieldCnt2Id(i));

if (!dictField.isSystem())
info (dictField.name());

вот я сделал через dicttable, но тут он берет ту таблицу которую мы ему напишем,а можно ли как то сделать,чтобы он брал таблицу из Grid'a,даже точнее из источника
вместо tableName2Id('Address') используйте tablenum(Address). Если нужна таблица датасорса, пишите Address_ds.table()
__________________
// no comments
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Помогите!!!!!Обработка вх.НДС в SP4 lila DAX: Функционал 4 15.02.2006 16:41
Помогите пожалуйста с запросом... velk DAX: Программирование 18 20.10.2004 08:44
Пожалуйста, помогите с запросом chel DAX: Программирование 19 12.07.2004 11:53
Помогите пожалуйста! dunno DAX: Функционал 16 23.02.2004 16:56
Помогите аргументировать выбор Axapta пожалуйста... Die MC DAX: Прочие вопросы 48 16.01.2004 20:04

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

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

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