Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.06.2010, 14:59
Виктор Виктор вне форума
Прохожий
 
Регистрация: 01.06.2010
Сообщения: 9
Репутация: 10
По умолчанию Печать Grid

Как организовать печать Grid
Ответить с цитированием
  #2  
Старый 02.06.2010, 16:01
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Как вариант установить EhLib.
Можно через репорт.
Ответить с цитированием
  #3  
Старый 02.06.2010, 16:17
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну вариантов много, можно просто как битмап заслать на принтер, но это будет некрасиво. Можно экспортировать в эксел, а уже оттуда красиво напечатать, можно посидеть и написать красивый код который будет нормально отправлять на печать.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 10.06.2010, 10:42
Аватар для Mad programmer
Mad programmer Mad programmer вне форума
Прохожий
 
Регистрация: 11.05.2010
Сообщения: 23
Репутация: 10
По умолчанию

через Quickreport.
Код:
var
  GridReport: TGridReport;

implementation

{$R *.dfm}


procedure TGridReport.Preview(Grid:TDBGrid);
var
  i, CurrentLeft, CurrentTop : integer;
  BMark:TBookmark;
begin

//  GridRep.Page.Length:=420;
//  GridRep.Page.Width:=297;
//  GridRep.Page.PaperSize:=A3;
//  GridRep.Page.Orientation:=poLandscape;

  GridRep.Dataset:=Grid.DataSource.DataSet;

//Заголовок отчета

//  if not GridRep.Bands.HasDetail then
    GridRep.Bands.HasTitle:=true;

  GridRep.Bands.TitleBand.Height:=150;
      with TQRLabel.Create(GridRep.Bands.TitleBand) do
      begin
        Parent := GridRep.Bands.TitleBand;
        Left := 7;
        Top := 7;
        Color:=$00ADADAD;
        Font.Size:=55;
        Caption:='Заголовок отчета.     ';
      end;


//Этот текст будет отображаться вначале каждой страницы

//  if not GridRep.Bands.HasDetail then
    GridRep.Bands.HasPageHeader:=true;

  GridRep.Bands.PageHeaderBand.Height:=100;
      with TQRLabel.Create(GridRep.Bands.PageHeaderBand) do
      begin
        Parent := GridRep.Bands.PageHeaderBand;
        Left := 7;
        Top := 7;
        Font.Size:=16;
        Caption:='Этот текст будет отображаться вначале каждой страницы...';
      end;


//Этот текст будет отображаться в конце каждой страницы

//  if not GridRep.Bands.HasDetail then
    GridRep.Bands.HasPageFooter:=true;

  GridRep.Bands.PageFooterBand.Height:=100;
      with TQRLabel.Create(GridRep.Bands.PageFooterBand) do
      begin
        Parent := GridRep.Bands.PageFooterBand;
        Left := 7;
        Top := 7;
        Font.Size:=16;
        Caption:='Этот текст будет отображаться в конце каждой страницы...';
      end;


//Этот текст будет отображаться в конце всего отчета, после данных

//  if not GridRep.Bands.HasDetail then
    GridRep.Bands.HasSummary:=true;

  GridRep.Bands.SummaryBand.Height:=500;
      with TQRLabel.Create(GridRep.Bands.SummaryBand) do
      begin
        Parent := GridRep.Bands.SummaryBand;
        Left := 7;
        Top := 15;
        Font.Size:=16;
        Caption:='Этот текст будет отображаться в конце всего отчета..';
      end;

  if not GridRep.Bands.HasColumnHeader then
    GridRep.Bands.HasColumnHeader:=true;

  if not GridRep.Bands.HasDetail then
    GridRep.Bands.HasDetail:=true;
//

  GridRep.Bands.ColumnHeaderBand.Height:=Abs(Grid.TitleFont.Height) + 10;
  GridRep.Bands.DetailBand.Height:=Abs(Grid.Font.Height) + 10;
  CurrentLeft := 12;
  CurrentTop := 6;

  {Запись, на которой пользователь останавливается в DBGrid}
  BMark:=Grid.DataSource.DataSet.GetBookmark;
  {Запретим мерцание грида в процессе работы отчёта}
  Grid.DataSource.DataSet.DisableControls;
  try
    for i:=0 to Grid.FieldCount - 1 do
    begin
      if (CurrentLeft + Canvas.TextWidth(Grid.Columns[i].Title.Caption)) >
      (GridRep.Bands.ColumnHeaderBand.Width) then
      begin
        CurrentLeft := 12;
        CurrentTop := CurrentTop + Canvas.TextHeight('A') + 6;
        GridRep.Bands.ColumnHeaderBand.Height :=
        GridRep.Bands.ColumnHeaderBand.Height + (Canvas.TextHeight('A') + 10);
        GridRep.Bands.DetailBand.Height :=
        GridRep.Bands.DetailBand.Height + (Canvas.TextHeight('A') + 10);
      end;
        GridRep.Bands.ColumnHeaderBand.Color:=$00959595;
      {Создадим заголовок отчёта при помощи QRLabels}
      with TQRLabel.Create(GridRep.Bands.ColumnHeaderBand) do
      begin
        Parent := GridRep.Bands.ColumnHeaderBand;
        Color := GridRep.Bands.ColumnHeaderBand.Color;
        Left := CurrentLeft+25;
        Top := CurrentTop;
        Caption:=Grid.Columns[i].Title.Caption;
//        Alignment:=Grid.Columns[i].Alignment;
        Alignment:=taCenter;

      end;
      {Создадим тело отчёта при помощи QRDBText}
      with TQRDbText.Create(GridRep.Bands.DetailBand) do
      begin
        Parent := GridRep.Bands.DetailBand;
        Color := GridRep.Bands.DetailBand.Color;
        Left := CurrentLeft;
        Top := CurrentTop;
        Alignment:=taCenter;//Grid.Columns[i].Alignment;
        AutoSize:=false;
        AutoStretch:=true;
        Width:=Grid.Columns[i].Width;
        Dataset:=GridRep.Dataset;
        DataField:=Grid.Fields[i].FieldName;
        CurrentLeft:=CurrentLeft + (Grid.Columns[i].Width + 15);
      end;
    end;
//
//    lblPage.Left := bdTitle.Width - lblPage.Width - 10;
//    lblDate.Left := bdTitle.Width - lblDate.Width - 10;

    {Далее вызовем метод предварительного просмотра из QuickRep}
    GridRep.PreviewModal; {либо, если желаете, то PreviewModal}

  finally
    with Grid.DataSource.DataSet do
    begin
      GotoBookmark(BMark);
      FreeBookmark(BMark);
      EnableControls;
    end;
  end;
end;
Admin: Не забываем про теги!

Последний раз редактировалось Admin, 10.06.2010 в 10:48.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:25.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter