.. _list_frame_g1: Список и древовидный список ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Классы фреймов: .. class:: btkFrame.TbtkLookUpGridFrame .. class:: btkFrame.TbtkLookUpGridTabFrame .. class:: btkFrame.TbtkLookUpGridTabDynamicFrame .. class:: btkFrame.TbtkLookUpGridTabDynDetFrame .. class:: btkFrame.TbtkLookUpTreeFrame .. class:: btkFrame.TbtkLookUpTreeTabDynamicFrame .. class:: btkFrame.TbtkLookUpTreeTabDynDetFrame .. class:: btkFrame.TbtkLookUpTreeTabFrame Статьи об особенностях в функционале фреймов в :term:`AS`: :ref:`Список`, :ref:`Древовидный список` Свойства фреймов ^^^^^^^^^^^^^^^^ .. underconstruction:: Пока описаны не все свойства. +----------------------------------------------+-----------------------------------------+ | Свойство | Описание | +----------------------------------------------+-----------------------------------------+ | :btk:frameprop:`HeaderVisible` | Управляет видимостью заголовка. | +----------------------------------------------+-----------------------------------------+ | :btk:frameprop:`ToolBarVisible` | Управляет видимостью панели управления. | +----------------------------------------------+-----------------------------------------+ | :btk:frameprop:`AutoFilter.PopupListMode` | Управляет режимом работы автофильтра. | +----------------------------------------------+-----------------------------------------+ .. _field_sorting: Сортировка полей ^^^^^^^^^^^^^^^^ * Поля сортируются в соответствии с порядком, указанным в свойстве их атрибута "Порядковый номер" (nOrder). * Если у поля нет атрибута, то порядковый номер = MaxInt (такие поля помещаются в конец). * Если у полей одинаковый порядковый номер, то они сортируются по алфавиту за исключением случаев, когда порядковый номер равен MaxInt. * Порядок колонок соответствует порядку полей. * Порядковый номер бэнда определяется как наименьший порядковый номер среди содержащихся в нём колонок. * Колонки, для которых не указан бэнд, объединяются в бэнд по умолчанию. * Изменение бэнда у колонки с помощью метода SetVarDesc или путём добавления к наименованию атрибута имени бэнда через "|" происходит, когда колонки уже созданы и объединены в бэнды. При этом: * Если назначенный бэнд существует, то колонка добавляется в его конец, независимо от порядкового номера. Положение бэнда при этом не пересчитывается. * Если бэнд новый, то он ставится перед самым левым бэндом с бОльшим порядковым номером, или в конец, если такого бэнда нет. Если есть другие бэнды с таким же порядковым номером, то новый бэнд помещается после них. * Тот бэнд, из которого колонка была перемещена, остаётся на месте, даже если его порядковый номер изменился. .. note:: Алгоритм сортировки работает одинаково для статических и динамических полей. Управление порядком колонок ''''''''''''''''''''''''''' Обеспечить требуемый порядок колонок и бэндов при загрузке выборки можно одним из следующих способов: * Установить порядковый номер атрибутов в том же порядке, в котором должны появиться соответствующие им колонки. Для всех колонок указывать их бэнд до открытия выборки с помощью свойства GroupAttr.Band (Группы объединения). * Установить порядковый номер атрибутов в том же порядке, в котором должны появиться соответствующие им колонки. Для всех колонок указывать бэнд через вертикальную черту с помощью метода SetVarDesc. Это нужно сделать до показа колонок (например, в AfterOpen). Свойство "Группы объединения" при этом нужно оставить пустым. Поскольку эти решения имеют разный принцип сортировки, при одновременном использовании они могут привести к неожиданным результатам. .. _list_export: Экспорт из списочных фреймов ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. seealso:: :ref:`Через пункт меню "Сохранить как…"` .. _frames-multiselect: Выделение нескольких записей (мультиселект) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Во фреймах типа список и древовидный список существует возможность выбора нескольких записей (мультиселект). Изменять режим мультиселекта можно следующими способами: * При вызове списка с помощью методов :class:`TbtkScriptSelectionObject.DoLookup` или :class:`TbtkScriptSelectionObject.DoLookupEx` .. code-block:: pascal :caption: Пример включения режима мультиселект в :class:`TbtkScriptSelectionObject.DoLookupEx` :emphasize-lines: 8 R := DoLookupEx( '', 'SEL_TST_MultySelectFromGrid', [], [], ['id','A1'], True, //параметр отвечающий за мультиселект ['Representation'], ['Choose']); * С помощью свойства фрейма **MultiSelect**. Также его значение можно передать в качестве параметра в :class:`TbtkScriptSelectionObject.CreateFormEx` * С помощью :class:`TbtkScriptSelectionObject.SetVar`. .. code-block:: pascal :caption: Пример изменения режима мультиселект через :class:`TbtkScriptSelectionObject.SetVar` SetVar('MultiSelect', 1); //включение SetVar('MultiSelect', 0); //отключение .. note:: При отключении режима мультиселекта выделение будет сброшено, выделенной останется запись, на которой установлен фокус. Методы и свойства паскаль скриптера ''''''''''''''''''''''''''''''''''' :class:`TbtkScriptSelectionObject.SelectedRecordsCount` Количество выделенных записей. :class:`TbtkScriptSelectionObject.SelectedValue` Значение выделенной записи по индексу поля. :class:`TbtkScriptSelectionObject.SelectedValuebyName` Значение выделенной записи по имени поля. .. _cell_hints: Всплывающие подсказки в ячейках ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Всплывающая подсказка выводится во всплывающем окне при наведении мышки на ячейку. В зависимости от настроек, во всплывающей подсказке может выводиться текст ячейки или комментарий. .. note:: Комментарий к ячейке является более приоритетным, чем подсказка при большом тексте. Подсказка при большом тексте '''''''''''''''''''''''''''' Свойство фрейма :btk:frameprop:`CellHint` задаёт отображение всплывающей подсказки с текстом ячейки в случаях, когда текст превышает размер ячейки (отображается не полностью). Комментарий к ячейке '''''''''''''''''''' Свойство фрейма :btk:frameprop:`CommentAttribute` задаёт атрибут с информацией о ячейках с комментариями. Для работы комментариев должны быть заданы значения для атрибута ID. Текст комментария ***************** Задаётся при помощи :btk:frameprop:`CommentTextAttribute` и :pas:class:`Selection.Controller.Hints `. .. _cell_hint_marker: Маркер наличия подсказки в ячейке ********************************* - Отображается в виде треугольника в верхнем правом углу ячейки. - Отображение маркера задаётся свойством фрейма :btk:frameprop:`ShowHintCellMark`. - Цвет маркера задаётся в значении :btk:frameprop:`CommentAttribute`. .. attention:: Маркер отображается только в списочных фреймах.