AutoCalculate(Layer: IMapLayer; DataAdapter: Object; AttributeName: String);
Layer. Слой карты;
DataAdapter. Значение из куба, соответствующее территории с заданным атрибутом;
AttributeName. Атрибут карты.
Метод AutoCalculate производит автоматический расчет значений для шкалы отчета.
Для выполнения примера в репозитории предполагается наличие регламентного отчёта с идентификатором REPORT. Для регламентного отчета должна быть создана цветовая шкала, на листе отчета должна быть расположена карта, для которой создан картографичекий показатель.
Добавьте ссылки на системные сборки: Map, Metabase Report,Tab.
Sub UserProc;
Var
MB: IMetabase;
Report: IPrxReport;
PrxTable: IPrxTable;
TabObj: ITabObjects;
Map: IMap;
Layer: IMapLayer;
Visual: IMapAreaVisual;
MapScale: IMapColorScale;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим регламентный отчёт
Report := MB.ItemById("REPORT").Edit As IPrxReport;
PrxTable := Report.ActiveSheet As IPrxTable;
TabObj := PrxTable.TabSheet.Objects;
// Получим карту
Map := TabObj.Item(0).Extension As IMap;
// Найдём слой по наименованию
Layer := Map.Layers.FindByName("Regions");
// Определим показатель из коллекции
Visual := Layer.Visuals.Item(0) As IMapAreaVisual;
// Определим картографическую шкалу
MapScale := Report.Scales.Item(0).MapScale As IMapColorScale;
// Зададим признак автоматического расчёта значений для шкалы
MapScale.AutoCalculable := True;
// Зададим тип автоматического расчёта шкалы
MapScale.AutoScaleMode := MapAutoScaleMode.Uniform;
// Запустим автоматический расчёт значений для шкалы
MapScale.AutoCalculate(Layer, Visual.DataAdapter, Visual.AttributeName);
End Sub UserProc;
После выполнения примера будет произведен расчет значений для шкалы отчета.
См. также: