Страница 1 из 1

Как программно изменить количество в производственном плане?

Добавлено: 07 дек 2007, 14:23
Alexander
создаю новый план, спецификацию - все нормально!
пытаюсь установить цены и количество - никак не получается :-( как установить??? Может ф-ция какая-нибудь есть?

Добавлено: 07 дек 2007, 16:41
edward_K
журнализация рулит. Там еще пара табл участвует. Опять же - как создаете?

Добавлено: 10 дек 2007, 08:39
Alexander
обычным инсертом. да, вроде тоже самое делаю, что в журнале пишется, не получается :-(

Добавлено: 10 дек 2007, 09:05
Алексей
Alexander
после изменения программной, зайдите в галактику и подправьте что нибудь.

Затем по журналу посмотрите - что изменится. Так можно вычислить - что забыли.

Добавлено: 10 дек 2007, 14:27
Alexander
что-то ничего не понимаю.... добился того, что все записи уже идентичные, но! В 1-ю позицию заказа кол-во проставляется а в остальные - дулю. когда меняю значение в самой галактике, она добляет записи в spmnpl и valspmnp, причем идентичные уже имеющимся. разница в том, что я делаю одним запросом, а галактика сначала вставляет почти пустую строчку в valspmnp и несколькими апдейтами доводит до "кондиции". С чем может быть связано? целый день уже парюсь... и непонятно, почему с 1-й строчкой работает, а с остальными - трабла.

Добавлено: 10 дек 2007, 14:30
Alexander
мой код. Не судите строго, я его уже весь перекорежил, пытаясь заставить работать :-)

Код: Выделить всё

 delete all pick;
 if ( RunInterface('GetSpMnPlan'
                     , cWorkMnPlan
                     , word(1)
                     , comp(0)
                     , word(1)      // ValSpMnP.Kol
                     , dTmp
                     , word(0)
                     , word(0)
                     ) = cmDefault ){
      insert into MnPlanNew set nrec       = comp(0),
                                enddate    = mnplan.enddate,
                                startdate  = mnplan.startdate,
                                typeplan   = 17,
                                CWAYACCOU  = 281474976710872,
                                statemdate = cur_date(),
                                DESCR      = sGetTune('User.Descr'),
                                CVPLAN     = 4612010795244082808,
                                cperplan   = 281474976710755;
   var num : word;
   var nums : string;
   num := 0;
   _loop pick where((19893 == pick.wlist)){
      num  := num + 1;
      nums := string(num);
      insert into spmnplannew set spmnplannew.nrec      = comp(0),
                                  spmnplannew.cmnplan   = MnPlanNew.nrec,
                                  spmnplannew.number    = (Padch('', '0', 5-length(num)) + nums),
                                  spmnplannew.typeizd   = spmnplan.typeizd,
                                  spmnplannew.cIzd      = spmnplan.cIzd,
                                  spmnplannew.cotped    = spmnplan.cotped;


      insert into mnanal set nrec  = comp(0),
                             csloj = 40010D17D55FB32Dh,
                             fldan1= MnPlanNew.nrec;

      insert into spmnplnew set spmnplnew.nrec       = comp(0),
                                spmnplnew.cspmnplan  = spMnPlanNew.nrec,
                                spmnplnew.cmnplan    = MnPlanNew.nrec,
                                spmnplnew.canval4    = MnPlanNew.nrec,
                                spmnplnew.TYPEIZD    = spmnpl.TYPEIZD,
                                spmnplnew.number     = (Padch('', '0', 5-length(num)) + nums),
                                spmnplnew.cIzd       = spmnpl.cIzd,
                                spmnplnew.cmnanal    = mnanal.nrec,
                                spmnplnew.crolean4   = 400112E4B8DC1CB1h,
                                spmnplnew.WKODGR4    = 7,
                                spmnplnew.WKOLAN     = 23,
                                spmnplnew.cotped     = spmnpl.cotped;

      insert into propspmn set propspmn.nrec = comp(0),
                               propspmn.cSpMnPl = spmnplnew.nrec,
                               propspmn.fldnum = 5,
                               propspmn.resword[1] = 12;

      insert into ValSpMnPnew set ValSpMnPnew.nrec        = comp(0),
                                  ValSpMnPnew.KOLFIELD1 = 0,
                                  ValSpMnPnew.KOLFIELD2 = 0,
                                  ValSpMnPnew.KOLFIELD3 = 0,
                                  ValSpMnPnew.KOLFIELD4 = 0,
                                  ValSpMnPnew.KOLFIELD5 = pick.pickkol,
                                  ValSpMnPnew.KOLFIELD6 = 0,
                                  ValSpMnPnew.KOLFIELD7 = 0,
                                  ValSpMnPnew.KOLFIELD7 = 0,

                                  ValSpMnPnew.TYPEFIELD[1] = 1,
                                  ValSpMnPnew.TYPEFIELD[2] = 1,
                                  ValSpMnPnew.TYPEFIELD[3] = 2,
                                  ValSpMnPnew.TYPEFIELD[4] = 3,
                                  ValSpMnPnew.TYPEFIELD[5] = 1,
                                  ValSpMnPnew.TYPEFIELD[6] = 1,
                                  ValSpMnPnew.TYPEFIELD[7] = 3,
                                  ValSpMnPnew.TYPEFIELD[8] = 3,

                                  ValSpMnPnew.num        = 1,
                                  ValSpMnPnew.cSpMnPl = spmnplnew.nrec,
                                  ValSpMnPnew.KOLFIELD5 = pick.pickkol,
                                  ValSpMnPnew.kol     = pick.pickkol;
   }

Добавлено: 11 дек 2007, 04:44
Алексей
Alexander
ищите лучше - где-то эти записи отличаются от тех, что вставили вы.