Тема: map+map
Показать сообщение отдельно
Старый 24.10.2013, 14:24   #38  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от LeonDerCom Посмотреть сообщение
S.Kuskov
С самого начала уже были в ключе ИД таблиц, несмотря на то, что они находились в разных МАПах, то есть в случае слияния МАПов в лоб - данные не должны были пересекаться.
Нет, S.Kuskov прав, записи могли бы повторяться, так как у меня не было уникального значения в ключе, а именно tableid.
Но теперь значения в мепе повторяются по некоторым полям и так и должно быть.
Только теперь пришёл к тому, что надо их разделить по ключам как-то, при этом производить всё это в одном цикле
Я, наверное, уже вас достал...

В данный момент я сделал через 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.