Тема: map+map
Показать сообщение отдельно
Старый 24.10.2013, 12:30   #29  
LeonDerCom is offline
LeonDerCom
Участник
 
45 / 20 (1) +++
Регистрация: 08.10.2012
Если Вашим кодом, то например так...
X++:
while(queryRun.next())
    {
        jour = queryRun.get(tablenum(JourListTrans));
        list = queryRun.get(tablenum(JourListTrans));
        invoice = queryRun.get(tablenum(InvoiceInvent));
        invent = queryRun.get(tablenum(InvoiceInvent));


        listKey = list.InternalSp + "#" + list.ItemId+"#"+tablenum(VendSpListTrans);

        invoiceKey = invoice.InternalSp + "#" + invoice.ItemId+"#"+tablenum(VendInvoiceTrans);

        //check in vendSpListTrans
        if(SharedMap.exists(listKey))
        {
            listCon = SharedMap.lookup(listKey);
            listCon = conpoke(listCon,7,conpeek(listCon,7)+list.SumOfSpQty);
            SharedMap.insert(listKey,listCon);
        }
        else
        {
            SharedMap.insert(listKey,[jour.IDSp, jour.SpDate, jour.RContractAccount,list.InternalSp, list.ItemId, list.SpUnit, list.SumOfSpQty]);
        }
        //check in VendInvoiceTrans
        if(SharedMap.exists(invoiceKey))
        {
            invoiceCon = SharedMap.lookup(invoiceKey);
            invoiceCon = conpoke(invoiceCon,3,conpeek(invoiceCon,3)+invoice.SumOfQty);
            SharedMap.insert(invoiceKey,invoiceCon);

        }
        else
        {
            SharedMap.insert(invoiceKey,[invoice.ItemId, invoice.PurchUnit, invoice.SumOfQty, invoice.InternalSp, invent.UnitId]);
        }

    }
Поскольку ключ таблицы позаботится об уникальности ключа между таблицами, а чтобы вытаскивать данные, можно хоть контейнером ключ сделать, можно в ключь впереди вписать хоть 1 (L) или 2 (I) (сортирует их и доставай сначала одни данные, потом другие), выделять из ключа номер таблицы.

Последний раз редактировалось LeonDerCom; 24.10.2013 в 12:43.
За это сообщение автора поблагодарили: user_ax (1).