Стоит задача создать vip-интерфейс.
При компиляции вылетает следующая ошибка:
Ожидалась «)» (стр.20, поз.1) when T$BASEDOC.f$tipmoney=1 then ‘руб’
У меня возникают сомнению по поводу правильности написания вьюхи... можно ли использовать такую конструкцию CASE?
interface_filter.vih
Код: Выделить всё
vipInterface interface_filter;
public:
dataStream NaProdstream;
end;
Код: Выделить всё
#define ComponentVersion
#component "L_BASEDOC"
#include interface_filter.vih
interface interface_filter;
const
CmPrintdoc = 3440;
end;
create view NaProd
as select distinct
T$BASEDOC.f$viddoc,--ўЁ¤ ¤®Єг¬Ґв
T$BASEDOC.f$nodoc,--ь ¤®Ј®ў®а
T$BASEDOC.f$name,--ЇаЁ¬Ґз ЁҐ
T$BASEDOC.f$ddoc,--¤ в
T$BASEDOC.f$total,-- б㬬
T$BASEDOC.f$descr,--¤ҐбЄаЁЇв®а
T$BASEDOC.f$cval,--ббл«Є nrec klval
VAL =
case
when T$BASEDOC.f$tipmoney = 1 then 'агЎ'
when T$BASEDOC.f$tipmoney = 2 then '¤®«'
when T$BASEDOC.f$tipmoney = 3 then 'Ґўа®'
else 'not fix'
end,
--T$KLVAL.f$simvol, ---ў «ов
T$BASEDOC.f$corg, -- ббл«Є nrec Katorg
T$KATORG.f$name --Ё¬п ®аЈ Ё§ жЁЁ
from T$BASEDOC,T$KATORG,T$KLVAL
where ((T$BASEDOC.f$viddoc == 201 and T$BASEDOC.f$corg == T$KATORG.f$nrec))
;
screen NaProdscreen;
buttons CmPrintdoc;
<<
<.ЇҐз вм.>
>>
end;
datastream NaProdstream
(
[User] UserName;
table NaProd
(
[Ndoc] T$BASEDOC.f$nodoc;
[date] T$BASEDOC.f$ddoc;
[descr] T$BASEDOC.f$descr;
[nameorg] T$KATORG.f$name;
[summa] T$BASEDOC.f$total;
[val] VAL;
[note] T$BASEDOC.f$name;
);
)
handleevent table NaProd
cmOnProcess:
if (not NextVisual)
BreakProcess;
end;
handleevent
cmPreProcess:
StartNewVisual(vtRotateVisual, vfTimer + vfBreak + vfConfirm, 'Формируется отчет', 0);
cmPostProcess:
StopVisual('', 0);
end;
end;
handleevent
cmPrintdoc:
RunFReport(NaProdstream,'', false);
end;
End.