тоже не очень понимаю что нужно.
Geo, может сформулируете на человеческом языке исходную задачу?
Цитата:
Сообщение от
Geo
Я думал, что QeuryRun это по сути и есть табличная переменная
Query - запрос
QueryRun - результаты, которые SQL-сервер отдает в ответ на Query
QueryRun - позволяет обратится к текущей полученной позиции (одна запись, если таблица одна, или по одной записи на каждую таблицу в запросе).
QueryRun.get() - метод, который возвращает данные в табличную переменную
табличная переменная - хранит данные из одной записи таблицы
внимание! если табличная переменная получена в результате select, то к ней можно применить next.
типичный пример работы с query
X++:
void job1(Args args)
{
MyTable myTable;
Query q = new Query(queryStr(myAOTQuery); // внутри что-то вроде select * from myTable;
QueryRun qr = new QueryRun(q);
while( qr.next() ) // в первый проход запрос отправляется на SQL-сервер
{
myTable = qr.get(myTable.TableId);
///....
}
}
в форме:
myTable_ds.query() - запрос, который создал программист в AOT
myTable_ds.queryRun() - результаты, которые выводятся в форму. Будьте внимательны с позиционированием и next.
myTable_ds.queryRun().Query() - запрос, который действует в данный момент для данного экземпляра формы. Может отличаться от первоначального, если пользователь задаст фильтры, сортировку и т.п.
Цитата:
Сообщение от
Geo
- а вот поди ж ты, никак не вытащить в явном виде, только по одной записи...
Что именно?
Цитата:
Сообщение от
Geo
Это не то. Я хотел не пробежаться по записям, а сформировать одну табличную переменную, а-ля вызов "Select xTable Where ...", и потом хTable передать в метод, чтобы он с ней работал.
Что вы называете табличной переменной?
в следующем выражении
LedgerTrans ltr;
переменная ltr является табличной в вашем понимании?
надо отметить, что в Аксапте query и select-написанный-в-коде никогда не пересекаются. и никогда друг в друга не преобразуются. это два совершенно разных инструмента. Query никогда не преобразуется в select, а select никогда не преобразуется в Query.
Цитата:
Сообщение от
Geo
Жаль; мне казалось, что табличная переменная - это удобно.
нет. это сильно устаревший и унаследованный от старых версий механизм, от которого никак не могут отказаться.
в "табличных переменных" и в select'ах не работают пользовательские фильтры с запятыми, восклицательными знаками и
прочими символами.
кроме того, select нельзя динамически модифицировать.
Цитата:
Сообщение от
Geo
Так мне выделенность и не нужна, мне фильтры нужны.
фильтры из Query не работают в select.