|
![]() |
#1 |
Ищущий знания...
|
подробнее
X++: qbdsCustInvoceTrans = query.addDataSource(tablenum(CustInvoiceTrans)); qbdsInventDim = qbdsCustInvoceTrans .addDataSource(tablenum(InventDim)); qbdsInventDim .relation(true); qbdsInventDim.addRange(fieldNum(InventDim, InventLocationId)).value(inventLocationId);
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
За это сообщение автора поблагодарили: Prophetic (1). |
![]() |
#2 |
Участник
|
Цитата:
Да, это решит проблему, благодарю. Однако, вопрос в том, что я пытаюсь модифицировать класс CustTransStatistics, в котором уже всё завязано на простую таблицу. Просто очень не хочется ВСЁ переписывать. Может быть есть ещё другой способ отфильтровать по складам? |
|
![]() |
#3 |
Moderator
|
У меня вот здесь Можно ли в SELECT использовать критерия вида "10..20" было некоторое подобие IN для таких случаев недлинных списков. Во всяком случае, визуально в составе select'а выглядит вполне удовлетворительно. Может, подойдёт приемчик?
|
|
|
За это сообщение автора поблагодарили: mazzy (2), lev (2), S.Kuskov (3), Prophetic (1). |
![]() |
#4 |
Участник
|
Как вариант используйте прямой запрос к базе с IN-ми и LIKE-ми )
__________________
В подводной охоте главное вдох ... |
|
|
За это сообщение автора поблагодарили: S.Kuskov (-1), Prophetic (1). |
![]() |
#5 |
Участник
|
Цитата:
Сообщение от Gustav
![]() У меня вот здесь Можно ли в SELECT использовать критерия вида "10..20" было некоторое подобие IN для таких случаев недлинных списков. Во всяком случае, визуально в составе select'а выглядит вполне удовлетворительно. Может, подойдёт приемчик?
Последний раз редактировалось Prophetic; 13.08.2010 в 10:45. |
|
![]() |
#6 |
Участник
|
Нет. Не нужно так поступать.
Просто используйте вместо типа str, какой-нибудь расширенный тип данных, ни или на крайний случай пишите "str 30", т.е еграничте длину типа |
|
![]() |
#7 |
Участник
|
Цитата:
X++: inventLocationRange = str2con_RU(inventLocationId, ','); while select custInvoiceTrans where custInvoiceTrans.InvoiceDate == 01\04\2010 join InventDim where inventDim.inventDimId == CustInvoiceTrans.InventDimId && #sqlIn(inventDim.InventLocationId,inventLocationRange) |
|
![]() |
#8 |
Moderator
|
"А, пожалуйста!" (с) "О чём говорят мужчины"
![]() А если не создавать отдельную переменную-контейнер и вставить вызов str2con_RU прямо в параметр макроса? У меня на 3.0 SP4 прокатило: X++: static void test_SQL_Imitation_2(Args _args) { #macrolib.SQL_Imitation Dialog dialog; DialogField dialogField; InventLocation inventLocation; ; dialog = new Dialog('Тест имитации SQL IN'); dialogField = dialog.addFieldValue(Types::String, 'СКЛАД1,СКЛАД2,СКЛАДN', 'Введите значения через запятую (не более 10)'); if (dialog.run()) { while select inventLocation where #sqlIn( inventLocation.InventLocationId, str2con_RU(dialogField.value(),',') ) { info (inventLocation.InventLocationId); } } } |
|
![]() |
#9 |
Moderator
|
Цитата:
Сообщение от Gustav
![]() У меня вот здесь Можно ли в SELECT использовать критерия вида "10..20" было некоторое подобие IN для таких случаев недлинных списков. Во всяком случае, визуально в составе select'а выглядит вполне удовлетворительно. Может, подойдёт приемчик?
__________________
Андрей. |
|
![]() |
#10 |
Участник
|
Цитата:
Ну, разбиваешь строку на элементы в тот же массив, потом цикл по массиву и вызов метода, куда в качестве параметра передаешь значение очередного элемента массива. Не надо никаких переделок на Query и "танцев с бубном" в виде макросов. Все просто и понятно. Насчет скорости... Ну, это надо посмотреть. ![]() |
|
![]() |
#11 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
![]() А почему не сделать напрашивающееся решение в виде цикла в котором по очереди передаешь ОДНО значение?
Ну, разбиваешь строку на элементы в тот же массив, потом цикл по массиву и вызов метода, куда в качестве параметра передаешь значение очередного элемента массива. Не надо никаких переделок на Query и "танцев с бубном" в виде макросов. Все просто и понятно. Насчет скорости... Ну, это надо посмотреть. ![]() |
|
Теги |
select, where |
|
![]() |
||||
Тема | Ответов | |||
QueryBuildRange в select.. where | 11 | |||
Разница NotInTTS и Found | 6 | |||
Ошибка при старте АОСа | 4 | |||
Вопрос про Demand Planner | 4 | |||
select * where ... | 10 |
|