Здравствуйте.
Помогите с range, есть такой код:
X++:
QueryBuildRange range;
str strOrganization;
;
range = SysQuery::findOrCreateRange(queryRun.query().dataSourceTable(tableNum(RPayTrans)),fieldnum(RPayTrans, HrmOrganisationId) );
//строку упростили для наглядности (переменные достаются из контейнера)
strOrganization = 'HrmOrganisationId = ' + "N'ЦД0001'" + ' OR HrmOrganisationId = ' + "N'УР0019'";
range.value("( " + strOrganization + ") ");
В результате получаем ошибку: "Ошибка расширенного диапазона запроса: ."
Правильный запрос выглядит так:
SELECT * FROM EmplTable ORDER BY EmplTable.EmplId ASC EXISTS JOIN * FROM RPayTrans WHERE EmplTable.EmplId = RPayTrans.Emplid AND ((PayPeriod = {ts '2010-06-30 00:00:00.000'})) AND ((NOT (Amount = 0))) AND ((HrmOrganisationId = N'ЦД0001' OR HrmOrganisationId = N'УР0019'))
У меня же получается:
SELECT * FROM EmplTable ORDER BY EmplTable.EmplId ASC EXISTS JOIN * FROM RPayTrans WHERE EmplTable.EmplId = RPayTrans.Emplid AND ((PayPeriod = {ts '2010-06-30 00:00:00.000'})) AND ((NOT (Amount = 0))) AND (((HrmOrganisationId=N'ЦД0001'OR HrmOrganisationId=N'УР0019')))
Как я понимаю, все дело в тройных кавычках.
Как передать value чтобы было меньше кавычек не понимаю, или же как передать сразу контейнер?
Спасибо.