Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Печать отчёта

6
05 марта 2007 года
George
4.1K / / 05.01.2007
Ситуация такая. Имеется отчёт в БД Access. С помощью Delphi (вернее, программы созданной в Delphi) надо открыть этот отчёт и отправить на печать. Как, не подскажете?
302
06 марта 2007 года
Sagittarius
648 / / 12.04.2003
Цитата: Washington
Ситуация такая. Имеется отчёт в БД Access. С помощью Delphi (вернее, программы созданной в Delphi) надо открыть этот отчёт и отправить на печать. Как, не подскажете?


Если можно получить доступ к Access через OLE (по типу, Excel.Application), то, думаю, проблема решена.

6
06 марта 2007 года
George
4.1K / / 05.01.2007
Я использую Microsoft Jet 4.0 для подключения к Access. А дальше?
6
06 марта 2007 года
George
4.1K / / 05.01.2007
Код:
const
 acViewNormal = $00000000;
 acViewDesign = $00000001;
 acViewPreview = $00000002;
 acQuitPrompt = $00000000;
 acQuitSaveAll = $00000001;
 acQuitSaveNone = $00000002;
var
 Access: Variant;
begin
// Открываем Access
try
  Access:=GetActiveOleObject('Access.Application');
except
  Access:=CreateOleObject('Access.Application');
end;
Access.Visible := True;
Access.OpenCurrentDatabase('Payments.mdb', True);
Access.DoCmd.OpenReport('rDone', acViewPreview, EmptyParam, EmptyParam);
Access.CloseCurrentDatabase;
Access.Quit(acQuitSaveAll);
end;


Ты это имеешь ввиду?
302
06 марта 2007 года
Sagittarius
648 / / 12.04.2003
Цитата: Washington
Я использую Microsoft Jet 4.0 для подключения к Access. А дальше?


Ты используешь доступ к самой БД. В таком случае вызвать отчет Access не получится.

Я предложил воспользоваться COM-сервером Access. Алгоритм, примерно, такой:
1. Создаешь сервер CreateOleObject( 'Access.Application' )
2. Открываешь базу данных
3. Формируешь отчет
4. Уничтожаешь сервер

Как выполняются пункты 2..4 не знаю, надо ковыряться в VBA самого Access'а.

6
06 марта 2007 года
George
4.1K / / 05.01.2007
Дело в том, что в программе я использую базу данных Access. И данные из запросов этой базы данных отправляются в отчёт, который мы и должны распечатать. А если создавать сервер, как перекидывать данные изи созданного отчёта в отчёт, который надо сформировать, и вообще, есть ли в этом смысл?
302
07 марта 2007 года
Sagittarius
648 / / 12.04.2003
Цитата: Washington
А если создавать сервер, как перекидывать данные изи созданного отчёта в отчёт, который надо сформировать, и вообще, есть ли в этом смысл?


1. Данные для отчета можно занести в специально отведенную таблицу в этой же БД.
2. Вообще, если создавать программу с БД Access средствами Delphi, то, ИМХО, и отчет надо создавать в Delphi, чтобы ПО было независимо от наличия на компьютере пользователя СУБД Access.

6
07 марта 2007 года
George
4.1K / / 05.01.2007
В принципе идею понял. Но если допустим данные в отчёт накапливаются в течение определённого промежутка веремни. Значит, для того чтобы занести данные в отчёт, который мы формируем, нужно их из созданного как-то считать.
А насчёт второго, не спорю, отчёт лучше создавать в Delphi, (ты имеешь ввиду QuickReport и RaveReport?) но в Access'е проще.
Насчёт созданного отчёта ситуация такая:
Есть две таблицы. Из них опроеделённые данные жахаются в 2 запроса. А уже на основе тех запросов создаётся автоматическм отчёт.
QuickReport... Попробовать можно, но я читал книжицу про неё. В палитре компонентов должна быть вкладка Qreport. А у меня её нет. Если кто знает где эти компоненты скачать можно, скажите плз.
А RaveReport я ещё не осиливал.
302
15 марта 2007 года
Sagittarius
648 / / 12.04.2003
Цитата: Washington
А у меня её нет. Если кто знает где эти компоненты скачать можно, скажите плз.
А RaveReport я ещё не осиливал.


В Delphi 7 компонентов QuickReport уже нет. Я пользуюсь FastReport, удобнее и функциональнее пока что не встречал.

1.9K
26 марта 2007 года
Cool Xacker
148 / / 06.06.2006
попробуй не заморачиваясь вывести по одной записи
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог