Студия/Дерево значений

From SunFlurry wiki
Jump to: navigation, search

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

  • Закладка Визуальные:
    • Anchor (якоря) -- задает якоря визуального элемента.
    • Top, Left (координата верхнего левого угла) -- задает координату (в точках) верхнего левого угла элемента относительно начала формы.
    • Width, Height (высота и ширина) -- задает высоту и ширину (в точках) элемента.
    • MaxWidth, MaxHeight (максимальная высота и ширина) -- задает максимальную высоту и ширину (в точках) элемента. Иногда бывает необходимо ограничить увеличение размера элемента вместе с размерами формы, так как излишнее увеличение может ухудшить читаемость и осложнить работу с элементом. К примеру, слишком длинное поле редактирования неудобно для чтения и т.п. Максимальные размеры позволяют ограничить увеличение элементов до приемлемых величин.
    • Layer (слой формы) -- задает слой формы, которому принадлежит текущий элемент. Для описания редактора слоев, см. следующую статью.
    • HAlign (горизонтальное выравнивание) -- задает горизонтальное выравнивание отображения элементов списка. Текст может выравниваться по левому краю, по правому краю или по середине.
    • Font (шрифт элемента) -- задает шрифт, размер и цвет текста ветки по умолчанию. Для описания редактора шрифтов, см. следующую статью.
    • FontColor (цвет текста элемента) -- задает цвет текста ветки по умолчанию. Для описания редактора цветов, см. следующую статью.
    • Color (цвет фона элемента) -- задает цвет фона элемента. Для описания редактора цветов, см. следующую статью.
    • IsWithCheckboxes (отображение флажков) -- устанавливает режим отображения флажков совместно с ветками дерева по умолчанию.
    • IsNoGridLines (запрет отображения линий сетки) -- устанавливает режим, при котором линии сетки дерева не отображаются.
    • IsDisabled (недоступность элемента) -- устанавливает режим недоступности дерева.
    • IsInvisible (невидимость элемента) -- элемент (и его связанных элементы) становится невидимым в рабочем режиме. В режиме редактирования в Студии, элемент по-прежнему отображен.
    • IfResizeWithParentX, IfResizeWithParentY (привязка размеров к группе элементов) -- Особые установки, работающие совместно с MaxWidth и MaxHeight, если последние заданы для группы элементов, на которой находится текущий элемент, его размеры будут привязаны не к самой форме, а к элементу группы. Без такого условия, невозможно было бы использовать MaxWidth и MaxHeight для форм со сложным расположением элементов.
    • Hint (всплывающая подсказка) -- определяет текст всплывающей подсказки при наведении курсора мыши на элемент. Если свойство не задано (пустая строка), подсказка не будет выводиться.
    • AttachedButtons (связанные элементы) -- задает связанные элементы (доп. кнопки) выведенные в заголок списка (либо в другое место списка, в зависимости от установок). Для описания редактора связанных элементов см. следующую статью.
  • Закладка Данные:
    • Name (наименование) -- задает наименование элемента, с помощью которого к нему можно будет обращаться из программных модулей. Если свойства элемента не будут изменяться программно, наименование можно оставить пустым.
    • Folders (режим отображения папок) -- задает режим отображения папок при выводе справочников, содержащих папки, в список. Доступны следующие режимы отображения:
      • Отображать в общей структуре -- Папки будут отображаться в общем списке с обычным элементами.
      • Отображать вверху списка -- Папки будут отображаться до обычных элементов.
      • Не отображать -- Папки не будут выведены в список.
      • Отображать только папки -- В список будут выведны только папки.
    • DBSource (привязка к данных базы данных) -- задает привязку данного дерева к сточным частям текущего объекта или свободным объектам базы данных. В зависимости от типа некоторые свойства дерева могут быть автоматически изменены. См. Редактор типов данных.
    • Filters (начальные фильтры объекта) -- задает начальные фильтры дерева, если оно связано с базой данных. Для описания редактора фильтров см. следующую статью.
    • InitialSortString (начальная установка сортировки) -- задает установку сортировки дерева, если оно связано с базой данных. Для описания редактора установки сортировки см. следующую статью.
    • ArePeriodicalsIncudedInQuery (режим включения в запрос периодических реквизитов) -- задает режим, который автоматически загружает периодические реквизиты, при загрузке объектов в дерево. Обычно периодические реквизиты не загружаются, так как их загрузка связана с дополнительной нагрузкой на базу данных и увеличением времени обновления дерева, однако, если периодические реквизиты используются при информации в ветки дерева (к примеру, в событии OnInitLeaf), этот режим будет ускорять загрузку.
    • IsDBAutoUpdate (режим автоматического обновления) -- задает режим, когда дерево будет периодически обновляться из базы данных. Период обновления по умолчанию задан в установках проекта. Такие режимы нужно использовать с осторожностью, так как они увеличивают нагрузку на базу данных и сеть, при этом большинство обновлений будет бесполезным. Вместо таких режимов, можно, к примеру, использовать функцию BroadcastDBUpdate, после выполнения изменений в важной таблице, за которой ведет наблюдения группа операторов.
    • IsDefaultControl (основной табличный элемент - источник выбора) -- установка указывает на то, что дерево представляет основной список текущих объектов и используется как источник выбора (при открытии формы в режиме выбора), либо для начальной фильтрации или позиционирования (при открытии родительского справочника или подобных операций, система автоматически передает начальный фильтр в форму и она должна знать, в какую таблицу передавать такой фильтр). Установка должна быть активна только для одного табличного элемента формы.
    • IsDisabledNoParent (контроль наличия справочника-родителя) -- установка автоматически делает дерево недоступным, если оно отображает элементы справочников, имеющие родителей (см. Объект базы данных), которые обычно фильтруются по указанному элементу родителю, и родитель не задан. Когда родитель задан (автоматически или программно с помощью ParentElement), запрет редактирования автоматически снимается. Установка дана для удобства, чтобы не проверять наличие родителя программно.
    • doLoadFully (полная загрузка дерева) -- установка форсирует загрузку полного дерева папок (иначе элементы будут запрашиваться по мере открытия папок). Это уменьшает нагрузку на базу данных для небольших справочников. Запрос будет выполнен один раз в момент заполнения дерева, а не каждый раз, когда пользователь открывает новую ветку, однако, для больших справочников, такая первая загрузка может выполняться очень долго, в таком случае, не стоит использовать этот режим.
    • IfNotInSettings (не сохраняется в установках формы) -- задает режим, когда при сохранении установок (состояния) формы, состояние данного элемента не будет записано совместно с состоянием других элементов. При чтении установок, этот элемент будет всегда иметь значение по умолчанию. Такой флаг удобно устанавливать, к примеру, для таблиц, содержащих расчетную информацию.
    • HotKey (комбинация клавиш для активации элемента) -- задает комбинация клавиш для мгновенной активации элемента. Для описания редактора горячих клавиш см. следующую статью.
  • Закладка События предоставляет доступ к следующим событиям (см. Визуальные события):
    • OnEnter -- событие, возникающее при активации списка (получения курсора).
    • OnExit -- событие, возникающее при деактивации списка (потери курсора).
    • OnLeafChecking -- событие, возникающее в момент (до изменения) установки или снятия пометки (галочки) в ветке дерева.
    • OnChangeOrClick -- событие, возникающее при визуальном изменении (перемещении курсора) дерева.
    • OnDoubleClick -- событие, возникающее при двойном клике по ветке дерева мышью.
    • OnRightClick -- событие, возникающее при правом клике по ветке дерева мышью.
    • OnKeyPress -- событие, возникающее при нажатии на клавишу, когда дерево активно.
    • OnAttachedButtons -- событие, возникающее при нажатии на связанный элемент (кнопку).
    • OnInitLeaf -- событие, вызываемое для начальной инициализации ветки дерева. В этот момент можно изменить свойства ветки, добавить флажок, изменить цвет текста и пр.


Дополнительная информация:

  • Для работы со свойствами объектов формы из программы, см. статью Форма.
  • Для работы с объектом дерева из программы, см. статью Дерево.