Показать сообщение отдельно
Старый 11.04.2013, 03:11   #20  
Romb is offline
Romb
Участник
Аватар для Romb
 
79 / 22 (1) +++
Регистрация: 06.01.2004
В теме обсуждения, абстрагируясь от макросов, стоит задача написать универсальный запрос в одну конструкцию, которая бы корректно учитывала значения параметров из условий запроса. Это есть прямая необходимость при построении конструкции запроса использовать логику более высшего уровня, чем предлагает X++ в аспекте работы с данными like SQL. Т.е., очевидно, что тут необходимо конструировать структуру запроса программно. Если уж необходимость в таких "умных" запросах возникает часто, то прямой путь - абстрагировать логику.
Бла-бла-бла

Короче, по моему мнению надо делать метод без макросов (м.б. и статический), который в зависимости от переданных параметров возвращает курсор(ы). Далее по ним бежать next-ом.

Что-то типа:

X++:
cursor = getMySmartCursor(inventTrans, location);

do
{
if (cursor) ...
.....
next cursor;
} while (cursor);
и вызывать его одинаковым образом в коде. При этом логика выделена, при изменениях требуется модификация только одного метода, а внутри него можно хоть вавилонские башни строить.Это уже по желанию.

Как актуален и свеж мой комментарий в 2013 году. 8 лет я готовился к этому...