Делфи и отчеты Access

guru-ru
Дата: 10.11.2007 12:49:17
Подскажите, пожалуйста, есть ли какие-нибудь компоненты для отображения отчетов сделаных в ACCESS?
Пока сделал программный запуск аccess и показ отчета, но хотелось бы прямо в программе его отобразить.
Кроик Семён
Дата: 10.11.2007 14:06:41
Сам такого не делал, но если вот так поискать то находим :

#83:How I can open a report (in Print Preview mode and also print direct) in an MS Access database?

#83:How I can open a report (in Print Preview mode and also print direct) in an MS Access database?


In the next small example I'll demonstrate how you can call the report in MS Access:
var 
  Access: Variant; 
begin 
  {open the Access application}
  try 
    Access := GetActiveOleObject('Access.Application'); 
  except 
    Access := CreateOleObject('Access.Application'); 
  end; 
  Access.Visible := True; 

  { open the database 
   The second parameter specifies whether you want to open the 
   database in Exclusive mode}
  Access.OpenCurrentDatabase('C:\My Documents\Books.mdb', True); 

  { open the report 
   The value for the second parameter should be one of 
   acViewDesign, acViewNormal, or acViewPreview. acViewNormal, which is the
   default, prints the report immediately. If you are not using the type
   library, you can define these values like this: 

  const 
    acViewNormal = $00000000; 
    acViewDesign = $00000001; 
    acViewPreview = $00000002; 

  The third parameter is for the name of a query in the current 
  database. The fourth parameter is for a SQL WHERE clause - the string must
  be valid SQL, minus the WHERE.} 
  Access.DoCmd.OpenReport('Titles by Author', acViewPreview, EmptyParam, EmptyParam); 

<...> 
  {close the database}
  Access.CloseCurrentDatabase; 

  {close the Access application}
  {const 
    acQuitPrompt = $00000000; 
    acQuitSaveAll = $00000001; 
    acQuitSaveNone = $00000002;} 
  Access.Quit(acQuitSaveAll); 
end; 

guru-ru
Дата: 10.11.2007 14:13:58

Кроик Семён



Искал, и именно такое находил. Но мне нужно непосредственно в программе.

Такой способ у меня реализован, но он не удобен (аксесс запускается и висит
как приложение).


Posted via ActualForum NNTP Server 1.4

Anatoly Podgoretsky
Дата: 10.11.2007 14:30:56
А как, хочешь выполнять отчеты Ассеss и без Access.
Конечно можно, но придется переписать всю функциональность Акцесс в своей программе при условии, что формат файла Акцесс на документирован. Это еще та задача, до пенсии хватит.
Не проще ли свой генератор отчетов разработать или восспользовать уже разработаным, класса embeded, а таких мало, да и функциональность у них слабая.
Кроик Семён
Дата: 10.11.2007 14:30:56
вроде когда-то видел компоненты для Delphi, которые позволяли показывать отчеты из 97-й версии mdb без использования MS Access'a.
guru-ru
Дата: 10.11.2007 14:44:51

Кроик Семён



А название не помнишь?

Anatoly Podgoretsky



Да я свои отчеты сделаю, но они уже готовы (порядка 65 штук) в аксесе, и
переделывать их - времени уйдет немеренно. Поэтому сейчас реализованно через
вызов ACCESS и показ, но плохо что вся база высвечивается.



Может как-то можно сделать невидимым разделы (таблицы, запросы, макросы) и
оставить только Отчеты?


Posted via ActualForum NNTP Server 1.4

Anatoly Podgoretsky
Дата: 10.11.2007 14:50:51
Ну и не мудри, оставь как есть.
Кроик Семён
Дата: 10.11.2007 15:39:10
чтобы не пропали результаты моих поисков (да и по топику подходит)
вот нашел такую штучку:
ComponentOne VSVIEW® Reporting

.... Microsoft Access-style database reporting, plus document previewing, exporting, and printing ....

.... the Report Designer can import report definitions from Microsoft Access MDB files ....

.... The VSReport8 control can be distributed royalty-free with your applications ....
guru-ru
Дата: 10.11.2007 15:51:34

Спасибо. попробую.


Posted via ActualForum NNTP Server 1.4

Kotъ-Begemotъ
Дата: 11.11.2007 01:17:32
guru-ru
Подскажите, пожалуйста, есть ли какие-нибудь компоненты для отображения отчетов сделаных в ACCESS?
Пока сделал программный запуск аccess и показ отчета, но хотелось бы прямо в программе его отобразить.


Гмм... А что есть "отчёты сделанные в Access"? Ведь Access это БД. Следовательно набор таблиц? И все отчеты это "причёсанные" результаты запросов к таблицам баз данных... Ну и сделай свои запросы к этим таблицам и отображение их в DBGrig'ах... Через ADO например замечательно работается с Access'ом.