Добрый день!
Не могу достать "старое" значение поля, получается, что всегда оно равно 0, но это не так!
Специально вставила message, который всегда выдает 0
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);
}
Кто сказал, что бесполезно биться головой об стену?!
При первом входе там стоит 2010, это устанавливается в cmInit.
Сколько бы раз я ни заходила в это поле, что бы ни устанавливала, message всегда выдает 0.
Кто сказал, что бесполезно биться головой об стену?!
вы лучше OldFieldValue выведите. Или сначала передайте в строку и ее в message.
word не переваривает наличие "." и прочей фигни. Ну как и другие функции преобразования типа.
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);
}
}
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны