Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2013, 14:15   #1
Tanzor69
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 90
По умолчанию Создание отчета в excel из БД

Собственно имеем: СУБД Access 2007, Delphi Xe, рабочий проект написанный в нем же. Так же имеем: ADOConnection, ADOQuery. Остался последний штрих. Вывести на лист excel результат запроса что находится в ADOQuery. Или если по другому сказать, вывести на лист excel то что отображается в данный момент в DBGrid1, который в свою очеред подключен к ADOQuery1. Буду рад увидеть какие то готовые примеры, или ссылки на статьи, книги и т.д. Думаю вопрос легко решаемый и часто встречающийся. Просто сам первый раз буду это делать, поэтому не имею образца
Tanzor69 вне форума Ответить с цитированием
Старый 07.11.2013, 14:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Рекомендую решать это не в Делфи:
http://www.programmersforum.ru/showthread.php?t=89383
http://www.programmersforum.ru/showthread.php?t=141788
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.11.2013, 15:30   #3
Tanzor69
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 90
По умолчанию

спасибо конечно, но это по-моему не то.
В программе есть форма, на ней отображается результат запроса ADOQuery. При то что так же на форме есть поля для фильтрации, и запрос может измениться. Так вот на этой форме есть еще кнопка - Печать, которая должна вывести информацию которая отображается в DBGrid в Excel. А то что предлагаете вы мне, вообще никак не относится к результатам запроса ADOQuery.
Tanzor69 вне форума Ответить с цитированием
Старый 07.11.2013, 15:38   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

так а вопрос то в чем? откыть excel умеете?
eval вне форума Ответить с цитированием
Старый 07.11.2013, 16:10   #5
Tanzor69
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 90
По умолчанию

вопрос в том, что никогда раньше так не делал, но думаю что так можно. поэтому прошу показать какие нибудь примеры. Можно и не в эксель, а просто на печать на принтер вывести набор данных из ADOQuery. Тогда подскажите какими компонентами пользоваться? Я как то раз делал через QuickReport, правда Delphi 7 был. А сейчас начал искать этот компонент, а он платный))
Tanzor69 вне форума Ответить с цитированием
Старый 08.11.2013, 15:07   #6
Tanzor69
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 90
По умолчанию

ребят, сам виноват, надо было сначала в интернете поискать. Вот что нашел, посмотрите, пожалуйста, то ли это? Должно ведь работать?
Код:
procedure TMainForm.ExcelBtnClick(Sender: TObject);
var i, j: integer;
    v: Variant;
begin
  ExApp := CoApplication_.Create;
  ExApp.Visible[0] := true;
  ExApp.Workbooks.Add(xlWBATWorksheet, 0);
  v := VarArrayCreate([0, DM.MainQuery.RecordCount+1,
                       0, Dm.MainQuery.FieldCount-1], varVariant);
  WS := ExApp.ActiveSheet as WorkSheet;
  for i:=0 to Dm.MainQuery.FieldCount-1 do begin
    v[0, i] := Dm.MainQuery.Fields.DisplayLabel;
  end;
  DM.MainQuery.First;
  j:=2;
  try
    DM.MainQuery.DisableControls;
    While not DM.MainQuery.Eof do begin
      for i:=0 to Dm.MainQuery.FieldCount-1 do begin
        v[j, i] := Dm.MainQuery.Fields.Value;
      end;
      dm.MainQuery.Next;
      inc(j);
    end;
  finally
    DM.MainQuery.EnableControls;
  end;
  ws.Cells.Range['a1',
    chr(ord('a')+varArrayHighBound(v, 2))+
    intToStr(varArrayHighBound(v, 1)+1)].value := v;
end;
Tanzor69 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание отчета из запроса ADoquary в Excel ins813 БД в Delphi 13 08.06.2012 13:59
Создание отчета HITBOY БД в Delphi 4 24.02.2012 14:47
Создание отчета! Fuckkiller Microsoft Office Access 1 05.05.2011 20:57
Создание отчета Alexnoir Microsoft Office Access 11 16.02.2011 01:07
Создание отчета Alsou Общие вопросы Delphi 0 19.06.2010 19:43