Table.Levels.Add

From SunFlurry wiki
Jump to: navigation, search
  Add (Работа с уровнями)
Объект:Электронная таблица
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в число, неверные аргументы.
Визуальность:Да

Функция добавляет визуальный уровень к текущему, либо к одному из детей текущего уровня, если начальная и конечная позиции располагаются полностью внутри дочернего уровня. Если уровень полностью вмещает один или более существующих уровней, они становятся его дочерними уровнями. Внимание: Объект уровня таблицы является псевдообъектом и хранит в себе набор индексов с начального уровня до текущего. Это означает, что добавление или удаление уровней может изменить индексацию объектов и сделать все существующие объекты адресуемых уровней недействительными. Объекты могут адресовать совсем другие уровни, либо вызывать исключение при обращении, поэтому, не рекомендуется хранить или передавать в другие функции такие объекты.

Синтаксис

Table.Levels.Add(<Направление уровня (INT)>,<Начальная позиция уровня (INT)>,<Конечная позиция уровня (INT)>)

Аргументы

  • <Направление уровня (INT)> - Аргумент задает положение итогов добавляемого уровня, возможны следующие значения:
    • 0 -- итоги располагаются в начале уровня (в левом столбце для горизонтальных уровней, в верхней строке для вертикальных)
    • 1 -- итоги располагаются в конце уровня (в правом столбце для горизонтальных уровней, в нижней строке для вертикальных)
  • <Начальная позиция уровня (INT)> - Номер начальной строки или столбца уровня.
  • <Конечная позиция уровня (INT)> - Номер конечной строки или столбца уровня.

Примеры

//Пример добавления вертикальных уровней в таблицу Т
//Несмотря на то, что сначала добавляются уровни со строками "v4", в момент добавления уровней со строками "v3", уровни "v4" становятся дочерними.
While З.Next(1) Do
  ...
  //Вывод уровня 1
  Т.CopyByX("v2",1);
  ...

  //Запомним высоту строки "v2" уровня 1
  НачВыс:=Т.Height();
  While З.Next(2) Do
    ...
    //Вывод уровня 2
    Т.CopyByX("v3",1);
    ...

    //Запомним высоту строки "v3" уровня 2
    НачВыс2:=Т.Height();
    While З.Next(3) Do
      ...
      //Вывод уровня 3
      Т.CopyByX("v4",1);
      ...

    EndDo;
    //Добавим вертикальный уровень, в который будет складываться строки "v4"
    Т.Levels(0).Add(0,НачВыс2,Т.Height());


  EndDo;

  //Добавим вертикальный уровень, в который будет складываться строки "v3"
  Т.Levels(0).Add(0,НачВыс,Т.Height());
EndDo;

//Закроем добавленные уровни (кроме строк "v2") перед выводом таблицы на экран
Т.Levels(0).Close();