![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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