Показать сообщение отдельно
Старый 29.07.2011, 12:08   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Просмотр [временных] таблиц в отладчике.
Пишу, скорее "на память" чтобы в следующий раз не пересоздавать код.
В продолжение этого совета ax2009 метод toString() в отладчике

Суть проблемы:
отладчик показывает только текущую запись во [временной] таблице.
что приводит к сложностям при отладке.

Чтобы было легче отлаживать код с [временными] таблицами, таблицы можно запихать записи в контейнер. А уж контейнеры отладчик показывает превосходно.

для преобразования таблицы в контейнер в классе Global можно создать следующий метод:
X++:
// преобразует таблицу в контейнер (контейнеры удобно просматривать в отладчике)
// если maxRecords = 0 то в контейнер попадут все записи из таблицы
static server container table2con(Common common, int64 maxRecords = 10)
{
    int64       i;
    Common      _common = new DictTable(common.TableId).makeRecord();
    container   ret = connull();
;
    // копируем записи, чтобы не сдвинуть курсор и ничего не изменить в исходной выборке
    if( common.isTmp() )
    {
        _common.setTmp();
        _common.setTmpData(common);
    }
    else
    {
        _common.data(common);
    }

    // перебираем записи
    while select _common
    {
        ++i;
        if( maxRecords > 0 && i > maxRecords )
        {
            ret += ['...']; // в конец добавляем признак того, что в таблице есть и другие записи.
            break;          // прерываем обработку, если нашли больше записей, чем запрошено в maxRecords
        }
        else
        {
            ret += [_common];
        }
    }

    return ret;
}
в коде можно вызвать этот метод с таблицей, на записи которой хотите посмотреть.
можно поставить точку останова на return ret или сохранить результат выполнения где-нибудь для дальнейшего просмотра.

будьте осторожны с модификатором server. метод должен выполняться там, где "живет" просматриваемая таблица.

UPD: такой же подход можно применить для просмотра queryRun.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 29.07.2011 в 12:10. Причина: добавил про QueryRun
За это сообщение автора поблагодарили: pitersky (2).