Re[2]: Visual Studio C++ 7.0 + Crystal Reports
От: princeandrew Россия  
Дата: 02.12.04 07:23
Оценка:
Здравствуйте, aryb, Вы писали:

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

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

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

PEClosePrintJob(myPrintJob);
PECloseEngine();

f = PEOpenEngine();

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

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

f = PEOutputToWindow(myPrintJob, "Example", 10, 10, 400, 500, WS_CHILD | WS_VISIBLE, GetSafeHwnd());
f = PEStartPrintJob(myPrintJob, FALSE);
PECloseEngine();
/*******************************************************/
5. Так вот на самой первой функции f = PEOpenEngine(); — f — 0. И все последующие функции возвращают 0.

В чем может быть косяк?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.