Вниз
Скачать: 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.008 c
14-7168
Malder
2002-04-23 23:35
2002.06.03
Бойцовский клуб =)


14-7200
Феликс
2002-04-26 21:05
2002.06.03
OpenGL?


3-6926
maxim2
2002-05-14 11:58
2002.06.03
Можно ли сделать колонку DBGrid невидимой?


1-6963
KIR
2002-05-22 18:02
2002.06.03
Форматирование текста в ячейках StringGrid a


3-6886
shagen
2002-05-11 13:11
2002.06.03
Помогите вставить графику.




   Наверх