Код: Выделить всё
#include ExtAttr.Vih
#include TxoApi.vih
#Component "F_TxoApi"
VipInterface Txo_RentOSMC Implements ObjTxoIdentPlugin Licensed(Free);
! Простой интерфейс для обработки накладной
Interface Txo_RentOSMC;
!
create view TXOview
var
CurSoprDoc:comp;
CurTiDkGal:word;
as select
spkatos.nrec
,spkatos.CGRUP
,osmc.nrec
,osmc.cmc
,osmc.cKatos
,sposmc.nrec
,sposmc.cosmc
,sposmc.cnastros
,sposmc.SIZNM
,groupmc.nrec
,groupmc.kod
,katmc.nrec
,katmc.CGROUPMC
,attrval.nRec
,attrval.wtable
,attrval.cRec
,attrval.cattrnam
,attrval.vcomp
from
spkatos (readonly)
,OSMC (readonly)
,SPOSMC (readonly)
,KATMC (readonly)
,GROUPMC (readonly)
,ATTRVAL (readonly)
where
((
CurSoprDoc == OSMC.cKatos and
OSMC.cmc == KatMC.nrec and
Katmc.CGROUPMC == GROUPMC.nrec and
9002 == GROUPMC.KOD and
OSMC.nrec == SPOSMC.COSMC and
cogettune('OS.USER.METUM') == SPOSMC.CNASTROS and
OSMC.nrec == ATTRVAL.cRec and
word(3109) == ATTRVAL.WTABLE
));
function GetInfo : string;
{
GetInfo := 'обработка состава инвертарной карточки сданных в аренду';
}
function ParamMaster : string;
{
Message('!!!');
ParamMaster :='';
}
procedure StoreCycles(hTxo : longint; buf : TTxoApiInfoDoc);
{
// установить ограничения на логическую таблицу
CurTiDkGal := buf.TiDkgal;
CurSoprDoc := buf.cSoprDoc;
!
TxoAllowRecallStoreCycles(hTxo);
! TxoHeadAddKau(hTxo, wFlKau_auto, 18, KatSopr.cOrg)
// построить выгрузку циклов
TXOview._loop OSMC
{
if(getfirst katmc = tsok)
{
if(getfirst GROUPMC= tsok)
{
if(getfirst SPOSMC = tsok)
{
TxoBodyClear(hTxo); // очистить промежуточный буффер
!
TxoBodyAddKau(hTxo, 0, 1 , coGetAttr (3109; OSMC.nrec; 'Арендатор'));
TxoBodyAddKau(hTxo, 0, 14, coGetAttr (3109; OSMC.nrec; 'Аренда договор'));
!
TxoBodySetSum(hTxo, round(SPOSMC.SIZNM,0), 0, 0); // закачать суммы
TxoBodyInsert(hTxo); // добавить в выгрузку
}
}
}
}
}
end.