Russian (Русский) - Change language

Group (cоставной элемент)

Составной элемент (группа элементов) - объединение нескольких элементов (называемых подэлементами). Подэлементы могут быть в свою очередь как простыми, так и составными.

В дереве проекта элемент типа Group отображается значком .

Замечание. Составными элементами также являются: Header, Footer, FirstFound и Repeating Group . Header и Footer предназначены для поиска начала и конца документа и могут встретиться в документе только один раз. Repeating Group - повторяющийся составной элемент. Элемент Labeled Field также может быть представлен в виде группового элемента.

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

Составной элемент, как и обычный, может быть обязательным, необязательным и недопустимым. Если необязательный составной элемент включает обязательный подэлемент, то неналожение подэлемента приводит к формированию нулевой гипотезы составного элемента. Наложение гибкого описания при этом продолжается.

Не рекомендуется оставлять пустые составные элементы (не содержащие подэлементов). В случае обнаружения пустого составного элемента при компиляции определения документа приложение выдаст предупреждение. Если в гибком описании не используются составные элементы Header и Footer, добавляемые по умолчанию, удалите их.

Составной элемент используется для:

  • объединения элементов в группу. Это удобно при отладке независимых частей гибкого описания. Например, все гибкое описание из 100 элементов может содержать всего 3 составных элемента: заголовок, тело и нижнюю часть. Каждый из этих составных элементов в свою очередь будет содержать составные элементы, предназначенных для поиска небольших фрагментов данной логической части гибкого описания. Помимо сокращения перебора вариантов такая структура позволяет обеспечивает удобство отладки и редактирования гибкого описания в дальнейшем, т.к. различные группы будет удобно дополнять и отлаживать независимо друг от друга.
  • обеспечения логической иерархии элементов в дереве, что облегчает навигацию по гибкому описанию.
  • уменьшения числа возможных гипотез элемента, что ускоряет поиск результирующей гипотезы всего гибкого описания FlexiLayout. Объединение элементов в составной элемент, позволяет при поиске последующих элементов рассматривать этот набор подэлементов как единое целое, имеющее собственную завершенную гипотезу (реально состоящую из гипотез подэлементов), а значит, и оценку качества всей группы в целом. Перебор возможных сочетаний гипотез подэлементов между собой происходит внутри группы, а в дальнейшем поиске последующих элементов участвует только заданное число лучших гипотез группы. Число лучших гипотез составного элемента, участвующих в дальнейшем поиске, ограничивается параметром по умолчанию 1.
    Замечание. Не рекомендуется увеличивать максимальное число гипотез, так как это может привести к неконтролируемому росту количества построенных гипотез, и как следствие, к невозможности наложить гибкое описание на изображение.
  • Составной элемент позволяет написать ограничение на область поиска, общее для всех подэлементов. Область поиска конкретного подэлемента будет вычисляться как пересечение области поиска, заданной в самом подэлементе, и области поиска всей группы, в составе которой подэлемент находится.
    Замечание. Возможны случаи, когда пересечение области поиска составного элемента и одного из его подэлементов может при вычислении оказаться пустым, и подэлемент не будет найден. Нужно иметь это в виду при настройке гибкого описания и стараться задавать для составного элемента только простые отношения, например, “Above: PageRect.Top + PageRect.Height/2;” (искать элемент в верхней половине изображения), или не задавать их вовсе.

См. также:

Создание, копирование и удаление элементов

Обзор свойств элементов гибкого описания FlexiLayout

Область поиска элемента

Дополнительные условия поиска

01.12.2020 7:04:05


Please leave your feedback about this article