Вниз
Скачать: CL | DM;

Млжно ли сделать отчет с заранее неизвестным кол. полей.   Найти похожие ветки 

← →
maxim2 ©   (2002-05-14 09:20) [0]

Привет всем !
Ну например есть таблица в ней 12 полей, при нажатии на кнопку печать вызывается форма, в ней стоят CheckBox"ы тоже 12. И в зависимости какие Checkbox"ы отмечены распечатать те поля.


← →
Lord Warlock ©   (2002-05-14 09:39) [1]

Делаешь QRDBLabel-ов столько сколько полей, в BeforePrint
банда, где стоят лабелы, пишешь

QRDBLabel(номер).Visible=Form.CheckBox(Номер).Checked


← →
Johnmen ©   (2002-05-14 09:43) [2]

QRDBText.Visible:=...Checked;

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


← →
kalinka   (2002-05-14 09:58) [3]

Можно и по-другому (динамически создаем отчет):

Var i: Integer;
MyField: TQRDBText;
MyDetailBand: TQRSubDetail;
MyLabel: TQRLabel;
MyWidht: Integer;
begin
MyWidht := 0;
//Создаем полосу данных
MyDetailBand := TQRSubDetail.Create(self);
//Указывем отчет, на которой находится эта полоса
MyDetailBand.Parent := qrMainReestr;
MyDetailBand.Master := qrMainReestr;
//Устанавливаем высоту полосы
MyDetailBand.Height := 15;

//Создаем поля данных

MyWidht := 0; //Ширина поля
qrMainReestr.DataSet := adoMainTovars; //Источник данных отчета
For i := 0 to dbMainTovars.FieldCount-1 do
Begin
If (CheckBox(Номер).Checked) Then //Если CheckBox отмечен, то
Begin
MyField := TQRDBText.Create(self); //создаем поле
MyField.Parent := MyDetailBand; //указываем родителя
//Присваиваем имя компоненту
MyField.Name := "qrdbt"+dbMainTovars.Columns[i].FieldName;
//Источник данных поля
MyField.DataSet := adoMainTovars;
//Присваиваем имя полю
MyField.DataField := dbMainTovars.Columns[i].FieldName;
//Снимаем признак AutoSize
MyField.AutoSize := FALSE;
//Высота поля
MyField.Height := 15;
//Считаем MyWidht для указания левой границы
MyWidht := MyWidht + dbMainTovars.Columns[i].Width;
//Левая граница поля
MyField.Left := MyWidht-dbMainTovars.Columns[i].Width + 1;
//Верхняя граница поля
MyField.Top := 0;
//Ширина поля
MyField.Width := dbMainTovars.Columns[i].Width;
//Размер шрифта поля
MyField.Font.Size := 8;
End;
End;
end;


← →
asafr ©   (2002-05-14 13:35) [4]

Есть такая хорошая вещь, FastReport называется... Полюбопытствуй...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
1-7031
magArt
2002-05-21 14:45
2002.06.03
Разработка компонентов


3-6898
Vitamin
2002-05-13 10:45
2002.06.03
получить список таблиц


8-7136
UnDISCOvery
2002-01-05 14:02
2002.06.03
Графика и База Данных. Как совместить ?


8-7125
Nest
2002-01-15 14:57
2002.06.03
Посоветуйте прогу AVI-grabber, нужно изготовить демку к проге в PowerPoint с авишкой-скриншотом.


1-6971
SPeller
2002-05-21 15:35
2002.06.03
Буттон обыкновенный




   Наверх