Не могу достать "старое" значение поля

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

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

Ответить
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Не могу достать "старое" значение поля

Сообщение s2176 »

Добрый день!
Не могу достать "старое" значение поля, получается, что всегда оно равно 0, но это не так!
Специально вставила message, который всегда выдает 0 :sad:

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

cmCheckField:
 { var yy1: word;
   if curfield=#yy 
   { yy1:=word(OldFieldValue);
message(string(yy1))
     if yy1<>yy
     { if yy<2010 
       { if message('Не рекомендуется править год меньше 2010, вы абсолютно уверены?', YesNo)=cmNo
           then { message('И это мудрое решение!'); yy:=yy1; redrawpanel(sc1); break; }
       }
       if po.getfirst planotpusk = tsOk
         then { po_datan:=po.planotpusk.workyearbeg;
                po_datok:=po.planotpusk.workyearend; nrec_po:=po.planotpusk.nrec;
              } 
         else { message('Не сформирован плановый отпуск на '+string(yy)+' год!'); 
                po_datan:=date(0,0,0); po_datok:=date(0,0,0);
              }
     } 
   }
   redrawpanel(sc1); 
 }  
Кто сказал, что бесполезно биться головой об стену?!
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Не могу достать "старое" значение поля

Сообщение n0where »

По идеее если первый раз пришел в поле, то наверно оно 0 и будет равно. Наверно следует проверку на это сделать
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Re: Не могу достать "старое" значение поля

Сообщение s2176 »

При первом входе там стоит 2010, это устанавливается в cmInit.
Сколько бы раз я ни заходила в это поле, что бы ни устанавливала, message всегда выдает 0.
Кто сказал, что бесполезно биться головой об стену?!
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Не могу достать "старое" значение поля

Сообщение edward_K »

вы лучше OldFieldValue выведите. Или сначала передайте в строку и ее в message.
word не переваривает наличие "." и прочей фигни. Ну как и другие функции преобразования типа.
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Re: Не могу достать "старое" значение поля

Сообщение s2176 »

OldFieldValue тоже выводила, выходит пустая строка
Кто сказал, что бесполезно биться головой об стену?!
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

Re: Не могу достать "старое" значение поля

Сообщение n0where »

Если вам надо чтобы год был не менее 2010 почему бы не сделать прямо:

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

cmCheckField:
{
   if curfield=#yy {
     if (yy<2010) {
       if (message('Не рекомендуется ставить год меньше 2010, вы абсолютно уверены?', YesNo)=cmNo) {
              abort;
       }
     }
     if po.getfirst planotpusk = tsOk
         then { po_datan:=po.planotpusk.workyearbeg;
                po_datok:=po.planotpusk.workyearend; nrec_po:=po.planotpusk.nrec;
              }
         else { message('Не сформирован плановый отпуск на '+string(yy)+' год!');
                po_datan:=date(0,0,0); po_datok:=date(0,0,0);
              }
   redrawpanel(sc1);
   }
}  
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Не могу достать "старое" значение поля

Сообщение edward_K »

а да. а yy как описана? должна быть бы в create view
и попробуйте поиграться с полем из таблы.
s2176
Местный житель
Сообщения: 473
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск

Re: Не могу достать "старое" значение поля

Сообщение s2176 »

Точно, помогло!
Спасибо, Edward_K!
Кто сказал, что бесполезно биться головой об стену?!
Ответить