01.03.2008, 13:34 | #41 |
Участник
|
|
|
29.07.2011, 16:40 | #42 |
Участник
|
Народ подскажите как в AddRange вставить дипозон значений?
Обясняю, суть такая: есть запрос часть запроса qbdsrpayHistory.addRange(fieldnum(rpayHistory, StartDate)).value(strfmt("> %1", startDate - 1)); и если добавить ещё одну строку qbdsrpayHistory.addRange(fieldnum(rpayHistory, StartDate)).value(strfmt("< %1", endDate + 1)); то они соединяются по OR т к rpayHistory.StartDate в обоих полях а по смыслу нужно через AND В запросе через интерфейс можно ввести диапозон через 2 точки и все хорошо Вопрос как сделать тоже програмно запрос получается такой SELECT * FROM RPayHistory WHERE ((StartDate>{ts '2010-05-05 00:00:00.000'}) OR (StartDate<{ts '2010-05-07 00:00:00.000'})) AND ((operationType=2)) JOIN * FROM EmplTable WHERE RPayHistory.Number = EmplTable.EmplId Извеняюсь если туплю или объяснил сумбурно |
|
29.07.2011, 17:20 | #43 |
----------------
|
X++: qbdsrpayHistory.addRange(fieldnum(rpayHistory, StartDate)).value(SysQuery::range(startDate, endDate)); |
|
|
За это сообщение автора поблагодарили: Pudd (1). |
29.07.2011, 17:39 | #44 |
Участник
|
Вы не поверите , но "через интерфейс" и через addRange это одно и тоже
Wamr правильно подсказал метод SysQuery::range как раз и использует те самые две точки. Есть ещё некоторые ньансы для случая открытого диапазона. Посмотрите сами код метода SysQuery::range и всё сразу поймёте |
|
16.10.2013, 17:41 | #45 |
Участник
|
Подниму тему. Тоже столкнулся с проблемой сложного запроса с участие Dimension.
Как понимаю решения так и нет? То есть не получается реализовать такой запрос X++: '((Dimension[5] == "%1") || (Author == "%1"))' Последний раз редактировалось IvanS; 16.10.2013 в 17:47. |
|
16.10.2013, 19:16 | #46 |
Участник
|
В общем решение уже есть
Взято с axaptapedia. и из темы Ошибка в QueryBuildRange Цитата:
Query Expressions syntax for array fields such as the Dimension field is known to be suppported since the version 5.0.1500.2116 (RU4) for AX 2009. Previous kernel versions are not tested to support Query Expressions syntax for array fields; it is also known not to work at all in Axapta 3.
X++: queryBuildRange.value(strFmt('((%1.%2 == "%4") || (%1.%3 == "%5"))', queryBuildDataSource.name(), fieldid2name(tablenum(<table>), fieldid2ext(fieldnum(<table>, Dimension), Dimensions::code2ArrayIdx(SysDimension::Center))), fieldid2name(tablenum(<table>), fieldid2ext(fieldnum(<table>, Dimension), Dimensions::code2ArrayIdx(SysDimension::Purpose))), "some dim2 value", "some dim3 value")); Последний раз редактировалось IvanS; 16.10.2013 в 19:18. |
|
|
За это сообщение автора поблагодарили: leva (1). |
Теги |
query, программно, фильтр, запрос (query) |
|
Похожие темы | ||||
Тема | Ответов | |||
Вопрос по Query с агрегатной функцией | 11 | |||
Вопрос про Query | 5 | |||
Вопрос по query и join | 2 | |||
Вопрос по запросу (query) | 2 | |||
Вопрос знатокам QBE и Query в AXAPTA | 6 |
|