Два экземпляра приложения коррелируют

отредактировано January 2006 Раздел: FastReport 3.0
Проблема такая: запускаю приложение, формирую отчет, запускаю второй зкземпляр, формирую отчет с другими параметрами; а в Preview вижу отчет с параметрами из первого экземпляра и в дизайнере доступно в 2 раза больше наборов(4 вместо 2-х, но с одинаковыми именами). Если запустить 3-й экз., то наборов будет уже 6 и т.д. Если кто сталкивался с чем-нибудь подобным, подскажите как с этим бороться...

Комментарии

  • отредактировано 21:42
    Используете run-time пакеты?
  • отредактировано 21:42
    да
  • отредактировано 21:42
    TfrxReport случайно не в Dll?
  • отредактировано 21:42
    нет
  • отредактировано 21:42
    пример пришлите
  • отредактировано January 2006
    while(Report->DataSets->Count)
    delete Report->DataSets->Items[Report->DataSets->Count - 1]->DataSet;

    int i= 1;
    while( provList.Pos(";"))
    {
    TClientDataSet *ds = new TClientDataSet(this);
    ds->RemoteServer = m_ActShell;
    ds->ProviderName = provName;
    ds->Name = "REPORT"+AnsiString(m_ReportCount);
    ds->Open();

    TDataSource *dds = new TDataSource(this);
    dds->DataSet = ds;
    dds->AutoEdit = false;

    TfrxDBDataset* dbds = new TfrxDBDataset(FR);
    dbds->DataSource = dds;
    dbds->DataSet = ds;
    if(NamesList->Count >= i)
    dbds->UserName = NamesList->Strings[i-1];
    else
    dbds->UserName = "Набор данных " + AnsiString(i);

    Report->DataSets->Add(dbds);

    i++;
    m_ReportCount++;
    }
    //*****************добавляем DataSet с параметрами***********************
    TfrxDBDataset* ParamDS = new TfrxDBDataset(FR);
    ParamDS->DataSet = ...;
    ParamDS->UserName = "Параметры";
    FR->Report->DataSets->Add(ParamDS);
    //***********************************************************************

    if(Report->LoadFromFile(AbsPath("%ROOT%\\Report\\" + m_SMRFileName), true))
    {
    Report->ShowReport(true);
    }
    }
  • отредактировано 21:42
    Как жаль, что ребята из FR Team ничем помочь не могут...
  • отредактировано January 2006
    Рабочий пример прислать можете?
    Т.е. небольшую программу которая полностью демонстрирует вашу проблему. При этом не завязанную на вашей БД (а например на DBDEMOS)
  • отредактировано 21:42
    мой пример у вас работать не будет, т.к. это часть системы и как раз завязанная ХП из моей БД
  • отредактировано 21:42
    Попробуй репорт тоже через new создавать и обязательно delete сразу после показа в превью. Так же я думаю желательно удалить все компоненты с fastreportа с формы. То есть в одной функции все создавать локально а на выходе из нее все удалять. По крайней мере я так свою проблему решил.
    Удачи! ;)
  • отредактировано 21:42
    Mak написал:
    мой пример у вас работать не будет, т.к. это часть системы и как раз завязанная ХП из моей БД
    Значит создайте новый небольшой проект, который НЕ привязан к вашей базе, но демонстрирует эту ошибку.
    Например я не смог воспроизвести такую ошибку у себя на компьютере.

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

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