Движок Postgresdac для Fastreport 5

отредактировано November 2010 Раздел: FastReport 4.0
Для FastReport 4 (ошибка № версии в теме сообщения)

Итак, после долгих мучений я сделал движок!!!
Инструкция:

1. Устанавливаем FastReport

2. Устаналиваем PostgresDAC-компоненты

3. Заходим в папку Extra (она находится в папке установленного FastReport)

4. Делаем резервную копию папки Template

5. Удаляем все ненужные версии файлов в папке Template, если вашей версии IDE нет (также как и у меня), то я беру, например все файлы с номером 9 переименовую на 11. Удалять необязательно, просто для чистоты.

6. Файл dclfrxXXX11.bdsproj
- находим вхождение dclfrxXXX9.dpk и меняем на dclfrxXXX11.dpk

7. Файл dclfrxXXX11.dpk
- находим вхождение package dclfrxXXX9; и меняем на package dclfrxXXX11;
- находим вхождение {$DESCRIPTION 'FastReport 3.0 XXX Components'} и меняем на {$DESCRIPTION 'FastReport 4.0 XXX Components'}
- находим вхождение frxXXX9; и меняем на frxXXX11;

8. Файл frxXXX11.bdsproj
- находим вхождение frxXXX9.dpk и меняем на frxXXX11.dpk

9. Файл frxXXX11.dpk
- находим вхождение package frxXXX9; и меняем на package frxXXX11;
- находим вхождение PXXX90 и меняем на PXXX11, я так думаю 0 был обязателен, поэтому если у вас версия Delphi ниже 10, то ставить 70, 80, ...
- находим вхождение frx9 и меняем на frx11
- находим вхождение frxDB9 и меняем на frxDB11
- находим вхождение fs9 и меняем на fs11
- удаляем три строки (если оставить, то у меня компилируется с ошибкой)
{$IFDEF QBUILDER}
fqb90,
{$ENDIF}

10. Файл frxXXXComponents.pas
- находим вхождение FQuery.Database.GetTableNames(ATableList, ShowSystemTables);
и меняем на FQuery.Database.GetTableNames('', ShowSystemTables, ATableList);
- находим вхождение frxObjects.RegisterObject1(TfrxXXXDataBase, nil, '', 'XXX', 0, 37);
и меняем на frxObjects.RegisterObject1(TfrxXXXDataBase, nil, '', {$IFDEF DB_CAT}'DATABASES'{$ELSE}''{$ENDIF}, 0, 37);
- находим вхождение frxObjects.RegisterObject1(TfrxXXXTable, nil, '', 'XXX', 0, 38);
и меняем на frxObjects.RegisterObject1(TfrxXXXTable, nil, '', {$IFDEF DB_CAT}'TABLES'{$ELSE}''{$ENDIF}, 0, 38);
- находим вхождение frxObjects.RegisterObject1(TfrxXXXQuery, nil, '', 'XXX', 0, 39);
и меняем на frxObjects.RegisterObject1(TfrxXXXQuery, nil, '', {$IFDEF DB_CAT}'QUERIES'{$ELSE}''{$ENDIF}, 0, 39);
- находим вхождение CatBmp.Free;
и меняем на //CatBmp.Free; (комментируем)

11. Файл frxXXXEditor.pas
- находим вхождение DataBase.GetTableNames(Values, False);
и меняем на DataBase.GetTableNames('', False, Values);

12. Файл frxXXXReg.pas
- находим вхождение RegisterComponents('FastReport 3.0', [TfrxXXXComponents]);
и меняем на RegisterComponents('FastReport 4.0', [TfrxXXXComponents]);

13. Запускаем Delphi

14. Открываем проект NewEngine.dpr

15. Для Tedit - AbbrE удаляем событие AbbrEExit, мешает в данном случае.

16. Запускаем программку NewEngine.

17. Заполняем TEdit сверху вниз:

- DAC
- TPSQLTable
- TPSQLQuery
- TPSQLDatabase
- PSQLDbTables
- PostgresDAC

- последние два на свое усмотрение

18. Кнопка ОК. Программа создала папку DAC в папке Extra). Закрываем проект, но не оболочку.

19. Копируем папку DAC в папку ..\FastReport\Source\

20. Добавляем путь к папке DAC в опциях: Tools->Options->Library - Win32->Library Path

21. Открываем в оболочке файл frxDAC11.dpk из папки DAC - компилируем (compile)

22. Открываем в оболочке файл dclfrxDAC11.dpk из папки DAC - компилируем (compile) и устанавливаем (install)

23. В разделе FastReport 4.0 видим новый компонент TfrxDACComponents

ВСЕ!!!

Проверка сделанного:
1. Кидаем на форму компоненты - TfrxReport, TfrxDACComponents, TPSQLDatabase
4. Выставляем TfrxDACComponents.DefaultDatabase := PSQLDatabase1
5. Правая кнопка на TfrxReport -> Edit report
6. На вкладке данные, в самом низу, видим три наших новых компонента - DAC Database, DAC Table, DAC Query
7. У компонентов DAC Table, DAC Query свойство Database := PSQLDatabase1
ч.т.д. :-)


P.S. ОГРОМНЕЙШАЯ БЛАГОДАРНОСТЬ Stakler за наводку по пункту 10.2, 10.3, 10.4 (вот здесь я ничего изначально не трогал, поэтому компоненты не показывались в отчете во вкладке данные)

P.S.S. CatBmp.Free; для чего он - не знаю. Подскажите. Пошло только когда закомментировал.
P.S.S.S. Цифры (последний параметр) в frxObjects.RegisterObject1 - (37, 38, 39) по словам Stakler обозначают номер иконки для компонента. Только где взять полный список иконок и как добавить свои - не знаю.

Комментарии

  • Stalker4Stalker4 123
    отредактировано 05:22
    JackRoto написал: »
    Для FastReport 4 (ошибка № версии в теме сообщения)

    P.S.S. CatBmp.Free; для чего он - не знаю. Подскажите. Пошло только когда закомментировал.
    P.S.S.S. Цифры (последний параметр) в frxObjects.RegisterObject1 - (37, 38, 39) по словам Stakler обозначают номер иконки для компонента. Только где взять полный список иконок и как добавить свои - не знаю.
    Зачем тебе чужие иконки ? Сделай свои и укажи их при регистрации своих компонент в RegisterObject1.
    Пример как это делается можешь посмотреть в моих движках для FR (см. сайт в подписи).
  • отредактировано 05:22
    Stalker4 написал: »
    Зачем тебе чужие иконки ? Сделай свои и укажи их при регистрации своих компонент в RegisterObject1.
    Пример как это делается можешь посмотреть в моих движках для FR (см. сайт в подписи).

    Спасибо! Попробую!

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.