Программирование на Атлантисе (VIP, FCOM, ARD), FastReport
Модераторы: m0p3e, edward_K, Модераторы
-
Masygreen
- Местный житель
- Сообщения: 1089
- Зарегистрирован: 04 сен 2008, 11:27
- Откуда: Москва
-
Контактная информация:
Сообщение
Masygreen »
(задача есть ордера, надо программно проставить ЦУ...)
Подскажите как правильно программно изменить ЦУ ордера.
Пытаюсь:
Код: Выделить всё
set SPECMTR.COBJ := 25;
set SPECMTR.ckau[1] := 100;
update current SPECMTR;
oMtrCount.MtrCheckDocs(coSpOrder, SpOrder.nRec, SpOrder.VidOrder, true);
Не работает, то ли инициализация не та .. то ли еще чего .. после пересчета остатков в ЦУ все работает, но хочется до ..
Время ведет!
-
Алексей
- Местный житель
- Сообщения: 2896
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Сообщение
Алексей »
Давно делал загрузку по УКСу, нашел кусок кода вот такой:
Код: Выделить всё
#include MTRFuncs.vih
#include modifOrd.vih
...........................
ispord.AnySpOrder_insert(sporder.buffer); // для вставки AnySpOrder_update
iMtrFunc.GenSpecMTRForUKS(1112,sporder.nrec,sporder.cobj,getSZt(mc.vidr));
ispord.AnySpOrder_update(sporder.buffer); // для апдейта AnySpOrder_update
OrdHoz.UpdateSoprHoz(sklorder.nrec, sklorder.csopr, 0, katsopr.summa,0, katsopr.dopr);
посмотрите методы этих объектов.
-
Masygreen
- Местный житель
- Сообщения: 1089
- Зарегистрирован: 04 сен 2008, 11:27
- Откуда: Москва
-
Контактная информация:
Сообщение
Masygreen »
Правда найдена при помощи ТП, фишка в обновлении и вставке через буфер
Код: Выделить всё
#include MTRFuncs.vih
#include MTRFuncs.var // oMTRFun
Код: Выделить всё
if(getfirst SPORDER where ((spsopr.nrec == SPORDER.CSPSOPR)) = tsOK)
if(getfirst SPECMTR where ((SPORDER.nrec == SPECMTR.CSPEC and coSPORDER == SPECMTR.COTABLE)) <> tsOK)
{//вставка ЦУ
ClearBuffer(#SPECMTR);
set SPECMTR.COTABLE := coSPORDER;
set SPECMTR.CSPEC := SPORDER.nrec;
set SPECMTR.CSALDTUNE := _cSALDTUNE;
set SPECMTR.COBJ := _cSpKau01;
set SPECMTR.ckau[1] := _cSpKau02;
oMTRFun.InsUpdRec(SpecMTR.buffer);//добавление остатков ЦУ
}
else
{//изменение ЦУ
bSpecMtr := SpecMTR.buffer;
set bSpecMtr.CSALDTUNE := _cSALDTUNE;
set bSpecMtr.COBJ := _cSpKau01;
set bSpecMtr.ckau[1] := _cSpKau02;
oMTRFun.InsUpdRec(bSpecMtr);//добавление остатков ЦУ
}
Время ведет!