|
![]() |
#1 |
Участник
|
S.Kuskov
С самого начала уже были в ключе ИД таблиц, несмотря на то, что они находились в разных МАПах, то есть в случае слияния МАПов в лоб - данные не должны были пересекаться. user_ax MapIterator X++: switch (subStr(MapIter.key(),1,1)) { case ('L'): break; case ('V'): break; } Или с учетом сортировки while - будет не очень красиво, хотя меньше действий (subStr и сравнение на V не надо будет выполнять). while (subStr(MapIter.key(),1,1)=='L') { } while (MapIter.more()) { } Последний раз редактировалось LeonDerCom; 24.10.2013 в 14:24. |
|
![]() |
#2 |
Участник
|
Цитата:
Но теперь значения в мепе повторяются по некоторым полям и так и должно быть. Только теперь пришёл к тому, что надо их разделить по ключам как-то, при этом производить всё это в одном цикле ![]() Я, наверное, уже вас достал... В данный момент я сделал через ifelse таким образом, но мои условия, которые идут ниже теряют свой смысл... X++: while(totalEnumerator.moveNext()) { totalCon = totalEnumerator.currentValue(); if(confind(totalCon,"L") == 1) { for(i = 1;i<conlen(TotalCon);i++) { jourIdsp = conpeek(totalCon,1); jourSpDate = conpeek(totalCon,2); jourRcontrAcc = conpeek(totalCon,3); listInterSp = conpeek(totalCon,4); listItemId = conpeek(totalCon,5); listSpUnit = conpeek(totalCon,6); listSpQty = conpeek(totalCon,7); } else if(confind(totalCon,'I') ==1) { invoiceItemId = conpeek(totalCon,1); invocePurchUnit = conpeek(totalCon,2); invoiceQty = conpeek(totalCon,3); invoiceInterSp = conpeek(totalCon,4); inventUnitID = conpeek(totalCon,5); } //check vendsplisttrans spunit if (listSpUnit != inventUnitID) { //проверка есть ли конвертируемая величина can_conv_sp = UnitConvert::canConvert(listSpUnit, inventUnitID,listItemId); //конвертация в нужную величину convert_spunit = UnitConvert::qty(listSpQty,listSpUnit,inventUnitID,listItemId,true,true,true); } //check vendinvoicetrans purchunit if(invocePurchUnit != inventUnitID) { can_conv_invoice = UnitConvert::canConvert(invocePurchUnit,inventUnitID,invoiceItemId); convert_purchunit = UnitConvert::qty(invoiceQty,invocePurchUnit,inventUnitID,invoiceItemId,true,true,true); } if (listSpQty == invoiceQty) { update_spec(); if (!i) { info(strfmt("@GEE10961", jourIdsp, jourSpDate, jourRcontrAcc)); counter ++; i++; } else { counter ++; } } } Последний раз редактировалось user_ax; 24.10.2013 в 14:27. |
|