Часть 2. Область действия тегов form и grid.

Тег grid всегда печатает целыми строками таблицы, а тег form - целыми абзацами. Т. е. даже если начальный тег и конечный тег покрывают только часть столбцов или часть абзаца, в итоге будет напечатана вся строка или весь абзац. В противном случае будет нарушена структура документа. Теги могут покрывать несколько строк и абзацев. Проведем небольшой эксперимент, который показывает как работают теги. Создадим небольшую базу с двумя формами А и Б. База Форма А Сделаем шаблон. Шаблон Красным прямоугольником выделена область действия тега grid, зеленым - область тега form. Рассмотрим пошагово печать документа:

  1. Встречается тег form. Программа переключается на форму А и переходит к первой записи формы.
  2. Печатаются поля: Поле 1, Поле 2, Поле 3, Поле 4.
  3. Встречается тег grid. Программа переключается на форму Б и переходит к первой записи формы Б.
  4. Печатается Поле формы Б.
  5. Встречается тег end. Программа переходит к следующей записи. Но! Программа должна дойти до конца строки, чтобы не нарушить структуру документа.
  6. Встречается поле: Поле 5. Т. к. программа переключилась на форму Б, то это поле она будет искать именно в этой форме. Но, естественно, там его не обнаруживает и записывает в лог сообщение об ошибке.
  7. Дойдя до конца строки таблицы, программа возвращается к началу той строку таблицы, на которой располагается тег grid.
  8. Снова встречаются Поле 3 и Поле 4. Но программа переключилась на форму Б, поэтому там их не обнаруживает. Снова ошибка.
  9. Наконец, пройдя по всем записям формы Б, программа переключается на формы А и поле 5 печатается.
  10. Снова в документе встречается поле end. Программа переходит к следующей записи формы А и возвращается к началу того абзаца, в котором располагается тег form.

Сформированный документ: Сформированный документ Сообщения об ошибках: Ошибки при печати Таким образом, во избежание ошибок, не следует располагать в одном абзаце или строке таблицы поля В и ВНЕ тегов. Если требуется напечатать поле родительской формы, пишите поле внутри тега и перед именем ставьте восклицательный знак: [!поле].