Изменение фонта одного поля в одной из строк отчета

Обсуждение извечных проблем кларионовских (и не только) отчетов

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
vea
Бывалый
Сообщения: 51
Зарегистрирован: 01 Сентябрь 2005, 15:48
Откуда: Иваново
Контактная информация:

Изменение фонта одного поля в одной из строк отчета

Сообщение vea »

Необходимо, в зависимости от условия в одном из полей строки отчета изменить фонт.
Например, поле даты, которое в одной строке совпало с условием. В другой строке, если условие не выполнено, фонт остается общим для отчета.

Как это сделать (скорее всего используя PROPSTYLE{}, но как) и в каком месте? У меня перед выводом Detail.

Вот код:

Код: Выделить всё

 If (Today() <= ZAR:Dats and ZAR:Dats <= (Today()+KvoDnTek))
    ?ZAR:Dats{PROPSTYLE:FontStyle, 2} = FONT:Bold
 ELSE
    ?ZAR:Dats{PROPSTYLE:FontStyle, 1} = FONT:Regular
 End    
  
  PRINT(RPT:Detail)
Clarion 8.5

Спасибо.
С уважением, vea
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Изменение фонта одного поля в одной из строк отчета

Сообщение Admin »

vea писал(а):PROPSTYLE:FontStyle
Это относится к листбоксам ...
Вам нужно

Код: Выделить всё

PROP:Font
PROP:FontName
PROP:FontSize
PROP:FontColor
PROP:FontStyle
Типа ...

Код: Выделить всё

?Field{PROP:FontName} = 'Arial'
?Field{PROP:FontStyle} = FONT:Bold
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
samo_let
Посетитель
Сообщения: 42
Зарегистрирован: 26 Январь 2009, 16:24

Re: Изменение фонта одного поля в одной из строк отчета

Сообщение samo_let »

Так и сделать, только перед изменением свойства шрифта надо сделать SETTARGET на нужный DETAIL
Аватара пользователя
vea
Бывалый
Сообщения: 51
Зарегистрирован: 01 Сентябрь 2005, 15:48
Откуда: Иваново
Контактная информация:

Re: Изменение фонта одного поля в одной из строк отчета

Сообщение vea »

?Field{PROP:FontStyle} = FONT:Bold почему-то не работает... :-(

Может это надо вставлять не перед печатью Detail, а где-то раньше? Но, все остальные обработки, подсчеты по условию работают в этом месте. А PROP: не хочет...
С уважением, vea
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Re: Изменение фонта одного поля в одной из строк отчета

Сообщение kreator »

У меня вставка в TakeRecord до Parent Call, и так:

Код: Выделить всё

REPORT$?Field{Prop:FontStyle} = FONT:bold
We are hard at work… for you. :)
Аватара пользователя
vea
Бывалый
Сообщения: 51
Зарегистрирован: 01 Сентябрь 2005, 15:48
Откуда: Иваново
Контактная информация:

Re: Изменение фонта одного поля в одной из строк отчета

Сообщение vea »

И снова большое спасибо! Именно в такой редакции и именно в этом месте все сработало нормально... Свойства поля изменяются.
С уважением, vea
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Re: Изменение фонта одного поля в одной из строк отчета

Сообщение Губин Игорь »

Стандартная ситуация: когда открыты одновременно и окно и отчёт, то надо указывать к чему конкретно относится поле
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
vea
Бывалый
Сообщения: 51
Зарегистрирован: 01 Сентябрь 2005, 15:48
Откуда: Иваново
Контактная информация:

Re: Изменение фонта одного поля в одной из строк отчета

Сообщение vea »

Спасибо, буду иметь в виду.
Сегодня встретился с еще одной ситуацией. Все те же Clarion 8.0 и WinXP.
Делаю отчет из 2-х разделов. Каждый раздел из одной страницы, делаю в PageFooter. Первый раздел запускается в Init подпрограммы второго раздела.
Сначала сделал 2-й раздел. Перебираю по условию записи и накапливаю значение поля v21 += Cena (всего полей много, но для понимания ситуации хватит одного). По окончании перебора перевожу в тысячи рублей v21 /= 1000 и печатаю страницу. Все прекрасно, сумма, например, 600,00 т.р.!
Копирую полученный Report и немного подправив всякие надписи, чуть изменив условия выбора записей (основное - период между двумя датами, осталось) получаю печать 1-го раздела. Также перебираю по условию записи и накапливаю значение поля v21 += Cena и по окончании перебора перевожу в тысячи рублей v21 /= 1000 и печатаю страницу. Получаю сумму 0,60 т.р.
Изменяю формулу при переборе на v21 += Cena/1000 и удаляю перевод в тысячи в конце. На печати получаю 600,00 т.р.
Удивительно... Разные подпрограммы. Хотя одна запускается из другой. Но сначала считается первый раздел, затем 2-й. 2-й получается правильно, а первый, как будто деление на 1000 происходит дважды...
Чей глюк? Мой или Клары? И чем отличается перевод в тысячи при переборе записей от перевода в конце?
С уважением, vea
Аватара пользователя
samo_let
Посетитель
Сообщения: 42
Зарегистрирован: 26 Январь 2009, 16:24

Re: Изменение фонта одного поля в одной из строк отчета

Сообщение samo_let »

Сильно сомневаюсь, что клара с арифметикой не дружит...
И чем отличается перевод в тысячи при переборе записей от перевода в конце?
Тем, что может набежать погрешность
При большом количестве записей существенная
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2301
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 17 раз

Re: Изменение фонта одного поля в одной из строк отчета

Сообщение Губин Игорь »

Для получения гарантированной точности рекомендуется Decimal. Но даже в случае с реал матисса колеблется только в последнем знаке.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
vea
Бывалый
Сообщения: 51
Зарегистрирован: 01 Сентябрь 2005, 15:48
Откуда: Иваново
Контактная информация:

Re: Изменение фонта одного поля в одной из строк отчета

Сообщение vea »

В том-то и дело, что выборка из около 700 записей. Не может быть такой погрешности (в 1000 раз) в принципе. Думаю, что все же это мой ляп. Только не пойму, в чем и почему в одном случае работает правильно, в другом - нет...
Цикл (перебор), в нем наращивание итога (из нескольких полей по условиям) и в нем же перевод этого итога в тысячи. Т.е. при каждом чтении очередной записи происходит и перевод в тысячи. Это, конечно, ненормально, но не может в этом быть арифметическая ошибка...
Во втором случае перевод в тысячи в ходе наращивания итога значением каждого выбираемого поля записи. Разницы (арифметически) никакой... Погрешность ничтожно мала.
С уважением, vea
Аватара пользователя
samo_let
Посетитель
Сообщения: 42
Зарегистрирован: 26 Январь 2009, 16:24

Re: Изменение фонта одного поля в одной из строк отчета

Сообщение samo_let »

Слова, слова...
Если бы кусок реального кода привели, то можно было бы что-то сказать
Типы данных какие?
99.99% - руки.sys
Ответить