MyTetra Share
Делитесь знаниями!
BEFOREOPEN
Время создания: 17.04.2017 16:17
Раздел: Global - Projects - VSZ - SEL_PDM_CoordStatusReport - Tree
Запись: xintrea/mytetra_db_mcold/master/base/1492435030rh47kaxo7t/text.html на raw.githubusercontent.com

<SQL>

<getMacros>

[out gst, RefreshItem#, spAttr#, spBands#]

begin

PDM_ProdSectionReportGst.GetCoordStatusGst(

idpProduct => :idpProduct

,idpGttType => :idGttTypeSect#

,idpProjectType => :idpProjectType

,idpProductVersion => :Filter$Flt_idProductVersion

,cpGst => :gst

,cpRi => :RefreshItem#

,cpNames => :spAttr#

,cpCaptions => :spBands#

);

end;

</getMacros>


-- проект

-- записываем значения в фильтры

<SetFlt>

[out Filter$Flt_idProduct, Filter$Flt_idProduct_HL, Filter$Flt_idProduct_MC]

begin

:Filter$Flt_idProduct := :idpProduct;

:Filter$Flt_idProduct_HL := PDM_ShipProductAPI.GetHeadLine(:idpProduct);

:Filter$Flt_idProduct_MC := PDM_ShipProductAPI.GetMnemoCode(:idpProduct);

end;

</SetFlt>


-- тип проекта

<SetFltPP>

[out Filter$Flt_idProjectType, Filter$Flt_idProjectType_HL]

begin

:Filter$Flt_idProjectType := :idp;

:Filter$Flt_idProjectType_HL := PDM_ProjectTypeAPI.GetHeadLine(:idp);


end;

</SetFltPP>



-- получение заголовка типа проекта по id

<setFltPPHL>

[out svHL]

begin

:svHL := PDM_ProjectTypeAPI.GetHeadLine(:idp);

end;

</setFltPPHL>

</SQL>


<pascal>


idvProduct:=nvl(GetVar('extIdProduct#'),GetVar('super$idGlobalProduct')); -- получаем значение проекта из глобального фильтра АРМа


if VarIsNull(GetVar('bFirstOpen#')) then -- если это 1-ое открытие

begin

Selection.ExecOpScript('OnFirstOpen'); -- то выполняем операцию для 1-ого открытия

if VarIsNull(GetVar('FILTER$Flt_idProjectType')) then -- если фильтр по типу null

ExecSqlEx('SetFltPP', 'idp', [ftFloat], [GetVar('IDGLOBALPROJECTTYPE')]); -- то заполняем по типу проекта - передаем id типа проекта


if VarIsNull(GetVar('Filter$Flt_idProduct')) then -- выполняем тоже самое по проекту

ExecSQLEx('SetFlt', 'idpProduct', [ftFloat], [GetVar('idGlobalProduct')]);

AddVar('bFirstOpen#', 0, ftFloat); -- добавляем переменную 'bFirstOpen#' = 0

if not VarIsNull(idvProduct) then -- записываем id-шник проекта в фильтр если он не null

begin

ClientSetVar('FILTER$Flt_idProduct',idvProduct);

Selection.ExecOpScript('SetFlt_idProduct');

Selection.AddVar('idProduct#', idvProduct, ftFloat);

end;

if VarIsNull(GetVar('FILTER$Flt_idProjectType')) then -- если фильтр пустой

begin

ClientSetVar('FILTER$Flt_idProjectType', GetVar('IDGLOBALPROJECTTYPE')); -- берем из глобального фильтра

res := ExecSqlEx('setFltPPHL', 'idp; svHL', [ftFloat, ftString], [GetVar('IDGLOBALPROJECTTYPE'), null]);

ClientSetVar('FILTER$Flt_idProjectType_HL', res[1]);

end;

end;

v := ExecSQLEx('getMacros', 'gst;RefreshItem#;spAttr#;spBands#;idpProduct;idpProjectType'

,[ftOraClob ,ftOraClob, ftOraClob, ftOraClob, ftFloat,ftFloat]

,['', '', '', '', GetSelfVar('Filter$Flt_idProduct'),GetVar('Filter$Flt_idProjectType')]

);

AddMacro('GstMacro#' , v[0]);

AddMacro('RefreshItemMacro#', v[1]);

AddVar ('sAttr#', v[2], ftString);

AddVar ('sBands#', v[3], ftString);


</pascal>

 
MyTetra Share v.0.59
Яндекс индекс цитирования