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

Пример 4. Шаг 7.4 Поиск заголовка столбца UnitPrice, элемент kwUnitPrice

Проанализировав изображения, видим, что заголовок Unit Price представлен следующими вариантами search text: "UnitPrice", "Price", "RATE", а заголовок столбца Unit – словом "Unit". Чтобы исключить нахождение слова "Unit" заголовка столбца Unit в заголовке столбца Unit Price, сначала опишем Unit Price, так как он содержит уникальный текст, а затем, задав дополнительное отношение, опишем заголовок столбца Unit.

При описании элемента для поиска ключевых слов заголовка столбца Unit Price примем во внимание, что столбец Unit Price всегда располагается правее столбца Quantity.

Чтобы создать элемент kwUnitPrice:

  1. В составе элемента TableHeader создайте элемент kwUnitPrice (тип Static Text).
  2. Выберите вкладку Static Text.
  3. В поле Search text укажите значение искомого текста: UnitPrice|Price|RATE.
  4. Для того чтобы описать, что наш заголовок находится на одном уровне с заголовком Designation, перейдите на вкладку Relations и задайте дополнительные условия поиска. Подробнее см. Шаг 7.2.
  5. Также на вкладке Relations задайте условие искать наш элемент как самый ближайший к X coordinate со значением = 0.

    Показать пример

  1. Выберите вкладку Advanced.
  2. Поскольку заголовок столбца Unit Price располагается правее заголовка столбца kwQuantity, в поле Advanced pre-search relations задайте дополнительные условия поиска:если элемент kwQuantity найден, то искать объект изображения правее элемента kwQuantity. На языке описания FlexiLayout данное условие выглядит следующим образом:
    If Not (TableHeader.kwQuantity.IsNull) Then
    RightOf: TableHeader.kwQuantity, 0 * dot;
  3. Для оптимизации поиска зададим дополнительное условие:не искать заголовок, если не найден заголовок Designation. Подробнее см. Шаг 7.2.
  4. Задав дополнительную проверку в поле Advanced post-search relations мы можем повлиять на качество сформированных гипотез, например, в данном случае такую:если элемент найден, вычислить разницу между эталонной шириной и шириной найденного элемента и проверить ее на вхождение в нечеткий интервал. На языке описания FlexiLayout данное условие выглядит следующим образом:
    If not IsNull then
    { FuzzyQuality: 400dt - width, {-50000,0,0, 50000}*dt;
    }
    //такая проверка означает, что чем больше разница, тем выше штрафующий коэффициент
  5. Протестируйте гибкое описание на изображениях и убедитесь, что элемент корректно находится на первой странице документа.

12/1/2020 7:04:05 AM


Please leave your feedback about this article