Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как передать данные в CRReport.PrintOut [D7, XP]


Сергей ©   (2009-11-02 13:27:00) 

Всем привет.
Использую RAD Кристал Репорт 11.5.
Не могу передать в startPage или stopPage значение больше чем 32000
CRReport.PrintOut(false,1,true,startPage,stopPage) пишет - Некорретный параметр.
procedure PrintOut(promptUser: OleVariant; numberOfCopy: OleVariant; collated: OleVariant; startPageN: OleVariant; stopPageN: OleVariant); safecall;
Интересно то что если вызывать эту функцию с окном для ввода параметров печати - принимает без проблем если ввести параметры вручную в edit диапазона печати, но программно без окна не хочет.


clickmaker   (2009-11-02 18:16:00) [1]

> [5] Сергей   (02.11.09 14:26)

там один метод, что-ли - PrintOut?
и никаких свойств и настроек?


Сергей   (2009-11-02 14:26:00) [2]

clickmaker,
В модуле unit CRAXDDRT_TLB;

IReport = interface(IDispatch)

procedure TReport.PrintOut(promptUser: OleVariant; numberOfCopy: OleVariant; collated: OleVariant; startPageN: OleVariant; stopPageN: OleVariant);
begin
 DefaultInterface.PrintOut(promptUser, numberOfCopy, collated, startPageN, stopPageN);
end;


В unit System

type
 IInterface = interface
   ['{00000000-0000-0000-C000-000000000046}']
   function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
   function _AddRef: Integer; stdcall;
   function _Release: Integer; stdcall;
 end;

 IUnknown = IInterface;
{$M+}
 IInvokable = interface(IInterface)
 end;
{$M-}

 IDispatch = interface(IUnknown)
   ['{00020400-0000-0000-C000-000000000046}']
   function GetTypeInfoCount(out Count: Integer): HResult; stdcall;
   function GetTypeInfo(Index, LocaleID: Integer; out TypeInfo): HResult; stdcall;
   function GetIDsOfNames(const IID: TGUID; Names: Pointer;
     NameCount, LocaleID: Integer; DispIDs: Pointer): HResult; stdcall;
   function Invoke(DispID: Integer; const IID: TGUID; LocaleID: Integer;
     Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer): HResult; stdcall;
 end;

.... Все что нашел... Как найти исходник?


Dennis I. Komarov   (2009-11-02 14:00:00) [3]

>32000 - плохие числа,
давай 32767 передадим?


clickmaker   (2009-11-02 13:54:00) [4]

так, а исходники-то CRReport.PrintOut есть?
или может, в CR есть какой-то хитрый глобальный параметр/настройка, типа MaxPageCount


Сергей   (2009-11-02 13:36:00) [5]

программа для типографии. Кстати можно ли вызвать api функции печати и  использовать ее под кристал?


clickmaker   (2009-11-02 13:29:00) [6]

> startPage или stopPage значение больше чем 32000

сильно. а бумаги-то хватит?


Наверх

Титульная страница Поиск, карта сайта Написать письмо