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

Вывод внешних атрибутов в печатную форму

Добавлено: 24 июл 2013, 15:03
Mari
Добрый день!

Подскажите новичку почему не выходят в печатную форму значения атрибутов:

Код: Выделить всё

.create view ViewKorg
as select * from KatOrg, Katsopr
where ((АКТ_нрек==KatSopr.Nrec and
        KatSopr.Corg==KatOrg.nrec));
.create view ViewDolgFace
as select * from Attrnam, attrval
where   ((ViewKorg.katorg.nrec=attrval.crec
        and attrnam.name=’В лице кого’))  and
((Attrval.cattrnam==attrnam.nrec and
        1418==attrval.wtable));
.create view ViewRukovod
as select * from Attrnam, attrval
where 
     ViewKorg.katorg.nrec=attrval.crec
      and attrnam.name=’ФИО руководителя’
and
((Attrval.cattrnam==attrnam.nrec and
      1418==attrval.wtable));
.fields
ViewDolgFace.attrval.vstring
ViewRukovod.attrval.vstring
.endfields
Атрибуты заведены в таблице KATORG. Почему не выводится в печатную форму Акта? Отчет в rtf.

Re: Вывод внешних атрибутов в печатную форму

Добавлено: 24 июл 2013, 15:12
Den
Можно в одну ЛТ запихнуть все навреное
.create view ViewKorg
as select * from KatOrg, Katsopr,attrval,attrnam
where (( АКТ_нрек==KatSopr.Nrec
and KatSopr.Corg==KatOrg.nrec
and katorg.nrec==attrval.crec
and ’В лице кого’==attrnam.name
and word(1418) == attrnam.wtable
and attrnam.nrec == attrval.cattrnam
and word(1418) == attrval.wtable
....
))

далее внутри цикла НУЖНОГО нужно сделать что то вроде
{
.begin
if ViewKorg.getfirst katsopr=0
if ViewKorg.getfirst attrnam=0
if ViewKorg.getfirst attval=0
{}
end.
...
}

Re: Вывод внешних атрибутов в печатную форму

Добавлено: 24 июл 2013, 15:24
Ольга
А зачем разводить эту канитель с ЛТ ради ВА? Для работы с атрибутами намного проще использовать ExtAttr.Vih. KatOrg.Nrec нужен конечно, но может он в прототипе есть (лезть смотреть лень).

Re: Вывод внешних атрибутов в печатную форму

Добавлено: 24 июл 2013, 15:34
edward_K
кто вас так учил писать запросы?
зачем 2 вьюхи?
Вообще сначала пытаетесь сделать выборку в сапорте - заодно оптимизируете скорость запроса - запросы в галактике это не запросы в MSSQL(если их делать без DSQL).
Если там проходит, то уже делаете форму.
В 10 раз говорю - в формах нужно принудительное позиционирование по каждой табле(последовательно от главной к дочерним), либо поля перечисляются в select и позиционирование делается по логической таблице. Нужны либо циклы .{table 'view.table' либо программные блоки с view.getfirst table.