refresh in crystal report
От: Ворогушин Дмитрий Россия  
Дата: 30.04.02 10:09
Оценка:
Привет всем!

Помогите разобраться с Crystal Report.
Проблема следующая:
— создал в самом Crystal-ле шаблон отчета
— проверил в нем же (preview)
— хочу использовать шаблон в своей программе
делаю так:
     pApplication.CreateInstance(__uuidof(Application));
     pReport = pApplication->OpenReport(ReportPath);                
     m_crystrepview.SetReportSource(pReport);    
     m_crystrepview.ViewReport();


Результаты:
1) если в меню File сбросить флаг Save data with Report, то шаблон
пытается получить данные из БД, но через некоторое время выдает
сообщение "Server has not yet been opened"
2) если в меню File установить флаг Save data with Report, то шаблон
отображает старые данные (сформированные в preview)
при этом, если нажать на кнопку Refresh, то выдается такое же сообщение
"Server has not yet been opened"

Как заставить REPORT получать свежие данные
(Грешу на то, что версия Crystal-а нелигальная)
Re: refresh in crystal report
От: alex2808 Украина  
Дата: 02.08.02 08:54
Оценка:
Друзья, мучает точно такая же проблема...
Просветите!!! Please, бо вбьють...
Всех благ
Re[2]: refresh in crystal report
От: димс  
Дата: 05.08.02 08:02
Оценка:
Здравствуйте alex2808, Вы писали:

A>Друзья, мучает точно такая же проблема...

A>Просветите!!! Please, бо вбьють...
делаю так:
    
        IApplicationPtr pApplication;
        IDatabasePtr pDatabase;        
        pApplication.CreateInstance(__uuidof(Application));
        IReportPtr pReport=pApplication->OpenReport(_bstr_t(getReportFileName());
        HRESULT hr=pReport->get_Database((IDatabase**) &pDatabase);
        ASSERT(SUCCEEDED(hr));
        pDatabase->GetTables()->Item[1]->SetLogOnInfo(
            _bstr_t(getServerName()),
            _bstr_t(getDatabaseName()),
            _bstr_t(getUserId()),
            _bstr_t(getPassword()));

Бывает так что из-за таймаутов на соединение данные не выбираются из базы — надо попробовать ещё раз
Успехов.
Re: refresh in crystal report
От: KeenTheGreen Россия  
Дата: 07.08.02 14:15
Оценка:
Та же ерунда.
Сделал TTX-файл.
Сделал на его базе репорт.
По SQL-выражению сгенерил Dataset.
Скормил Dataset репорту таким образом:
// C#
Database db = rd.Database;
Tables tbs = db.Tables;
Table tbl = tbs[0];
tbl.SetDataSource (dataSet);
rd.Refresh();
CRViewer.ReportSource = rd;
CRViewer.RefreshReport();


В итоге в отчет попадают sample-данные из TTX-файла

ВД>(Грешу на то, что версия Crystal-а нелигальная)

У меня легальная.
K.T.G.
Re[3]: refresh in crystal report
От: Аноним  
Дата: 09.08.02 08:11
Оценка:
Здравствуйте димс, Вы писали:

Д>Здравствуйте alex2808, Вы писали:


A>>Друзья, мучает точно такая же проблема...

A>>Просветите!!! Please, бо вбьють...
Д>делаю так:
Д>
    
Д>        IApplicationPtr pApplication;
Д>        IDatabasePtr pDatabase;        
Д>        pApplication.CreateInstance(__uuidof(Application));
Д>        IReportPtr pReport=pApplication->OpenReport(_bstr_t(getReportFileName());
Д>        HRESULT hr=pReport->get_Database((IDatabase**) &pDatabase);
Д>        ASSERT(SUCCEEDED(hr));
Д>        pDatabase->GetTables()->Item[1]->SetLogOnInfo(
Д>            _bstr_t(getServerName()),
Д>            _bstr_t(getDatabaseName()),
Д>            _bstr_t(getUserId()),
Д>            _bstr_t(getPassword()));

Д>

Д>Бывает так что из-за таймаутов на соединение данные не выбираются из базы — надо попробовать ещё раз
Д>Успехов.

А можно более полный примерчик на alex2808@ua.fm, а то не пойму куда его пихать, вместо, или после, как бы повторный вызов... :)
Re[3]: refresh in crystal report
От: alex2808 Украина  
Дата: 09.08.02 08:11
Оценка:
Здравствуйте димс, Вы писали:

Д>Здравствуйте alex2808, Вы писали:


A>>Друзья, мучает точно такая же проблема...

A>>Просветите!!! Please, бо вбьють...
Д>делаю так:
Д>
    
Д>        IApplicationPtr pApplication;
Д>        IDatabasePtr pDatabase;        
Д>        pApplication.CreateInstance(__uuidof(Application));
Д>        IReportPtr pReport=pApplication->OpenReport(_bstr_t(getReportFileName());
Д>        HRESULT hr=pReport->get_Database((IDatabase**) &pDatabase);
Д>        ASSERT(SUCCEEDED(hr));
Д>        pDatabase->GetTables()->Item[1]->SetLogOnInfo(
Д>            _bstr_t(getServerName()),
Д>            _bstr_t(getDatabaseName()),
Д>            _bstr_t(getUserId()),
Д>            _bstr_t(getPassword()));

Д>

Д>Бывает так что из-за таймаутов на соединение данные не выбираются из базы — надо попробовать ещё раз
Д>Успехов.

А можно более полный примерчик на alex2808@ua.fm, а то не пойму куда его пихать, вместо, или после, как бы повторный вызов... :)
Всех благ
Re[4]: refresh in crystal report
От: димс  
Дата: 13.08.02 07:38
Оценка:
Здравствуйте alex2808, Вы писали:

A>Здравствуйте димс, Вы писали:


Д>>Здравствуйте alex2808, Вы писали:


A>>>Друзья, мучает точно такая же проблема...

A>>>Просветите!!! Please, бо вбьють...
Д>>делаю так:
Д>>
    
Д>>        IApplicationPtr pApplication;
Д>>        IDatabasePtr pDatabase;        
Д>>        pApplication.CreateInstance(__uuidof(Application));
Д>>        IReportPtr pReport=pApplication->OpenReport(_bstr_t(getReportFileName());
Д>>        HRESULT hr=pReport->get_Database((IDatabase**) &pDatabase);
Д>>        ASSERT(SUCCEEDED(hr));
Д>>        pDatabase->GetTables()->Item[1]->SetLogOnInfo(
Д>>            _bstr_t(getServerName()),
Д>>            _bstr_t(getDatabaseName()),
Д>>            _bstr_t(getUserId()),
Д>>            _bstr_t(getPassword()));

Д>>

Д>>Бывает так что из-за таймаутов на соединение данные не выбираются из базы — надо попробовать ещё раз
Д>>Успехов.

A>А можно более полный примерчик на alex2808@ua.fm, а то не пойму куда его пихать, вместо, или после, как бы повторный вызов...


полный пример...

        IReportPtr pReport;
        IApplicationPtr pApplication;
        IDatabasePtr pDatabase;        
        HRESULT hr;
        pApplication.CreateInstance(__uuidof(Application));
        pReport=pApplication->OpenReport(_bstr_t(getReportFileName()));    
        hr=pReport->get_Database((IDatabase**) &pDatabase);
        ASSERT(SUCCEEDED(hr));
        pDatabase->GetTables()->Item[1]->SetLogOnInfo(
            _bstr_t("server"),
            _bstr_t("database"),
            _bstr_t("user"),
            _bstr_t("pasword");
            m_preview.SetReportSource(pReport);
            m_preview.ViewReport();
Re[5]: refresh in crystal report
От: alex2808 Украина  
Дата: 13.08.02 11:58
Оценка:
Здравствуйте димс, Вы писали:
Д>полный пример...

Д>
Д>        IReportPtr pReport;
Д>        IApplicationPtr pApplication;
Д>        IDatabasePtr pDatabase;        
Д>        HRESULT hr;
Д>        pApplication.CreateInstance(__uuidof(Application));
Д>        pReport=pApplication->OpenReport(_bstr_t(getReportFileName()));    
Д>        hr=pReport->get_Database((IDatabase**) &pDatabase);
Д>        ASSERT(SUCCEEDED(hr));
Д>        pDatabase->GetTables()->Item[1]->SetLogOnInfo(
Д>            _bstr_t("server"),
Д>            _bstr_t("database"),
Д>            _bstr_t("user"),
Д>            _bstr_t("pasword");
Д>            m_preview.SetReportSource(pReport);
Д>            m_preview.ViewReport(); 

Д>


У меня на getReportFileName() и все остальные get-ы идет ругня.. :???:
Это какие-то стандартные методы?
Обычно я подставлял в OpenReport "имя_файла.rpt"
Всех благ
Re[6]: refresh in crystal report
От: димс  
Дата: 13.08.02 12:26
Оценка:
Здравствуйте alex2808, Вы писали:

A>У меня на getReportFileName() и все остальные get-ы идет ругня..

A>Это какие-то стандартные методы?
A>Обычно я подставлял в OpenReport "имя_файла.rpt"
A>
правильно делал, это блин мой код
Re[7]: refresh in crystal report
От: alex2808 Украина  
Дата: 16.08.02 07:01
Оценка:
Здравствуйте димс, Вы писали:

Д>Здравствуйте alex2808, Вы писали:


A>>У меня на getReportFileName() и все остальные get-ы идет ругня.. :???:

A>>Это какие-то стандартные методы?
A>>Обычно я подставлял в OpenReport "имя_файла.rpt"
A>>
Д>правильно делал, это блин мой код :))

А вот Ваш код, на мой манер :)

    IReportPtr pReport;
        IApplicationPtr pApplication;
        IDatabasePtr pDatabase;        
        HRESULT hr;
        pApplication.CreateInstance(__uuidof(Application));
        pReport=pApplication->OpenReport(_bstr_t("RepDynamicShipping.rpt"));    
        hr=pReport->get_Database((IDatabase**) &pDatabase);
        ASSERT(SUCCEEDED(hr));
        pDatabase->GetTables()->Item[1]->SetLogOnInfo(
            _bstr_t("SMARTSELOV"),
            _bstr_t("WH_Fregat"),
            _bstr_t("sa"),
            _bstr_t("start"));
        pReport->DiscardSavedData();//Убираем сохраненные данные
        m_CRViewer1.SetReportSource(pReport);
        m_CRViewer1.ViewReport();

Если не ставить pReport->DiscardSavedData(), или в самом отчете не убрать "птичку" в File/Save Data with Report, то прекрасно показывает ранее сохраненные данные и так постоянно. Если все-таки их отбросить одним из данных методов, то и этот пример кидает "Server has not yet been opened".
Может что-то еще в самом ActiveX Report View нужно настроить?
Или в самом отчете RepDynamicShipping.rpt?
Всех благ
Re[8]: refresh in crystal report
От: димс  
Дата: 19.08.02 08:19
Оценка:
Здравствуйте alex2808, Вы писали:

A>Здравствуйте димс, Вы писали:


Д>>Здравствуйте alex2808, Вы писали:


A>>>У меня на getReportFileName() и все остальные get-ы идет ругня..

A>>>Это какие-то стандартные методы?
A>>>Обычно я подставлял в OpenReport "имя_файла.rpt"
A>>>
Д>>правильно делал, это блин мой код

A>А вот Ваш код, на мой манер


A>Если не ставить pReport->DiscardSavedData(), или в самом отчете не убрать "птичку" в File/Save Data with Report, то прекрасно показывает ранее сохраненные данные и так постоянно. Если все-таки их отбросить одним из данных методов, то и этот пример кидает "Server has not yet been opened".

A>Может что-то еще в самом ActiveX Report View нужно настроить?
A>Или в самом отчете RepDynamicShipping.rpt?

должен работать
возможная причина — не сразу устанавливает соединение (это как в Enterprise Manager возможен connect не спервого раза)
Re[9]: refresh in crystal report
От: alex2808 Украина  
Дата: 20.08.02 08:58
Оценка:
Здравствуйте димс, Вы писали:
Д>должен работать :crash:
Д>возможная причина — не сразу устанавливает соединение (это как в Enterprise Manager возможен connect не спервого раза)

А как программно проверить, установил ли коннект Crystal?
Всех благ
Re[8]: refresh in crystal report
От: димс  
Дата: 20.08.02 11:58
Оценка:
Здравствуйте alex2808, Вы писали:

A>Может что-то еще в самом ActiveX Report View нужно настроить?

A>Или в самом отчете RepDynamicShipping.rpt?

возможно следующее:
я создавал шаблон так: в Data Explorer выбирал More Data Sources, далее OLE DB,далее
Make New Connection, далее Microsoft OLE DB Provider for SQL Server

для разных провайдеров нужны свои параметры в SetLogOnInfo...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.