3.1.3.3. Список и древовидный список#

Классы фреймов:

class btkFrame.TbtkLookUpGridFrame#
class btkFrame.TbtkLookUpGridTabFrame#
class btkFrame.TbtkLookUpGridTabDynamicFrame#
class btkFrame.TbtkLookUpGridTabDynDetFrame#
class btkFrame.TbtkLookUpTreeFrame#
class btkFrame.TbtkLookUpTreeTabDynamicFrame#
class btkFrame.TbtkLookUpTreeTabDynDetFrame#
class btkFrame.TbtkLookUpTreeTabFrame#

Статьи об особенностях в функционале фреймов в AS: Список, Древовидный список

3.1.3.3.1. Свойства фреймов#

Раздел находится в разработке.

Пока описаны не все свойства.

Свойство

Описание

HeaderVisible

Управляет видимостью заголовка.

ToolBarVisible

Управляет видимостью панели управления.

AutoFilter.PopupListMode

Управляет режимом работы автофильтра.

3.1.3.3.2. Сортировка полей#

  • Поля сортируются в соответствии с порядком, указанным в свойстве их атрибута “Порядковый номер” (nOrder).

    • Если у поля нет атрибута, то порядковый номер = MaxInt (такие поля помещаются в конец).

    • Если у полей одинаковый порядковый номер, то они сортируются по алфавиту за исключением случаев, когда порядковый номер равен MaxInt.

  • Порядок колонок соответствует порядку полей.

  • Порядковый номер бэнда определяется как наименьший порядковый номер среди содержащихся в нём колонок.

  • Колонки, для которых не указан бэнд, объединяются в бэнд по умолчанию.

  • Изменение бэнда у колонки с помощью метода SetVarDesc или путём добавления к наименованию атрибута имени бэнда через “|” происходит, когда колонки уже созданы и объединены в бэнды. При этом:

    • Если назначенный бэнд существует, то колонка добавляется в его конец, независимо от порядкового номера. Положение бэнда при этом не пересчитывается.

    • Если бэнд новый, то он ставится перед самым левым бэндом с бОльшим порядковым номером, или в конец, если такого бэнда нет. Если есть другие бэнды с таким же порядковым номером, то новый бэнд помещается после них.

    • Тот бэнд, из которого колонка была перемещена, остаётся на месте, даже если его порядковый номер изменился.

Note

Алгоритм сортировки работает одинаково для статических и динамических полей.

3.1.3.3.2.1. Управление порядком колонок#

Обеспечить требуемый порядок колонок и бэндов при загрузке выборки можно одним из следующих способов:

  • Установить порядковый номер атрибутов в том же порядке, в котором должны появиться соответствующие им колонки. Для всех колонок указывать их бэнд до открытия выборки с помощью свойства GroupAttr.Band (Группы объединения).

  • Установить порядковый номер атрибутов в том же порядке, в котором должны появиться соответствующие им колонки. Для всех колонок указывать бэнд через вертикальную черту с помощью метода SetVarDesc. Это нужно сделать до показа колонок (например, в AfterOpen). Свойство “Группы объединения” при этом нужно оставить пустым.

Поскольку эти решения имеют разный принцип сортировки, при одновременном использовании они могут привести к неожиданным результатам.

3.1.3.3.3. Экспорт из списочных фреймов#

3.1.3.3.4. Выделение нескольких записей (мультиселект)#

Во фреймах типа список и древовидный список существует возможность выбора нескольких записей (мультиселект). Изменять режим мультиселекта можно следующими способами:

  • При вызове списка с помощью методов TbtkScriptSelectionObject.DoLookup или TbtkScriptSelectionObject.DoLookupEx

    Пример включения режима мультиселект в TbtkScriptSelectionObject.DoLookupEx#
    <pascal>
      R := DoLookupEx(
        '',
        'SEL_TST_MultySelectFromGrid',
        [],
        [],
        ['id','A1'],
        True, //параметр отвечающий за мультиселект
        ['Representation'],
        ['Choose']);
    </pascal>
    
  • С помощью свойства фрейма MultiSelect. Также его значение можно передать в качестве параметра в TbtkScriptSelectionObject.CreateFormEx

  • С помощью TbtkScriptSelectionObject.SetVar.

    Пример изменения режима мультиселект через TbtkScriptSelectionObject.SetVar#
    <pascal>
      SetVar('MultiSelect', 1); //включение
      SetVar('MultiSelect', 0); //отключение
    </pascal>
    

Note

При отключении режима мультиселекта выделение будет сброшено, выделенной останется запись, на которой установлен фокус.

3.1.3.3.4.1. Методы и свойства паскаль скриптера#

TbtkScriptSelectionObject.SelectedRecordsCount

Количество выделенных записей.

TbtkScriptSelectionObject.SelectedValue

Значение выделенной записи по индексу поля.

TbtkScriptSelectionObject.SelectedValuebyName

Значение выделенной записи по имени поля.

3.1.3.3.5. Всплывающие подсказки в ячейках#

Всплывающая подсказка выводится во всплывающем окне при наведении мышки на ячейку.

В зависимости от настроек, во всплывающей подсказке может выводиться текст ячейки или комментарий.

Note

Комментарий к ячейке является более приоритетным, чем подсказка при большом тексте.

3.1.3.3.5.1. Подсказка при большом тексте#

Свойство фрейма CellHint задаёт отображение всплывающей подсказки с текстом ячейки в случаях, когда текст превышает размер ячейки (отображается не полностью).

3.1.3.3.5.2. Комментарий к ячейке#

Свойство фрейма CommentAttribute задаёт атрибут с информацией о ячейках с комментариями.

Для работы комментариев должны быть заданы значения для атрибута ID.

3.1.3.3.5.2.1. Текст комментария#

Задаётся при помощи CommentTextAttribute и Selection.Controller.Hints.

3.1.3.3.5.2.2. Маркер наличия подсказки в ячейке#

  • Отображается в виде треугольника в верхнем правом углу ячейки.

  • Отображение маркера задаётся свойством фрейма ShowHintCellMark.

  • Цвет маркера задаётся в значении CommentAttribute.

Attention

Маркер отображается только в списочных фреймах.