FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9233
Вход
Работа с Crystal Reports 9

Доработанное решение №508. Работать с классом по прежнему просто, но добавлены дополнительные методы + параметры вызова + исправлена неточность + возможность выбора принтера.


 
Прислал: lo-pata   Категория: Отчеты


Проблемы старого класса:
1. Если использовать для работы с MS SQL - нет вопросов,
в самом отчете устанавливатся свойства подключения и все работает.
А вот если работать с локальными таблицами - вытаскивать данные в файлы fox2x,
то тут уж лучше указывать полные пути к этим самым таблицам. Поэтому в класс
добавлены методы установки путей к таблицам отчета oCR.addtable и путей к
таблицам подотчетов oCR.addsubtable.

2. Все начинается с создания объекта класса:
oCR=CREATEOBJECT('CrystalRuntime.Application'). Я долго не мог понять,
почему это при помощи этого класса именно отчеты для CR9 не хотят работать.
При этом отчеты для CR8.5 работают на ура. А все просто: если у вас на
машине стоит не одна версия CR, а несколько, то в реестре запись
'CrystalRuntime.Application' связывается с той версией CR, которая была
установлена раньше всех. Так у меня создавался класс CR8.5, который не
понимал отчетов, сделанных в CR9, о чем громко и кричал. Проблема решается
добавлением номера версии CR через точку:'CrystalRuntime.Application.9'.
При таком вызове мы гарантированно получим экземпляр CR9.

3. У меня всегда в начаде программы создается класс приложения. В этом классе
задается иконка приложения. И вот когда ты вызываешь на просмотр отчет -
у него в левом углу стандартная фоксовая иконка и надпись "Отчет".
Ну не очень как-то смотрится. Поэтому в класс добавлены необязательные параметры.
Первый задает текст в заголовке окна, второй - иконку.

4. Последние изменения: Очень меня смущала такая весчь в вьювере для CR9, как отсутсвие возможности выбора и настройки принтера. Сделать на форме отдельную кнопку для этого? Не проблема. Только проблема в том, что эта единственная кнопка для выбора принтера на форме смотрится как 5-е колесо у телеги. Поэтому сделал свою менюшку для управления просмотром. Те, для кого не критично отсутствие кнопки выбора принтера - могут пользоваться родными контролами. Для этого нужно как и раньше oCR=CREATEOBJECT('myCR9','Отчет №1','d:\print.gif'). Те, кто хотят видеть кнопку - добавьте после файла с иконкой .t. (типа ShowControls) oCR=CREATEOBJECT('myCR9','Отчет №1','d:\print.gif', .t.). Конкретно этот класс сделан на 9-ке. Но раньше он же использовался на 6-ке для работы с CR.

SET CLASSLIB TO crystalrep9 ADDITIVE
PUBLIC oCR

&& первый параметр - текст шапки окна просмотра, второй - файл иконки, третий - показывать новые контролы или родные
oCR=CREATEOBJECT('myCR9','Отчет №1','d:\print.gif',.t.)

&& теперь устанавливаем параметры отчета && в первом случае, если мы сами передаем параметр для самого CR oCR.addparam('CompanyName','Иванов Лтд.')

&& второй случай - если передаем значение для процедуры MS SQL oCR.addparam('@Number','33')

&& первый параметр - номер таблицы в отчете, второй - полное название файла && с данными с полным путем к нему oCR.addtable(1,oApp.TempPath+'crrOrder1.dbf')

&& первый параметр - название подотчета, второй - номер таблицы в подотчете, && третий - полное название файла с данными с полным путем к нему oCR.addsubtable('22',1,oApp.RepPath+'crrOrder2.dbf')

oCR.previewreport('d:\repReport.rpt')


 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (0) Вложение [12.71]kb
Дополнения пользователей
Работа с Crystal Reports 9
[+][?]
LSpivachevsky
26.06.07 10:15:55

  А где же сам класс crystalrep9?
lo-pata
26.06.07 10:53:08

Вот пытаюсь с админами связаться - не хотят файлы прикрепляться.
lo-pata
26.06.07 13:31:35

Класс прикреплен.
LSpivachevsky
27.06.07 09:16:17

Совсем другое дело!
Roha
09.07.08 14:37:31

Не работает
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика