Код: Выделить всё
Const
xlColorBlack = 0;
end;
Interface kor_zayavki_test 'Заявки' (,,sci178InsPM) escclose;
show at(,,93,30);
table struct teemp
(
nrek:string
)
With Index (idx1=nrek);
create view
var
dat1:date
dat2:date
date1:date
date2:date
zdate:date
flag:boolean
myorg:string[151];
mydescr:string[21];
sort:string[20];
as
Select *
From basedoc, katorg, lastnumd, zayavki2,teemp _teemp
Where
((
word(60001)==lastnumd.lndtype
and word(201)==basedoc.viddoc
and dat1<<=basedoc.ddoc
and dat2>>=basedoc.ddoc
//and ''!=basedoc.nkvit
and basedoc.corg == katorg.nrec
//and teemp.nrek == zayavki2.Znom
and dat1<<=zayavki2.zdat
and dat2>>=zayavki2.zdat
))
//order by_zdat by zayavki2.zdat
//order by_zdat_desc by zayavki2.zdat (desc)
bounds sort_zdat ordered by zayavki2.zdat
bounds sort_zdat_desc ordered by zayavki2.zdat (desc)
//bounds sort_zdat_desc ordered by index zayavki2.zayavki_02 (desc)
bounds sort_znom ordered by zayavki2.znom
bounds sort_ddoc ordered by zayavki2.ddoc
bounds sort_nodoc ordered by zayavki2.nodoc
bounds sort_org ordered by zayavki2.org
bounds sort_descr ordered by zayavki2.descr
bounds sort_status ordered by zayavki2.status
bounds sort_status_desc ordered by zayavki2.status (desc)
;
window z_edit;
show at(,,73,5);
var wzdate:date;
var wsdate:date;
var wstime:time;
var wkdate:date;
var wktime:time;
var wzprim:string[70];
screen z_edit_screen show at(,,72,4);
fields
wzdate:,noprotect;
wsdate:,noprotect;
wstime:,noprotect;
wkdate:,noprotect;
wktime:,noprotect;
wzprim:,noprotect;
buttons
cmOK, default;
<<
Дата заявки .@@@@@@@@@@ Отправка на склад .@@@@@@@@@@ .@@@@@@@@@@
Поступление на склад .@@@@@@@@@@ .@@@@@@@@@@
Примечание
.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<. ok .>
>>
end;
handleevent
cmInit:
{
wzdate:=zayavki2.zdat;
wsdate:=zayavki2.sdate;
wstime:=zayavki2.stime;
wkdate:=zayavki2.kdate;
wktime:=zayavki2.ktime;
wzprim:=zayavki2.zprim;
}
cmOK:
{
update current zayavki2 set
zdat:=wzdate,
zprim:=wzprim;
if (mydescr='ALX' or mydescr='ALE' or mydescr='SME' or mydescr='KIM') {
update current zayavki2 set
sdate:=wsdate,
stime:=wstime;
}
if (mydescr='ALX' or mydescr='ALE' or mydescr='POS') {
// message('update current zayavki2 set kdate:='+string(wkdate)+', ktime:='+string(wktime)+';');
update current zayavki2 set
kdate:=wkdate,
ktime:=wktime;
}
closewindow(z_edit);
rereadrecord();
RescanPanel (#zayavki2);
}
end;
end;
window do_select;
screen do_params show at(,,,1);
fields
zdate:,noprotect;
buttons
cmOK, default;
<<
Дата заявки .@@@@@@@@@@ <. ok .>
>>
end;
panel P2
show at(,2,,);
browse Bro2
table basedoc;
fields
basedoc.ddoc 'Дата' :[9],protect;
basedoc.nodoc 'Номер':[8],protect;
katorg.name 'Организация':[40],protect;
end;
end;
handleevent
cmInit:
{
zdate:=cur_date;
flag:=false;
}
cmOK:
{
flag:=true;
closewindow(do_select);
}
end;
end;
screen params
show at(,,,3);
fields
date1:,noprotect;
date2:,noprotect;
buttons
cmSelect;
cmAdd;
cmZEdit;
cmDel;
cmCancel;
<<
с .@@@@@@@@@@ по .@@@@@@@@@@ <.Выбрать/Обновить данные за период.>
<.Добавить.> <.Изменить статус.> <.Удалить.> <. Закрыть интерфейс .>
>>
end;
panel P1
show at(1,4,92,);
browse Bro1
table zayavki2;
fields
if (isValid(#_teemp), 'v', 'x'):[1],skip, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
// katorg.name 'Наименование организации':[30],protect, {FONT = { COLOR = IF( isvalid(tn_katorg), 3, 0)}};
zayavki2.zdat 'Дата':[9],protect, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
zayavki2.znom 'Номер':[8],protect, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
IF(zayavki2.status=0, 'нов.', IF(zayavki2.status=1, 'исп.', IF(zayavki2.status=2, 'резерв', 'готово'))) 'Статус':[9],protect, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
zayavki2.ddoc 'Дата с/ф':[9],protect, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
zayavki2.nodoc 'Номер с/ф':[8],protect, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
zayavki2.descr 'Деск.':[5],protect,{FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
zayavki2.sdate 'Дата скл.>':[9],protect, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
zayavki2.stime 'Время скл.>':[9],protect, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
zayavki2.kdate 'Дата скл.^':[9],protect, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
zayavki2.ktime 'Время скл.^':[9],protect, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
zayavki2.org 'Организация':[30],protect, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
zayavki2.zprim 'Примечания':[30],protect,{FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};
end;
end;
handleevent
cmMarkUnMark:
{message ('cmMarkUnMark');
if not isValid(#_teemp)
{
insert in teemp set teemp.nrek:=zayavki2.ZNOM;
message(teemp.nrek);
if getnext zayavki2 = tsOk {}
}
else
{
delete from teemp where ((zayavki2.ZNOM==teemp.nrek));
if getnext zayavki2 = tsOk {}
}
RescanPanel (#zayavki2);
}
cmSelectAll:
{ message ('cmSelectAll');
PushPos(tnzayavki2);
_loop zayavki2 if not isValid(#_teemp) insert in teemp set teemp.nrek:=zayavki2.ZNOM;
PopPos(tnzayavki2);
RescanPanel (#zayavki2);
}
cmUnSelectAll:
{ message ('cmUnSelectAll');
PushPos(tnzayavki2);
delete all from teemp;
PopPos(tnzayavki2);
RescanPanel (#zayavki2);
}
cmInvertAll:
{ // Обработка клавиши "Gray *"
message ('cmInvertAll');
PushPos(tnzayavki2);
_loop zayavki2
if not isValid(#_teemp)
{
insert in teemp set teemp.nrek:=zayavki2.ZNOM;
}
else
{
delete from teemp where ((zayavki2.ZNOM==teemp.nrek));
}
PopPos(tnzayavki2);
RescanPanel (#zayavki2);
};
cmZEdit:
{
var stat:word;
// message(mydescr);
if (mydescr<>'ALE' and mydescr<>'ALX' and mydescr<>'SME' and mydescr<>'KIM' and mydescr<>'POS') exit;
// message('cmDefault');
// 0 - новая
// 1 - исполненная
// 2 - резерв
// 3 - другая
stat := zayavki2.status;
// message(stat);
if (stat=3) stat:=0;
else stat:=stat+1;
// message(stat);
update current zayavki2 set zayavki2.status := stat;
rereadrecord();
RescanPanel (#zayavki2);
}
cmColumnClicked:
{
case Target of
#zayavki2.zdat : {
// SetOrder(tiby_zdat);
// SetOrder(tiby_zdat_desc);
// Pushbounds(tbsort_zdat);
// Pushbounds(tbsort_zdat_desc);
// settablebackorderin (#zayavki2, true);
Pushbounds(tbsort_zdat);
if (sort='date-desc') then {
sort:='date-asc';
settablebackorderin (#zayavki2, false);
} else {
sort:='date-desc';
settablebackorderin (#zayavki2, true);
}
}
#zayavki2.znom : {
Pushbounds(tbsort_znom);
}
#zayavki2.ddoc : {
Pushbounds(tbsort_ddoc);
}
#zayavki2.nodoc : {
Pushbounds(tbsort_nodoc);
}
#zayavki2.org : {
Pushbounds(tbsort_org);
}
#zayavki2.descr : {
Pushbounds(tbsort_descr);
}
-1 : {
Pushbounds(tbsort_status);
// Pushbounds(tbsort_status_desc);
}
end;
rereadrecord();
RescanPanel (#zayavki2);
}
cmInit:
{
myorg := sGetTune('MyOrg');
mydescr := sGetTune('USER.DESCR');
//message(mydescr + ' ' + myorg);
getfirst lastnumd;
date1:=sub_months(cur_date,3);
date2:=add_months(cur_date,1);
dat1:=date1;
dat2:=date2;
//message(dat1);
//getfirst zayavki2;
if getlast zayavki2 <> tsOk {};
Pushbounds(tbsort_zdat);
sort:='date-desc';
settablebackorderin (#zayavki2, true);
rereadrecord(#zayavki2);
RescanPanel (#zayavki2);
}
cmSelect:
{
dat1:=date1;
dat2:=date2;
//message(dat1);
PopBounds(tnzayavki2);
if getlast zayavki2 <> tsOk {};
rereadrecord();
RescanPanel (#zayavki2);
}
cmAdd:
{
var lastnum:integer;
var slastnum:string;
rereadrecord();
getfirst lastnumd;
rereadrecord();
RunWindowModal(do_select);
if (flag=false) exit;
//message(basedoc.ddoc + ' ' + basedoc.nodoc);
lastnum:=integer(lastnumd.lndnum)+1;
slastnum:=DoubleToStr(lastnum,'777777');
update current lastnumd set lndnum:=slastnum;
insert into zayavki2 set
zayavki2.cbasedoc := basedoc.nrec,
zayavki2.znom := slastnum,
zayavki2.zdat := zdate,
zayavki2.nodoc := basedoc.nodoc,
zayavki2.ddoc := basedoc.ddoc,
zayavki2.org := katorg.name,
zayavki2.descr := basedoc.descr
zayavki2.status := 0;
rereadrecord();
RescanPanel (#zayavki2);
}
///////////////////////////УДАЛЕНИЕ ЗАЯВОК////////////////////////////
cmDel:
{
if (mydescr<>'ALX' and mydescr<>'ALE' and mydescr<>'SME' and mydescr<>'KIM') exit;
//delete current from zayavki2;
//getfirst zayavki2;
_loop zayavki2
{
_loop teemp
{
if(zayavki2.ZNOM=teemp.nrek) then
message ('УРА ___ '+ zayavki2.znom);
}
}
rereadrecord();
RescanPanel (#zayavki2);
}
////////////////////////////////////////////////////////////////////ё
cmDefault:
{
RunWindowModal(z_edit);
}
cmCancel:
{
closeinterface(cmDone);
}
end;
end.
Почему вот эта строка не срабатывает, что опять я не так делаю

Код: Выделить всё
if (isValid(#_teemp), 'v', 'x'):[1],skip, {FONT = { COLOR = IF( zayavki2.status = 1, 3, IF (zayavki2.status =2, 2, IF (zayavki2.status =3, 13, 0)))}};