05.12.2008, 17:48 | #1 |
MCITP
|
Изменение "курсора" в цикле
Всем привет.
Вероятно, конечно, баян, но я не нашёл... Интуитивно так обычно не делал, но вот недавно наткнулся - решил поделиться. Если внутри цикла while select (ну и не только наверное) изменить ссылку табличной переменной используемого курсора на что-то другое, то можно "отгрести" забавные результаты. Проще продемонстрировать, чем объяснить. Пример Jobа (Номер журнала задайте сами): X++: static void ZVV_TestCursorJob(Args _args) { InventTrans inventTrans; InventJournalId _InventJournalId = "СЖ008968"; ; while select inventTrans where inventtrans.TransType == InventTransType::InventTransfer && inventTrans.TransRefId == _InventJournalId { info(strFmt("%1 %2 %3", inventTrans.InventTransId, inventTrans.ItemId, inventTrans.Qty)); } info(strrep('-',30)); while select inventTrans where inventtrans.TransType == InventTransType::InventTransfer && inventTrans.TransRefId == _InventJournalId { info(strFmt("%1 %2 %3", inventTrans.InventTransId, inventTrans.ItemId, inventTrans.Qty)); inventTrans = inventTrans::findRecId(inventTrans.RecId); } } Код: Сообщение (16:45:39) Л_11776612 25472/001 -10,00 Л_11776612 25472/001 10,00 Л_11776613 25472/001 -10,00 Л_11776613 25472/001 10,00 Л_11776614 25472/001 -20,00 Л_11776614 25472/001 20,00 ------------------------------ Л_11776612 25472/001 -10,00 Л_11776612 25472/001 -10,00 Л_11776612 25472/001 -10,00 Л_11776612 25472/001 -10,00 Л_11776612 25472/001 -10,00 Л_11776612 25472/001 -10,00 3.0
__________________
Zhirenkov Vitaly |
|
|
|