Главная страница
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.013 c
4-7255
Vulsim
2002-03-31 06:48
2002.06.03
Как из Char Virtual key code получить?


7-7249
Серый
2002-03-03 19:09
2002.06.03
GM56E-V и Win XP


3-6919
VOVK
2002-05-14 09:44
2002.06.03
Документация по Domino Designer 5.0


1-6953
SaperXL
2002-05-20 22:09
2002.06.03
RichEdit


6-7143
daos
2002-03-23 09:45
2002.06.03
Ошибка в сокете.