Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
1-7063
Nikolay
2002-05-20 21:38
2002.06.03
Создание переменных.


8-7131
Davile
2002-01-04 17:50
2002.06.03
Где достать (в InterNeteeeeeeeeeeeeee) учебнечек по OpenGL


4-7265
BAHO
2002-02-26 00:52
2002.06.03
Вопрос по NT


14-7165
PVOzerski
2002-04-24 14:07
2002.06.03
реален ли обмен SIMM ?


3-6937
icu
2002-05-13 19:33
2002.06.03
Развертывание приложений MS SQL Server





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский