Настройка перечня рассчитываемых статистик

Пример Fore

Для выполнения примера предполагается наличие формы, содержащей следующие компоненты:

Добавьте ссылки на следующие системные сборки:

Пример является обработчиком события OnClick для компонента «Button1»:

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    EaxStat: IEaxStatistics;
    Tree: ITsStatisticsTree;
    i: integer;
    Nodes: ITreeListNodes;
    StatNode, ParentNode: ITreeListNode;
    HashT: IHashtable;
    Wbk: IEaxWorkbook;
Begin
    EaxStat := UiErAnalyzer1.ErAnalyzer.Statistics;
    Wbk := UiErAnalyzer1.ErAnalyzer As IEaxWorkbook;
    Wbk.Statistics.Visible := True;
    Wbk.Statistics.Enabled := True;
    // Исключаем часть статистик из построения дерева
    EaxStat.StatisticsVisible(TsStatisticsType.Max) := False;
    EaxStat.StatisticsVisible(TsStatisticsType.Min) := False;
    EaxStat.StatisticsVisible(TsStatisticsType.Average) := False;
    // Получаем статистики
    Tree := EaxStat.AllStatistics;
    // Очищаем компонент для вывода дерева статистик
    Nodes := TreeList1.Nodes;
    Nodes.Clear;
    // Отстраиваем дерево
    If Tree = Null Then
        Return;
    End If;
    HashT := New Hashtable.Create;
    For i := 0 To Tree.Count - 1 Do
        ParentNode := Null;
        If Tree.ParentNode(i) <> -1 Then
            ParentNode := HashT(Tree.ParentNode(i));
        End If;
        StatNode := Nodes.AddChild(ParentNode, Tree.Name(i));
        If Tree.Type(i) <> TsStatisticsTreeNodeType.Category Then
            StatNode.ColumnText(1) := Tree.Value(i);
        End If;
        StatNode.Data := i;
        HashT(i) := StatNode;
    End For;
    HashT.Clear;
    Nodes.TreeControl.InnerRoot.Expand(True);
End Sub Button1OnClick;

После выполнения примера при нажатии на кнопку будет отрисовано дерево статистик для таблицы рабочей книги. В дереве не будут отображаться значения «Минимум», «Максимум» и «Среднее».

Пример Fore.NET

Для выполнения примера предполагается наличие формы, содержащей следующие компоненты:

Пример является обработчиком события Click для компонента «button1».

Imports Prognoz.Platform.Interop.ForeCollections;
Imports Prognoz.Platform.Interop.Transform;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Forms;

Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
    EaxStat: IEaxStatistics;
    Tree: ITsStatisticsTree;
    i: integer;
    Nodes: ITreeListNodes;
    StatNode, ParentNode: ITreeListNode;
    HashT: IHashtable;
    Wbk: IEaxWorkbook;
Begin
    EaxStat := UiErAnalyzer1.ErAnalyzer.Statistics;
    Wbk := UiErAnalyzer1.ErAnalyzer As IEaxWorkbook;
    Wbk.Statistics.Visible := True;
    Wbk.Statistics.Enabled := True;
    // Исключаем часть статистик из построения дерева
    EaxStat.StatisticsVisible[TsStatisticsType.tstMax] := False;
    EaxStat.StatisticsVisible[TsStatisticsType.tstMin] := False;
    EaxStat.StatisticsVisible[TsStatisticsType.tstAverage] := False;
    // Получаем статистики
    Tree := EaxStat.AllStatistics;
    // Очищаем компонент для вывода дерева статистик
    Nodes := treeListNet1.CtrlBox.Nodes;
    Nodes.Clear();
    // Отстраиваем дерево
    If Tree = Null Then
        Return;
    End If;
    HashT := New Hashtable.Create();
    For i := 0 To Tree.Count - 1 Do
        ParentNode := Null;
        If Tree.ParentNode[i] <> -1 Then
            ParentNode := HashT[Tree.ParentNode[i]] As ITreeListNode;
        End If;
        StatNode := Nodes.AddChild(ParentNode, Tree.Name[i]);
        If Tree.Type[i] <> TsStatisticsTreeNodeType.tstntCategory Then
            StatNode.ColumnText[1] := Tree.Value[i].ToString();
        End If;
        StatNode.Data := i;
        HashT[i] := StatNode;
    End For;
    HashT.Clear();
    Nodes.TreeControl.InnerRoot.Expand(True);
End Sub;

Результат выполнения примера аналогичен результату примера на Fore.

См. также:

Примеры | ILaner