как быть тут...
Добавлено: 16 май 2002, 22:18
Привет !
Возникла необходимость подправить галактический интерфейс, а именно, отобразить в browse значения внешних атрибутов...
Было :
.....
From
KatSopr(KATSOPR02),
KatOrg(ReadOnly),
Synonym KatOrg KatOrg2(ReadOnly),
KlVal(ReadOnly),
UserTune(ReadOnly)
Where
((
TypeSoprIndKontr == KatSopr.VidSopr and
KatSopr.cOrgBase == KatOrg.NRec and
KatSopr.cValut == KlVal.NRec and
UserName == UserTune.OwnName
))
..
Browse
Panel pnKatSopr
table KatSopr;
Browse brKatSopr
table KatSopr
fields
KatOrg.Name
KatSopr.dSopr
KatSopr.Summa
KatSopr.SumVal
KlVal.SimvolV
VidDolg 'Вид долга' ('Вид задолженос
end; // browse
...
Добавил я в подцепки
...
and katsopr.nrec==attrval.crec
and 1109==attrval.wtable
and attrval.cattrnam==attrnam.nrec
and (1109=attrnam.WTABLE
and 'Группы ДО'=locase(attrnam.name))
...
в browse
..
attrval.VSTRING
..
Ну и в обработчике событий в событии Cmpick
следующее :
{
#attrval.vstring:
{
if (Runinterface(Getgrdo,cc1,nazv)<>Cmcancel)
then
{
if getfirst attrval=tsok
then
{
if attrval.vstring<>nazv
{
update current attrval
set
attrval.vstring:=nazv;
}
}
else
{
insert attrval set
attrval.wtable :=1109,
attrval.crec :=katsopr.nrec,
attrval.cattrnam:=40019E0E77E80747h,
attrval.vstring :=nazv;
}
Rescanpanel(#katsopr);
}
Все ничего, но по нажатию delete, если стоишь в поле attrval.vstring, и при дальнейшей смене позиции валятся ошибки :
1.Попытка записи недопустимого значения в таблицу 1109 (katsopr) (nrec=0).Операция отменена.
2. Код ошибки 203 табл 1109..
Может кто даст совет из-за чего такая штука происходит.
Может из-за того, что корневая таблица katsopr, и невозможно по delete удалить запись из attrval таким образом ??
Описал событие отдельно для attrval.vstring cmDelonprotect, но результат тот же.. :`( %
Возникла необходимость подправить галактический интерфейс, а именно, отобразить в browse значения внешних атрибутов...
Было :
.....
From
KatSopr(KATSOPR02),
KatOrg(ReadOnly),
Synonym KatOrg KatOrg2(ReadOnly),
KlVal(ReadOnly),
UserTune(ReadOnly)
Where
((
TypeSoprIndKontr == KatSopr.VidSopr and
KatSopr.cOrgBase == KatOrg.NRec and
KatSopr.cValut == KlVal.NRec and
UserName == UserTune.OwnName
))
..
Browse
Panel pnKatSopr
table KatSopr;
Browse brKatSopr
table KatSopr
fields
KatOrg.Name
KatSopr.dSopr
KatSopr.Summa
KatSopr.SumVal
KlVal.SimvolV
VidDolg 'Вид долга' ('Вид задолженос
end; // browse
...
Добавил я в подцепки
...
and katsopr.nrec==attrval.crec
and 1109==attrval.wtable
and attrval.cattrnam==attrnam.nrec
and (1109=attrnam.WTABLE
and 'Группы ДО'=locase(attrnam.name))
...
в browse
..
attrval.VSTRING
..
Ну и в обработчике событий в событии Cmpick
следующее :
{
#attrval.vstring:
{
if (Runinterface(Getgrdo,cc1,nazv)<>Cmcancel)
then
{
if getfirst attrval=tsok
then
{
if attrval.vstring<>nazv
{
update current attrval
set
attrval.vstring:=nazv;
}
}
else
{
insert attrval set
attrval.wtable :=1109,
attrval.crec :=katsopr.nrec,
attrval.cattrnam:=40019E0E77E80747h,
attrval.vstring :=nazv;
}
Rescanpanel(#katsopr);
}
Все ничего, но по нажатию delete, если стоишь в поле attrval.vstring, и при дальнейшей смене позиции валятся ошибки :
1.Попытка записи недопустимого значения в таблицу 1109 (katsopr) (nrec=0).Операция отменена.
2. Код ошибки 203 табл 1109..
Может кто даст совет из-за чего такая штука происходит.
Может из-за того, что корневая таблица katsopr, и невозможно по delete удалить запись из attrval таким образом ??
Описал событие отдельно для attrval.vstring cmDelonprotect, но результат тот же.. :`( %