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

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

Добавлено: 01 мар 2011, 10:18
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); 
 }  

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

Добавлено: 01 мар 2011, 10:35
n0where
По идеее если первый раз пришел в поле, то наверно оно 0 и будет равно. Наверно следует проверку на это сделать

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

Добавлено: 01 мар 2011, 10:39
s2176
При первом входе там стоит 2010, это устанавливается в cmInit.
Сколько бы раз я ни заходила в это поле, что бы ни устанавливала, message всегда выдает 0.

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

Добавлено: 01 мар 2011, 10:41
edward_K
вы лучше OldFieldValue выведите. Или сначала передайте в строку и ее в message.
word не переваривает наличие "." и прочей фигни. Ну как и другие функции преобразования типа.

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

Добавлено: 01 мар 2011, 10:42
s2176
OldFieldValue тоже выводила, выходит пустая строка

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

Добавлено: 01 мар 2011, 10:52
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);
   }
}  

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

Добавлено: 01 мар 2011, 11:07
edward_K
а да. а yy как описана? должна быть бы в create view
и попробуйте поиграться с полем из таблы.

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

Добавлено: 01 мар 2011, 12:04
s2176
Точно, помогло!
Спасибо, Edward_K!