|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Простой цикл для отчета
Уважаемые, программка формирует отчет, для выбора из таблицы данных я сделал такую "подставку". Проблема в том что программа вылетает если значения в базе пустые.. - как мне это допилить, чтобы при пустом значении вставляло Form4.qrLabel441.Caption:=' ' к примеру?
Код:
DataModule2.AdoQ28.First; for I := 0 to DataModule2.ADOQ28.RecordCount do begin if DataModule2.ADOQ28.FieldByName('xxxx').Value<>0 then begin Form4.qrLabel441.Caption:=DataModule2.ADOQ28.FieldByName('xxxx').AsString; end; DataModule2.AdoQ28.Next; end; |
#2
|
||||
|
||||
Цитата:
С проверкой делается так: Код:
if DataModule2.ADOQ28.FieldByName('xxxx').IsNull then Form4.qrLabel441.Caption := ' ' else Form4.qrLabel441.Caption := DataModule2.ADOQ28.FieldByName('xxxx').AsString; p.s. Не всегда заранее известно количество записей в выборке, поэтому цикл: Код:
for I := 0 to DataModule2.ADOQ28.RecordCount do Код:
while not DataModule2.ADOQ28.Eof do |
#3
|
|||
|
|||
Блин, мне структура понравилась, спасибо за совет, буду стараться прикручивать его - но пока, вставив - программа не выводит значения.. там может быть косяк в базе самой, я особо не знаю там что, может ничего нет в строке, может пробелы - поэтому вот так на наличие проверял - значение больше либо меньше..
|
#4
|
||||
|
||||
Цитата:
|
#5
|
|||
|
|||
Цитата:
|
#6
|
||||
|
||||
Минутку. qrLabel441 - это из Quick Report что-ли? Если так, то там не нужно делать вручную циклов, просто указываешь нужный DataSet и имя поля (DataField) и Quick Report сам выведет все записи из него (после QuickRep1.Preview). Только нужно использовать не TQRLabel, а TQRDBText, так как TQRLabel предназначен для статического текста и поэтому в нём нет свойств DataSet и DataField.
|
#7
|
|||
|
|||
Цитата:
Код:
если - значение в базе не ноль то присваиваем лейблу значение из базы, иначе присваиваем лейблу значение - "пробел" |
#8
|
||||
|
||||
Цитата:
Код:
procedure TReportForm.qrLabel441Print(sender: TObject; var Value: String); begin if DataModule2.ADOQ28.FieldByName('xxxx').IsNull then Value := ' ' else Value := DataModule2.ADOQ28.FieldByName('xxxx').AsString; end; |