Проблема со сменой родительского очета

отредактировано 00:54 Раздел: FastReport 4.0
Исходные данные.

1. Отчет А
2. Отчет Б, который унаследован от отчета А
3. Оба отчета хранятся в БД, для загрузки базового используется событие OnLoadTemplate
4. В некоторый момент времени возникает потребность сменить у отчета Б родителя с А, на третий отчет С, с удалением дубликатов.

Проблема возникает в тот момент, когда объекту Б поле ParentReport сбрасывается в ''.
Т.е. мы делаем следующее:

1. Сбрасываем значение поля ParentReport
2. Вызываем метод InheritFromTemplate, передаем в него код нового базового шаблона и параметр imDelete
3. После этого, в отчете Б теряется весь дизайн, и вместо него видим дизайн шаблона С

Как это исправить? Может быть я что-то пропустил?

Комментарии

  • отредактировано 00:54
    Ау, неужели никто с подобным не сталкивался?
  • отредактировано 00:54
    Здравствуйте,

    Параметр imDelete удаляет дубликаты объектов. Так, если в отчете уже есть бэнд с именем ReportTitle1 и мы наследуем отчет от родителя, в котором тоже есть такой бэнд, то бэнд со всеми объектами будет удален из отчета и будет использован родительский ReportTitle1.
  • отредактировано 00:54
    AlexTZ написал: »
    Здравствуйте,

    Параметр imDelete удаляет дубликаты объектов. Так, если в отчете уже есть бэнд с именем ReportTitle1 и мы наследуем отчет от родителя, в котором тоже есть такой бэнд, то бэнд со всеми объектами будет удален из отчета и будет использован родительский ReportTitle1.
    то что я наблюдаю, выглядит ни как частичная замена совпадающего, а как будто в layout текущего отчета, полностью загружается родительский, затирая ВСЕ объекты текущего.

    Т.е. в решаемой задаче, родительские отчеты содержат просто шапки (ReportTitle к примеру), а дочерние - непосредственно данные... И вот когда программно меняем родителей, с заменой всех дублирующися объектов, по идее в дочернем отчете просто одна шапка должна подмениться на вторую, а сам отчет не пострадать. А получается, что вместо наследованной шапки + тела самого отчета, я вижу того новую наследованную шапку и пустое тело отчета.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.