Не очищается предыдущий отчет

отредактировано January 2006 Раздел: FastReport 3.0
Создаются MDI формы с ClientDataset.
При запуске первого превью если форму не закрыть,
то все последущие формы с другими данными будут окрывать первый отчет.
Если закрыть полностю форму то далее первый запущеннй отчет "захватит контороль".
Динамическое создание репорта,
Report.Free,
ShowReport(true) не помогают.
Версия 3.18
Превью используется встроенный. Отчет загружется так
            frxReport1->Report->Clear();
            frxReport1->PreviewPages->Clear();
            frxReport1->Clear();

//    TfrxReport* fr = new TfrxReport(this);
	frxReport1->LoadFromFile("..\\Reports\\1.fr3", true);
	frxReport1->Variables->Variables["Filtr"] = "'Âûáðàíî:" + strFiltr + "'";

    frxReport1->Modified=true;
    frxReport1->ShowReport(true);
    frxReport1->Free();

Комментарии

  • отредактировано 21:46
    Неужели никто не может что нибудь посоветовать?
    Или это слишком "элементраная проблема"?
    Может здесь нет разработчиков fastreportа и мне надо задавать воопрос в другом месте
  • отредактировано 21:46
    попробуй в самом начале написать

    while(Report->DataSets->Count)
    delete Report->DataSets->
    Items[Report->DataSets->Count - 1]->DataSet;
  • отредактировано 21:46
    пробовал DataSets->Clear();
    Потом Add. Не помогает!

    Кстати все компоненты в рантайме.
  • отредактировано 21:46
    DataSets->Clear() не поможет

    попробуй в OnDestroy владельца удалять все что создал и Owner ставить им NULL
  • отредактировано 21:46
    Владелец форма?
    Если ты имеешь ввиду OnDestroy формы то необходимо чтобы было открыто
    несколько MDI форм и каждая открывала свой отчет в соответсвии с
    со своим датасетом. Я проверил у разных форм адреса памяти репорта вроде разные. Подозрение такое что превью форма скрыта и всегда одна и вызывается каждый раз она. Если закрыть предыдущую форму тогда все в порядке.
  • отредактировано 21:46
    mak$ большое спасибо!
    Помогло
    while(fr->DataSets->Count)
    delete fr->DataSets->Items[fr->DataSets->Count - 1]->DataSet;

    Непонятно только это баг и или фича такая ;) что все репорты на разных открытых формах ссылаются на датасет первой открытой формы.
    А все эти методы Clear() непонятно что очищают. А так в целом респект разработчикам. Это мой первый отчет в fastreport. ;) В целом довольно все удобно и продумано.

  • отредактировано 21:46
    Вообще-то, если и дальше будешь с FR работать, много еще "интересного" найдешь...

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

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