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

Добавлено: 13 май 2005, 08:32
scanner
Sheinina при попытке сделать временную таблицу у меня ничего не выходит. Дело в том, что basedoc.nrec == attribut.crec не равно, значения разные. Сам выводил и смотрел. Да и еще у нас используются таблицы ATTRVAL и ATTRNAM - это почти тоже самое что ATTRCAT и ATTRIBUTE, типы полей одинаковые. Подскажите кто сможет через какую таблицу можно связать basedoc и attrval?

Добавлено: 13 май 2005, 08:57
scanner
Все разобрался ATTRVAL.CREC == SPSTEP.NREC

Добавлено: 13 май 2005, 09:08
Max_Fin
А кто говорил, что атрибуты привязаны к ДО? :lol:

Добавлено: 13 май 2005, 09:13
scanner
Да просто писали для нас форму :), там как раз к ДО привязывалось. По аналогии смотрел. Осталось еще разобраться со вторым способом ;)

Добавлено: 13 май 2005, 09:27
scanner
Возник еще один вопрос, как вывести только полу содержащее данные? У нас успользуются поля VSTRING и VDATE. Всего 3 атрибута, у первого VDATE, у остальных VSTRING

Добавлено: 13 май 2005, 09:56
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

Добавлено: 13 май 2005, 11:38
scanner
Спасибо все работает. Сделал через логическую таблицу.

Добавлено: 17 май 2005, 11:09
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.
.}

@@@@@@@@@@
Подскажите как сделать, чтоб переменной присваивалось значение. Данная схема связана с тем, что поле стоит в одной строке еще за другими полями, которые, в свою очередь, беруться из другой логической таблицы.

Добавлено: 17 май 2005, 11:53
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 раза, сначала для 'доверенное лицо', а затем для '№ доверенности'.

Может подскажите как этого избежать

Добавлено: 17 май 2005, 12:34
oiko
используй синоним attrnam и атррвал
либо ограничь attrnam переменной
и в блоке begin end задавай ей значение
'доверенное лицо' or '№ доверенности'