Показать сообщение отдельно
Старый 10.11.2012, 14:35   #41  
Narayana is offline
Narayana
Участник
 
241 / 100 (4) +++++
Регистрация: 05.01.2009
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
С таблицами дело обстоит чуть по другому. Содание таблицы в AOT порождает появление нового типа данных в X++. Этот новый табличный тип представляет собой наследника системного класса xRecord. Дальше вы правы, выполнение команды "select" приводит к изменению состояния табличной переменной. Каждое выбранное из БД значение поместится в соответствующее поле табличной переменной.
... и все-таки, ничо не понимаю.

Вот, есть представления традиционной ориентации.
Есть таблица в БД, есть рекордсет.
Берем таблицу и с помощью оператора select набираем записи из таблицы в рекордсет.

Теперь Аксапта.
Есть таблица в БД.
Дальше Аксапта знает про эту таблицу в БД и структуру этой таблицы держит у себя в качестве типа объекта в виде элемента АОТ. Так?

Дальше мы объявляем переменную с типом данной таблицы.
Что при этом происходит?
Мы создаем в памяти только пустую структуру этой таблицы или уже структуру, заселенную данными?

Дальше самое интересное.
Применяем оператор select.
Результатом его работы должен быть рекордсет.
Так этот самый рекордсет куда складывается?
В нашу пустую объявленную переменную или еще куда-то?

Создается впечатление, что складывается как раз в нашу же переменную.
Но, это же какой-то бардак получается.

То есть, объявлением переменной с типом таблицы, мы создаем копию таблицы или пустой рекордсет?
Если, допустим, пустой рекордсет "r" , то странным выглядит синтаксическая конструкция "select r;", потому как, вроде бы, "r" должен быть не операндом операции select, а ее результатом.

Вот, когда мы, например, в АОТе открываем форму таблицы, где показывается содержание таблицы, что происходит?

И еще.
Вот мы создали в АОТе таблицу.
А потом используем ее, например, в качестве датасорса для датасета, используемого дальше в портале.
Допустим, я хочу к тому моменту, когда таблица будет использоваться в качестве дата сорса, произвести некоторые вычисления и положить результат их в одно из полей таблицы.
Какое событие нужно использовать и какой метод таблицы лучше перекрывать для размещения кода вычислений?