19.03.2012, 16:28 | #1 |
Постигающий
|
Создать объект Query из QueryBuildDataSource
Добрый день. Есть необходимость из определeнного QBDS создать новый объект Query. Существуют ли способы кроме как полного перебора и копирования Ranges и Links?
вот простецкий способ (для qbds без джоинов и сортировок) набросал : X++: Query queryFromQbds(QueryBuildDataSource _sourceQbds) { Query ret = new Query(); QueryBuildDataSource dsDest = ret.addDataSource(_sourceQbds.table()); QueryBuildRange rangeDest, rangeSrc; int i, cntRange; ; cntRange = _sourceQbds.rangeCount(); for(i = 1; i <= cntRange; i++) { rangeSrc = _sourceQbds.range(i); rangeDest = dsDest.addRange(rangeSrc.field()); rangeDest.value(rangeSrc.value()); } return ret; } |
|
19.03.2012, 16:40 | #2 |
Ищущий знания...
|
Цитата:
X++: Query q1 = new Query(); Query q2; ; // создание запроса q1... q2 = new Query(q1); // и тд...
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем Последний раз редактировалось lev; 19.03.2012 в 16:43. |
|
19.03.2012, 16:41 | #3 |
Постигающий
|
у меня нет q1 )
у меня есть только qbds1 (допустим я его извлек из q1 , по номеру необходимой таблицы qbds1 = q1.tableDataSource(tableNum(empltable)), в q1 много других qbds) и на основе qbds1 нужно создать q2, а дальше qr2 гонять Последний раз редактировалось Андрей К.; 19.03.2012 в 16:45. |
|
19.03.2012, 16:46 | #4 |
Ищущий знания...
|
не понял... не может быть что есть qbds, а query нету потому что qbds инициализируется с помощью query.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
19.03.2012, 16:46 | #5 |
Постигающий
|
Цитата:
и на основе qbds1 нужно создать q2, а дальше qr2 гонять |
|
19.03.2012, 17:05 | #6 |
Ищущий знания...
|
Цитата:
способа прямого копирования qbds из одного query в другой я не знаю... может кто поделится опытом, мне тоже стало интересно, возможно такое или нет
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
19.03.2012, 18:33 | #7 |
Роман Долгополов (RDOL)
|
ну совсем готового кода скорее всего в стандарте нет. на классе SysQuery есть несколько мелких копировщиков (mergeRanges, copyDynalinks и т.д.) Но возможно вам это даже и не нужно. Вместо копирования нужных датасорсов в новый запрос просто можно отключать ненужные через qbds.enabled()
|
|
19.03.2012, 19:35 | #8 |
Постигающий
|
Цитата:
Сообщение от db
ну совсем готового кода скорее всего в стандарте нет. на классе SysQuery есть несколько мелких копировщиков (mergeRanges, copyDynalinks и т.д.) Но возможно вам это даже и не нужно. Вместо копирования нужных датасорсов в новый запрос просто можно отключать ненужные через qbds.enabled()
|
|