Вывод данных из другой таблицы при доработке отчета

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

Sheinina при попытке сделать временную таблицу у меня ничего не выходит. Дело в том, что basedoc.nrec == attribut.crec не равно, значения разные. Сам выводил и смотрел. Да и еще у нас используются таблицы ATTRVAL и ATTRNAM - это почти тоже самое что ATTRCAT и ATTRIBUTE, типы полей одинаковые. Подскажите кто сможет через какую таблицу можно связать basedoc и attrval?
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

Все разобрался ATTRVAL.CREC == SPSTEP.NREC
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

Сообщение Max_Fin »

А кто говорил, что атрибуты привязаны к ДО? :lol:
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

Да просто писали для нас форму :), там как раз к ДО привязывалось. По аналогии смотрел. Осталось еще разобраться со вторым способом ;)
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

Возник еще один вопрос, как вывести только полу содержащее данные? У нас успользуются поля VSTRING и VDATE. Всего 3 атрибута, у первого VDATE, у остальных VSTRING
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

Сообщение Max_Fin »

если через логическую таблицу, то к примеру так

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

.fields
...
if (vMyTbl.AttrVal.vDate <> Date(0, 0, 0), vMyTbl.AttrVal.vDate, '') + ' ' + 
if (vMyTbl.AttrVal.vDouble <> Double(0), DoubleToStr(vMyTbl.AttrVal.vDouble, '666 666 666 666.88), '')
if (vMyTbl.AttrVal.vString <> '', vMyTbl.AttrVal.vString, 'Значение не определено')
...
.endfields
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

Спасибо все работает. Сделал через логическую таблицу.
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

Опять таки проблеммка.

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

.var
  DOVLIC:String
.endvar

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

.Create view t1 as select
attrval.*, stepdoc.*, attrnam.*, schfact.*
where ((
CSCHFACT == schfact.nrec and
schfact.cstepdoc == stepdoc.nrec and
stepdoc.nrec == spstep.cstepdoc and
spstep.nrec == attrval.crec and
ATTRNAM.NREC==ATTRVAL.CATTRNAM AND
1104==attrval.wtable)) and
(attrnam.name = 'доверенное лицо')
;

в fields
и при выводе пишу

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

.{table 't1' by attrnam.name;
.begin
  DOVLIC:=attrval.vstring;
end.
.}

@@@@@@@@@@
Подскажите как сделать, чтоб переменной присваивалось значение. Данная схема связана с тем, что поле стоит в одной строке еще за другими полями, которые, в свою очередь, беруться из другой логической таблицы.
scanner
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Кемерово, ОАО "Мелькорм"
Контактная информация:

Сообщение scanner »

Если сделать

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

.{table 't1' by attrnam.name; 
.begin 
  DOVLIC:=attrval.vstring; 
end. 
@@@@@@@@@@
.}
то тогда делаем

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

.Create view t1 as select 
attrval.*, stepdoc.*, attrnam.*, schfact.* 
where (( 
CSCHFACT == schfact.nrec and 
schfact.cstepdoc == stepdoc.nrec and 
stepdoc.nrec == spstep.cstepdoc and 
spstep.nrec == attrval.crec and 
ATTRNAM.NREC==ATTRVAL.CATTRNAM AND 
1104==attrval.wtable)) and 
((attrnam.name = 'доверенное лицо') or
(attrnam.name = '№ доверенности'))
;
при выводится все по 2 раза, сначала для 'доверенное лицо', а затем для '№ доверенности'.

Может подскажите как этого избежать
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Сообщение oiko »

используй синоним attrnam и атррвал
либо ограничь attrnam переменной
и в блоке begin end задавай ей значение
'доверенное лицо' or '№ доверенности'
Ответить