Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.03;
Скачать: 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 вся ветка

Текущий архив: 2002.06.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
14-7216
3d[Power]
2002-04-23 21:54
2002.06.03
игруха.


1-6999
ga3
2002-05-23 01:56
2002.06.03
программный маус-клик


3-6943
Rub
2002-05-14 12:00
2002.06.03
Показ JPEG-ов средствами TDBImage...


14-7185
igorr
2002-04-25 14:22
2002.06.03
Из серии легких задачек :))


1-6958
Stexen
2002-05-22 16:09
2002.06.03
ДИАЛОГ ВЫБОРА ДИРИКТОРИИ