<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>