|
|
#1 |
|
Участник
|
Цель, создать вот такой вот Query
Код: while select ledgerJournalTrans
where ledgerJournalTrans.TransDate == todayDate
&& ledgerJournalTrans.AccountType == LedgerJournalACType::Cust
exists join ledgerJournalTransLink
where (ledgerJournalTransLink.Voucher == ledgerJournalTrans.Voucher
&& ledgerJournalTransLink.TransDate == ledgerJournalTrans.TransDate
)&&
(ledgerJournalTransLink.AccountType == LedgerJournalACType::Bank ||
(ledgerJournalTransLink.AccountType == LedgerJournalACType::Cust
&& ledgerJournalTransLink.OffsetAccountType == LedgerJournalACType::Bank))
{...}Код: value = strfmt('((%1 == "%2") || ((%3 == "%4") && (%5 == "%6")))',
fieldId2name(TableNum(LedgerJournalTrans), fieldNum(LedgerJournalTrans, AccountType)),
queryValue(LedgerJournalACType::Bank),
fieldId2name(TableNum(LedgerJournalTrans), fieldNum(LedgerJournalTrans, AccountType)),
queryValue(LedgerJournalACType::Cust),
fieldId2name(TableNum(LedgerJournalTrans), fieldNum(LedgerJournalTrans, OffsetAccountType)),
queryValue(LedgerJournalACType::Bank));
linkedQbds.addRange(fieldNum(LedgerJournalTrans, DataAreaId)).value(value);Код: ... ((B.ACCOUNTTYPE=193) OR ((B.ACCOUNTTYPE=202) AND (B.OFFSETACCOUNTTYPE=193)))) ...
|
|
|
|
|
#2 |
|
Участник
|
Цитата:
Сообщение от Lemming
Цель, создать вот такой вот Query
Что делать не ясно, мысли кончились. Если вместо queryValue(LedgerJournalACType::Bank) написать queryValue(6) на сервер уходит запрос с другими индексами Enum-ов, но не менее бредовыми. Может кто сталкивался и составлял "хитрые запросы" с участием Enum- полей? А то уже не ясно, что делать дальше ![]() Решение: вместо queryValue() используй int2str(). |
|
|
|
|
#3 |
|
Участник
|
Цитата:
Сообщение от dn
Вопрос из серии FAQ.
Решение: вместо queryValue() используй int2str(). Код: AND ((B.ACCOUNTTYPE=193) OR ((B.ACCOUNTTYPE=49) AND (B.OFFSETACCOUNTTYPE=54))))
|
|
|
|
|
#4 |
|
Участник
|
Цитата:
Сообщение от dn
Вопрос из серии FAQ.
Решение: вместо queryValue() используй int2str(). Вопрос снят! Надо вместо queryValue() использовать any2str();
|
|
|
|
|
#5 |
|
Участник
|
По поводо Int2str - уберите двойные кавычки из условия
__________________
Axapta v.3.0 sp5 kr2 |
|
|
|
|
#6 |
|
Участник
|
Цитата:
Сообщение от AndyD
По поводо Int2str - уберите двойные кавычки из условия
Действительно, перед тем как поставить any2str убрал кавычки, все работает и с any... и с int...
|
|
|
|
|
#7 |
|
Участник
|
Вот что пишется в хелпе поводу any2str().
Цитата:
Useful output is only guaranteed for input type str.
__________________
Axapta v.3.0 sp5 kr2 |
|
|
|
|
#8 |
|
Участник
|
я бы не рекомендовал использовать any2str, это такая функция от которой непонятно чего ожидать
|
|
|
|
|
#9 |
|
Участник
|
Кстати, можно использовать Base Enum непосредственно в тексте запроса, т.е
X++: value = strfmt('((%1 == LedgerJournalACType::Bank) || ' + '((%2 == LedgerJournalACType::Cust) && (%3 == LedgerJournalACType::Bank)))', fieldId2name(TableNum(LedgerJournalTrans), fieldNum(LedgerJournalTrans, AccountType)), fieldId2name(TableNum(LedgerJournalTrans), fieldNum(LedgerJournalTrans, AccountType)), fieldId2name(TableNum(LedgerJournalTrans), fieldNum(LedgerJournalTrans, OffsetAccountType)));
__________________
Axapta v.3.0 sp5 kr2 |
|
|
|
|
#10 |
|
Участник
|
Народ, дико извиняюсь, все в спешке
, с any2int тоже работает! any2str - действительно вылетела с ошибкой.AndyD, dn - спасибо! |
|
|