Код: Выделить всё
#component "L_DOGOVOR"
vipInterface AddMC ;//(SecurityPolicy);
public :
function fCollection ( nrecMC : comp ) : string;
function fTypeMC ( nrecMC : comp ) : string;
end;
Interface AddMC 'Каталог матценностей';
show at (,,100,30);
create view
//var kmcBARKOD : string;
// kmcName : string;
( ei, kgr, gr, collection, typeMC )
as select
ced->name,
cgroupmc->kod,
cgroupmc->name,
fCollection ( katmc.nrec ),
fTypeMC ( katmc.nrec ),
*
from katmc, exclassval, exclassseg
WHERE (( 5 == katmc.isArch ))
order by katmc.BARKOD
;
form SFkatmc("SFkatmc.out");
/*
*******************************************************************************
Название: fCollection ( nrecMC : comp ) : string;
Описание: Функция поиска вида коллекции у МЦ
Входные пар-ры: nrecMC : comp; - nrec МЦ
Выходные пар-ры: Название коллекции к которой принадлежит МЦ
*******************************************************************************
*/
function fCollection ( nrecMC : comp ) : string;
{
if ( GetFirst exclassval where (( nrecMC == exclassval.crec and 1411 == exclassval.wtable and 3 == exclassval.classcode )) = tsOk )
{ if ( GetFirst exclassseg where (( exclassval.cclassseg == exclassseg.nrec )) = tsOk )
fCollection := exclassseg.name;
} else fCollection := ' ';
}
/*
*******************************************************************************
Название: fTypeMC ( nrecMC : comp ) : string;
Описание: Функция поиска доп. характеристик прикрепленных к МЦ
(цв., р.р. и т.д.)
Входные пар-ры: nrecMC : comp; - nrec МЦ
Выходные пар-ры: Строку с перечислением описания доп. данных по МЦ
*******************************************************************************
*/
function fTypeMC ( nrecMC : comp ) : string;
{
var tempCATMC : string;
tempCATMC := '';
if ( GetFirst exclassval where (( nrecMC == exclassval.crec and 1411 == exclassval.wtable)) = tsOk )
{
do
{
if ( exclassval.classcode = 3 ){tempCATMC := tempCATMC + '';}
else
{
if ( GetFirst exclassseg where (( exclassval.cclassseg == exclassseg.nrec )) = tsOk )
tempCATMC := exclassseg.name + ' ' + tempCATMC;
}
} while ( GetNext exclassval where (( nrecMC == exclassval.crec and 1411 == exclassval.wtable )) = tsOk )
}
fTypeMC := tempCATMC;
}
browse brClasdisc;
fields
katmc.BARKOD 'Код' : [5], protect;
katmc.name 'Наименование товара' : [30], protect;
ei 'ед.и' : [3], protect, centered;
kgr 'код' : [6], skip;
gr 'группа' : [10], skip;
collection 'Коллекция' : [20], Protect;
typeMC 'вид' : [10], Protect;
katmc.volume '%сортн' : [5.1], Protect;
katmc.massa 'вес изд' : [5.1], Protect;
end;
handleEvent
cmInit :
{
// Ограничение отображения и возможностей работы с документом при ограничение прав
if( SecurityPolicy::fSecurityPolicy(sGetTune('user.descr'), 'ChangeMC') = FALSE )
cfsSetProp('brClasdisc','StatusCtx', sciAQACancel1);
else cfsSetProp('brClasdisc','StatusCtx', sciAQAEnEsc178 );
}
// Формирование отчета Списка МЦ
cmAqaReport : //cmEditReport :
{
if ( GetFirstIn(0,0) = 0 )
do
{
SFkatmc.Write(katmc.BARKOD); // Баркод МЦ
SFkatmc.Write(katmc.name); // Название МЦ
//SFkatmc.Write(ei); // Единица измерения
SFkatmc.Write(kgr); // Код группы к которой принадлежит МЦ
//SFkatmc.Write(gr); // Название группы
SFkatmc.Write(collection); // Название коллекции
SFkatmc.Write(typeMC); // Уточнение доп. информации о МЦ
SFkatmc.Write(katmc.volume); // % запланированного изготовления продукции
SFkatmc.Write(katmc.massa); // Масса изделия
}
while ( GetNextIn(0,0) = 0 )
SFkatmc.PutEvent(feBreak);
SFkatmc.ShowFile('');
}
// Редактирование данных по МЦ, вызов интерфейса L_MCU::KATMC
cmDefault : //cmArmEdit :
{
if(SecurityPolicy::fSecurityPolicy(UserName, 'ChangeMC') = FALSE){}
else
{
RunInterface('L_MCU::KATMC',katmc.nrec,0);
ReDrawPanel(tnkatmc);
stop;
}
}
// Вставка новой записи (Новой МЦ с условием katmc.isarch = 5;)
cmInsert :
{
insert katmc set katmc.isarch = 5;
ReReadRecord(#katmc);
RunInterface('L_MCU::KATMC',katmc.nrec,0);
ReDrawPanel(tnkatmc);
stop;
}
// Удаление МЦ
cmDelete :
{
cmRunInterface('L_MCU::KATMC', katmc.nrec,0);
ReDrawPanel(tnkatmc);
stop;
}
end;
end.