Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

QReports [D7]


_xroot ©   (2005-11-07 11:37:00) 

Необходимо вывести на принт отчет в виде таблицы то есть:
1 колонка - Имена
2 колонка - Фамиилии
3 колонка - Прибыль
...
N колонка - ....

Но проблема в том, 4то изначально неизвестно какие будут колонки и их кол-во
Как с помощью QReport это релизовать


Anatoly Podgoretsky   (2005-11-07 13:45:00) [1]

На моем сайте есть документация.


mr.il   (2005-11-07 13:09:00) [2]

В плане колонок, там лего определять динамически, в какую писать.


mr.il   (2005-11-07 13:07:00) [3]

Создаешь  в excele шаблон.
Потом в коде пишешь типа:

var
 XL_2 : Variant;
 _Rov : Integer;
 _SW, _SS : Currency;
begin with DM_Zakaz do begin
 IBQ_ZakazData.DisableControls;
 IBQ_ZakazData.AutoCalcFields := False;

 XL_2 := CreateOleObject('Excel.Application');
 XL_2.Workbooks.Add(_Environment.Path_Rep+'ZakazBlank.XLT');

 XL_2.Range['A1'].Value := 'Бланк-заказ № '+IntToStr(IBQ_Zakaz['ZAKAZ_ID']);
 XL_2.Range['A4'].Value := 'Дата составления: '+DateToStr(IBQ_Zakaz['Date_Doc']);
 XL_2.Range['A5'].Value := 'Поставщик: '+_NotNullStr(IBQ_ZakazZakazName.Value);
 IBQ_ZakazData.First; _Rov := 8; _SW := 0; _SS := 0;
 while not IBQ_ZakazData.Eof do begin
     XL_2.Range['B'+IntToStr(_Rov)].Value := _NotNullStr(IBQ_ZakazData['PROD_NAME']);
     XL_2.Range['C'+IntToStr(_Rov)].Value := CurrToStr(IBQ_ZakazData['Quant_Z']);
     XL_2.Range['D'+IntToStr(_Rov)].Value := _Quant2Bags(_NotNullCurr(IBQ_ZakazData['Quant_Z']), _NotNullCurr(IBQ_ZakazData['CPB']));
     XL_2.Range['E'+IntToStr(_Rov)].Value := _NotNullCurr(IBQ_ZakazData['Quant_Z'])*_NotNullCurr(IBQ_ZakazData['W']);
     _SW := _SW+(_NotNullCurr(IBQ_ZakazData['Quant_Z'])*_NotNullCurr(IBQ_ZakazData['W']));
     XL_2.Range['F'+IntToStr(_Rov)].Value := _NotNullCurr(IBQ_ZakazData['Quant_Z'])*_NotNullCurr(IBQ_ZakazData['Cost_Z']);
     _SS := _SS+(_NotNullCurr(IBQ_ZakazData['Quant_Z'])*_NotNullCurr(IBQ_ZakazData['Cost_Z']));
     Inc(_Rov);
   end;
   IBQ_ZakazData.Next;
 end;
 XL_2.Range['E'+IntToStr(_Rov)].Value := _SW;
 XL_2.Range['F'+IntToStr(_Rov)].Value := _SS;
 XL_2.Run('myAutoFill'); // это запуск макроса в шаблоне
 XL_2.Visible:=True;

 IBQ_ZakazData.AutoCalcFields := True;
 IBQ_ZakazData.EnableControls;
end; end;

и ни какого QReporta.

в D7  и выше в юсес надо вставить ComObj


gvv   (2005-11-07 11:59:00) [4]

http://www.sources.ru/delphi/delphi_printing_content_dbgrid.shtml


Наверх

Титульная страница Поиск, карта сайта Написать письмо