Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по созданию отчетов 
:(
    Опции темы
BigMazy
Дата 24.9.2004, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 22.2.2003

Репутация: нет
Всего: нет



Здравствуйте, возникла трудность в сооздании одного отчета.
Проблема такова:
Как создать отчет в котором на одном листе было бы
несколько колонок записей.
Такой отчет схематично будет выглядеть так

************************
*запись1 записьN+1 *
*запись2 записьN+2 *
*запись3 записьN+3 *
*запись4 записьN+4 *
*запись5 записьN+5 *
*............ ................ *
*............ ................ *
*и.т.д. ................ *
*............ ................ *
*............ ................ *
*записьN записьM *
************************
PM MAIL   Вверх
Pakshin A. S.
Дата 24.9.2004, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Юзаем QuickReport'ы (предварительно прочитав о их работе) и два компонента в поле QRMemo в поле Detail компонента QuickRep (вкладка QReport)

Откуда берем информацию? Место, откуда заполныются колонки...
Когда это буду знать, напишу полный пример с формой... biggrin.gif
PM   Вверх
BigMazy
Дата 24.9.2004, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 22.2.2003

Репутация: нет
Всего: нет



Данные беруться из таблицы Paradox
Название таблицы любое
Пусть в отчет заносится 1 поле из
таблицы, также с любым именем.
Важно чтобы на странице помещалось несколько колонок значений.

PM MAIL   Вверх
Pakshin A. S.
Дата 24.9.2004, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Ok. Завтра до обеда у тебя юудет описание формы отчета и процедура его генерации... smile.gif Сейчас, просто спать охото... biggrin.gif
PM   Вверх
Frikazoid
Дата 24.9.2004, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: 1
Всего: 2



В маздайный Ексчел его! =)
я делал именно так!


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Pakshin A. S.
Дата 24.9.2004, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Ага... но только работать медленно будеть... А вдруг юзер не знает Excel? как он печатать будет?
PM   Вверх
Frikazoid
Дата 25.9.2004, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: 1
Всего: 2



Согласен, тормозить будет! но кому щас легко?
просто в Екселе бельше возможностей! хоть и маздай, но всё же респект!


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Pakshin A. S.
Дата 25.9.2004, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Обещал, сделал пример:
Форма:
Код

object Form1: TForm1
 Left = 192
 Top = 114
 Width = 837
 Height = 550
 Caption = 'Form1'
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'MS Sans Serif'
 Font.Style = []
 OldCreateOrder = False
 Scaled = False
 OnClose = FormClose
 PixelsPerInch = 96
 TextHeight = 13
 object QuickRep1: TQuickRep
   Left = 8
   Top = 8
   Width = 794
   Height = 1123
   Frame.Color = clBlack
   Frame.DrawTop = False
   Frame.DrawBottom = False
   Frame.DrawLeft = False
   Frame.DrawRight = False
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Height = -13
   Font.Name = 'Arial'
   Font.Style = []
   Functions.Strings = (
     'PAGENUMBER'
     'COLUMNNUMBER'
     'REPORTTITLE')
   Functions.DATA = (
     '0'
     '0'
     '''''')
   Options = [FirstPageHeader, LastPageFooter]
   Page.Columns = 1
   Page.Orientation = poPortrait
   Page.PaperSize = A4
   Page.Values = (
     100.000000000000000000
     2970.000000000000000000
     100.000000000000000000
     2100.000000000000000000
     100.000000000000000000
     100.000000000000000000
     0.000000000000000000)
   PrinterSettings.Copies = 1
   PrinterSettings.Duplex = False
   PrinterSettings.FirstPage = 0
   PrinterSettings.LastPage = 0
   PrinterSettings.OutputBin = Auto
   PrintIfEmpty = True
   SnapToGrid = True
   Units = MM
   Zoom = 100
   object TitleBand1: TQRBand
     Left = 38
     Top = 38
     Width = 718
     Height = 40
     Frame.Color = clBlack
     Frame.DrawTop = False
     Frame.DrawBottom = False
     Frame.DrawLeft = False
     Frame.DrawRight = False
     AlignToBottom = False
     Color = clWhite
     ForceNewColumn = False
     ForceNewPage = False
     Size.Values = (
       105.833333333333300000
       1899.708333333333000000)
     BandType = rbTitle
     object QRLabel1: TQRLabel
       Left = 313
       Top = 13
       Width = 58
       Height = 17
       Frame.Color = clBlack
       Frame.DrawTop = False
       Frame.DrawBottom = False
       Frame.DrawLeft = False
       Frame.DrawRight = False
       Size.Values = (
         44.979166666666670000
         828.145833333333200000
         34.395833333333340000
         153.458333333333300000)
       Alignment = taCenter
       AlignToBand = False
       AutoSize = True
       AutoStretch = False
       Caption = 'QRLabel1'
       Color = clWhite
       Transparent = False
       WordWrap = True
       FontSize = 10
     end
   end
   object DetailBand1: TQRBand
     Left = 38
     Top = 118
     Width = 718
     Height = 963
     Frame.Color = clBlack
     Frame.DrawTop = False
     Frame.DrawBottom = False
     Frame.DrawLeft = False
     Frame.DrawRight = False
     AlignToBottom = False
     Color = clWhite
     ForceNewColumn = False
     ForceNewPage = False
     Size.Values = (
       2547.937500000000000000
       1899.708333333333000000)
     BandType = rbDetail
     object QRDBRichText1: TQRDBRichText
       Left = 40
       Top = 8
       Width = 100
       Height = 945
       Frame.Color = clBlack
       Frame.DrawTop = False
       Frame.DrawBottom = False
       Frame.DrawLeft = False
       Frame.DrawRight = False
       Size.Values = (
         2500.312500000000000000
         105.833333333333300000
         21.166666666666670000
         264.583333333333400000)
       Alignment = taLeftJustify
       AutoStretch = True
       Color = clWindow
       Font.Charset = DEFAULT_CHARSET
       Font.Color = clWindowText
       Font.Height = -13
       Font.Name = 'Arial'
       Font.Style = []
       DataSet = Table1
     end
     object QRDBRichText2: TQRDBRichText
       Left = 384
       Top = 8
       Width = 100
       Height = 945
       Frame.Color = clBlack
       Frame.DrawTop = False
       Frame.DrawBottom = False
       Frame.DrawLeft = False
       Frame.DrawRight = False
       Size.Values = (
         2500.312500000000000000
         1016.000000000000000000
         21.166666666666670000
         264.583333333333400000)
       Alignment = taLeftJustify
       AutoStretch = True
       Color = clWindow
       Font.Charset = DEFAULT_CHARSET
       Font.Color = clWindowText
       Font.Height = -13
       Font.Name = 'Arial'
       Font.Style = []
       DataSet = Table1
     end
   end
   object ColumnHeaderBand1: TQRBand
     Left = 38
     Top = 78
     Width = 718
     Height = 40
     Frame.Color = clBlack
     Frame.DrawTop = False
     Frame.DrawBottom = False
     Frame.DrawLeft = False
     Frame.DrawRight = False
     AlignToBottom = False
     Color = clWhite
     ForceNewColumn = False
     ForceNewPage = False
     Size.Values = (
       105.833333333333300000
       1899.708333333333000000)
     BandType = rbColumnHeader
     object QRDBText1: TQRDBText
       Left = 40
       Top = 8
       Width = 70
       Height = 17
       Frame.Color = clBlack
       Frame.DrawTop = False
       Frame.DrawBottom = False
       Frame.DrawLeft = False
       Frame.DrawRight = False
       Size.Values = (
         44.979166666666670000
         105.833333333333300000
         21.166666666666670000
         185.208333333333300000)
       Alignment = taLeftJustify
       AlignToBand = False
       AutoSize = True
       AutoStretch = False
       Color = clWhite
       DataSet = Table1
       DataField = 'QRDBText1'
       Transparent = False
       WordWrap = True
       FontSize = 10
     end
     object QRDBText2: TQRDBText
       Left = 384
       Top = 8
       Width = 70
       Height = 17
       Frame.Color = clBlack
       Frame.DrawTop = False
       Frame.DrawBottom = False
       Frame.DrawLeft = False
       Frame.DrawRight = False
       Size.Values = (
         44.979166666666670000
         1016.000000000000000000
         21.166666666666670000
         185.208333333333300000)
       Alignment = taLeftJustify
       AlignToBand = False
       AutoSize = True
       AutoStretch = False
       Color = clWhite
       DataSet = Table1
       DataField = 'QRDBText2'
       Transparent = False
       WordWrap = True
       FontSize = 10
     end
   end
 end
 object Table1: TTable
   Left = 86
   Top = 54
 end
end

Модуль:
Код

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, DB, DBTables, QRCtrls, QuickRpt, ExtCtrls;

type
 TForm1 = class(TForm)
   QuickRep1: TQuickRep;
   TitleBand1: TQRBand;
   DetailBand1: TQRBand;
   QRLabel1: TQRLabel;
   ColumnHeaderBand1: TQRBand;
   QRDBRichText1: TQRDBRichText;
   QRDBText1: TQRDBText;
   Table1: TTable;
   QRDBText2: TQRDBText;
   QRDBRichText2: TQRDBRichText;
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
 private
   { Private declarations }
 public
   procedure Generate(const TableNameS:string; const Field1, Field2:string);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Generate(const TableNameS:string; const Field1, Field2:string);
begin
QuickRep1.Visible:=False;
QRLabel1.Caption:='Table: ' + TableNameS;
with Table1 do
 begin
  Close;
  TableName:=TableNameS
 end;
QRDBText1.DataField:=Field1;
QRDBText2.DataField:=Field2;
QRDBRichText1.DataField:=Field1;
QRDBRichText2.DataField:=Field2;
Table1.Open;
QuickRep1.Visible:=True;
QuickRep1.Preview
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Table1.Close
end;

begin
with Form1 do
 begin
  QRDBText1.DataSet:=Table1;
  QRDBText2.DataSet:=Table1;
  QRDBRichText1.DataSet:=Table1;
  QRDBRichText2.DataSet:=Table1
 end
end.

PM   Вверх
BigMazy
Дата 25.9.2004, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 22.2.2003

Репутация: нет
Всего: нет



Большое спасибо Pakshin A. S.
Сейчас сяду разбираться.
PM MAIL   Вверх
Medved
Дата 25.9.2004, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Добрый совет - используйте FastReport - такив вопросов даже возникать не будет. И не забывайте заглядывать в папки \Demos. Обычно там дано 90% ответов на такие вопросы.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0586 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.