Re[3]: Visual Studio C++ 7.0 + Crystal Reports
От: Аноним  
Дата: 03.12.04 09:26
Оценка:
Здравствуйте, princeandrew, Вы писали:

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


A>>В Crystal входит специальный help для разработчиков (CrystalDevHelp.chm), в котором как раз и написано про это.

A>>Есть crpe.h (если писать на C), а в старых версиях (в 8-ке точно) были еще классы (в т.ч. CRPEJob).
A>>По-моему, самый надежный способ — использовать crpe.h, т.к. дает максимум возможностей по управлению отчетами.

P>Спасибо, копаю в этом направлении. Только вот у меня стоит CR 9.0 в нем я не нашёл класс CRPEJob.

P>Чё я делаю:
P>1. Создаю проект на основе диалога — и ОК (все настройки по умолчанию)
P>2. В свойстав VC++ прописаны пути до C:\Program Files\Crystal Decisions\Crystal Reports 9\Developer Files\include
P>...\lib
P>3. В stdafx.h подключаю "crpe.h"
P>4. Создаю кнопку и обработчик для неё:
P>/*******************************************************/
P> SHORT myPrintJob = 0;
P> PEBOOL f = FALSE;
P> PELogOnInfo logOnInfo;
P> const char FAR ReportPath[256] = "D:\\Test.rpt";

P> PEClosePrintJob(myPrintJob);

P> PECloseEngine();

P> f = PEOpenEngine();


P> myPrintJob = PEOpenPrintJob(ReportPath);

P> strcpy(logOnInfo.DatabaseName, "RSDU2");
P> strcpy(logOnInfo.ServerName, "rsdu");
P> strcpy(logOnInfo.UserID, "имя");
P> strcpy(logOnInfo.Password, "пароль");
P> logOnInfo.StructSize = sizeof(PELogOnInfo);

P> PESetNthTableLogOnInfo(myPrintJob, 0, &logOnInfo, TRUE);


P> f = PEOutputToWindow(myPrintJob, "Example", 10, 10, 400, 500, WS_CHILD | WS_VISIBLE, GetSafeHwnd());

P> f = PEStartPrintJob(myPrintJob, FALSE);
P> PECloseEngine();
P>/*******************************************************/
P>5. Так вот на самой первой функции f = PEOpenEngine(); — f — 0. И все последующие функции возвращают 0.
P>-
P>В чем может быть косяк?
Думаю, что функция PEOpenEngine() должна быть самой первой.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.