.linkform "ReestrDovShort1" prototype is DOVERREESTR
.nameinlist ’Реестр доверенностей (rtf) 3’
.group ’Реестр доверенностей’
.var
X:string
.endvar
.create view dov
as select dover.status,dover.nrec,attrval.vstring
from dover(readonly),attrval(readonly)
where
comp(attrval.crec) = comp(dover.nrec) and attrval.wtable = 1138 and comp(attrval.cattrnam) = comp(0138000000002306h)
;
.fields
номер_доверености
дата_выдачи
срок_действия
фамилия_дов_лица
должность
наименование_поставщика
номер_счета
дата_счета
номер_накладной
дата_накладной
X
.endfields
Форма М-3
Утверждена
постановлением Госкомстата СССР
28.12.1989 № 241
__________________________
(предприятие, организация)
Код по ОКУД
ЖУРНАЛ УЧЕТА ВЫДАННЫХ ДОВЕРЕННОСТЕЙ ЗА 20__ Г.
Номер доверенности Дата выдачи Срок действия доверенно-сти Должность и фамилия лица, которому выдана доверенность Поставщик Номер и дата наряда (заменяющего наряд документа или извещения)
Расписка лица, получившего доверенность Номер, дата документа, подтверждающего выполнение поручения
1 2 3 4 5 6 7 8
.{
!.{?internal;
.begin
if ( (dov.getfirst where dov.nrec=нрек_доверености) = tsok )
X:=dov.vstring;
end.
^ ^ ^ ^, ^ ^ ^ ^ ^ ^ ^
.}
.endform
добавить в create view то отчет зависнет просто. Уже добавил период формирования явно зауженным - ничего не помогает. Думаю, в принципе тут только можно присоединить нужную таблицу не в присоединенной форме, а в самой форме только как это сделать
.create view dov
as select dover.status,dover.nrec,attrval.vstring
from dover(readonly),attrval(readonly)
where
((
нрек_доверености == dover.nrec
and 1138 == attrval.wtable
and dover.nrec == attrval.crec
and 0138000000002306h == attrval.cattrnam
));
DOVER\REESTRDOVSHORT4_DOVERREESTR.RTF(7)
Ошибка: Ожидалось : "From","Where","Order","Bounds","Condition","FilterFields","To","Var","," или ";" (стр.7, поз.65 в DOVER\REESTRDOVSHORT4_DOVERREESTR.RTF)
.create view dov select dover.status,dover.nrec,attrval.vstring dover(readonly),attrval(readook.
Может какая-то версия другая?
Кстати, многие примеры тут на форуме, которые полностью выложены тупо не компилируются из-за синтаксических ошибок, версия атлантиса у нас 5.4.14, Галактика 8.10
.create view dov
from dover,attrval
where
((
comp(нрек_доверености) == dover.nrec
and 1138 == attrval.wtable
and dover.nrec == attrval.crec
and 0138000000002306h == attrval.cattrnam
));
Иван
Алексей ведь правильно все написал, оба примера должны работать. А тот код, на который компилятор ругается, вы уже сами испортили. Где "as", где "from"?
И почитайте наконец документацию. Двойные круглые скобки и двойной знак равенства - это не одинарные скобки и одинарный знак. Документация, может, и похуже, чем от Кернигана и Ричи, но другой нет, все по этой учились. Разберите пару готовых примеров, с "Галактикой" идут исходники FRM-ов, там море отчетов с логическими таблицами.
.linkform "ReestrDovShort1" prototype is DOVERREESTR
.nameinlist ’Реестр доверенностей (внеш. атр.)’
.group ’Реестр доверенностей’
.var
X:string
.endvar
.create view dov
as select
attrval.vstring
from
attrval(readonly)
where
((
нрек_доверености == attrval.crec (noIndex)
And
root == attrval.cattrnam
And
(attrval.cattrnam = 013800000000230Bh
And
attrval.wtable = 1138)
));
.fields
номер_доверености
дата_выдачи
срок_действия
фамилия_дов_лица
должность
наименование_поставщика
номер_счета
дата_счета
номер_накладной
дата_накладной
X
.endfields
Форма М-3
Утверждена
постановлением Госкомстата СССР
28.12.1989 № 241
__________________________
(предприятие, организация)
Код по ОКУД
ЖУРНАЛ УЧЕТА ВЫДАННЫХ ДОВЕРЕННОСТЕЙ ЗА 20__ Г.
Номер доверенности Дата выдачи Срок действия доверенно-сти Должность и фамилия лица, которому выдана доверенность Поставщик Номер и дата наряда (заменяющего наряд документа или извещения)
Расписка лица, получившего доверенность Номер, дата документа, подтверждающего выполнение поручения
1 2 3 4 5 6 7 8
.{
!.{?internal;
.begin
if ( (dov.getfirst ) = tsok )
X:=dov.vstring;
end.
^ ^ ^ ^, ^ ^ ^ ^ ^ ^ ^
.}
.endform
да действительно так намного проще
просто я в догонку к этому отчету приделал чтобы в поле выводили номера ордеров накладных, которые привязаны к доверенностями
where
((
нрек_доверености == attrval.crec (noIndex)
And
root == attrval.cattrnam
And
(attrval.cattrnam = 013800000000230Bh
And
attrval.wtable = 1138)
));
Возможно, этот код и дает нужные вам результаты, но в нем для каждой доверенности будет выполняться обход всех записей таблицы ATTRVAL. Пока в этой таблице несколько сотен или тысяч записей, замедления можете не почувствовать, а если счет пойдет на сотни тысяч или миллионы?
Призываю вас все-таки разобраться, как пишутся внутренности двойных круглых скобок. Вариант с VIH-ом в данном случае сработает, но далеко не всегда найдется подходящий VIH, избавляющий от построения своего view.
А KATZ ой как прав... Запросик конечно тот еще...
Для начала необходимо проанализировать индексы таблицы AttrVal и выбрать наиболее подходящий. В данном случае это AttrVal3. Модифицируем вьюшку: