Почему не присваивается?

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Почему не присваивается?

Сообщение RAJAH »

Странно... Почему значение не присваивается полю временной таблицы:

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

     rab._loop
     {
       ls:=rab.sumvidop.clsch;
       vrem._loop
       {
         srch:=vrem.lstab.chasf;
       }
       srsum:=rab.sumvidop.summa;
       rz:=rab.sumvidop.razr;
       zarprof.insert svedpr set
         svedpr.fcls:=ls,
         svedpr.fcpod:=rab.katpodr.nrec,
         svedpr.fcnr:=rab.sumvidop.nrec,
         svedpr.fcdol:=rab.sumvidop.cappoint,
         svedpr.frazr[mm]:=rz,
         svedpr.fch[mm]:=srch,
         svedpr.frub[mm]:=srsum;
       if rab.sumvidop.clsch=1000000000759h then message(zarprof.svedpr.frub[mm]+chr(13)+srsum+chr(13)+rab.sumvidop.summa);
     }
Message выдаёт нечто вроде
---------------------------
Информация
---------------------------
0.00
1791.12
1791.12
---------------------------
ОК
---------------------------
Спасибо, что поломали голову...
evchic
Местный житель
Сообщения: 216
Зарегистрирован: 25 апр 2006, 12:05
Откуда: г.Ростов-на-Дону
Контактная информация:

Сообщение evchic »

zarprof.svedpr.frub[mm] а что за mm
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Сообщение RAJAH »

Да. Наверное, так будет понятнее:

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

.begin
   for (i:=0; i<=n; i:=i+1)
   {
     mm:=month(Add_months(begper, i));
     yy:=year(Add_months(begper, i));
     rab._loop
     {
       ls:=rab.sumvidop.clsch;
       vrem._loop
       {
         srch:=vrem.lstab.chasf;
       }
       srsum:=rab.sumvidop.summa;
       rz:=rab.sumvidop.razr;
       zarprof.insert svedpr set
         svedpr.fcls:=ls,
         svedpr.fcpod:=rab.katpodr.nrec,
         svedpr.fcnr:=rab.sumvidop.nrec,
         svedpr.fcdol:=rab.sumvidop.cappoint,
         svedpr.frazr[mm]:=rz,
         svedpr.fch[mm]:=srch,
         svedpr.frub[mm]:=srsum;
       if rab.sumvidop.clsch=1000000000759h then message(zarprof.svedpr.frub[mm]+chr(13)+srsum+chr(13)+rab.sumvidop.summa);
     }
   }
end.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

1. в конструкции "insert set" не надо использовать таблы разных вьюшек - странно что на это не жалуетесь - раньше галка падала по рантайм.
2. масиивы то же не надо использовать - их раньше и компилятор не пропускал.
сделайте так
zarprof.svedpr.fcls:=ls ;
zarprof.svedpr.fcpod:=rab.katpodr.nrec ;
zarprof.svedpr.fcnr:=rab.sumvidop.nrec ;
zarprof.svedpr.fcdol:=rab.sumvidop.cappoint ;
zarprof.svedpr.frazr[mm]:=rz ;
zarprof.svedpr.fch[mm]:=srch ;
zarprof.svedpr.frub[mm]:=srsum;
zarprof.insert current svedpr ;
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Сообщение RAJAH »

:cool:
Ответить