Страница 1 из 1

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

Добавлено: 20 Март 2013, 12:02
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

Спасибо.

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

Добавлено: 20 Март 2013, 15:02
Admin
vea писал(а):PROPSTYLE:FontStyle
Это относится к листбоксам ...
Вам нужно

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

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

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

?Field{PROP:FontName} = 'Arial'
?Field{PROP:FontStyle} = FONT:Bold

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

Добавлено: 20 Март 2013, 16:52
samo_let
Так и сделать, только перед изменением свойства шрифта надо сделать SETTARGET на нужный DETAIL

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

Добавлено: 16 Май 2013, 13:31
vea
?Field{PROP:FontStyle} = FONT:Bold почему-то не работает... :-(

Может это надо вставлять не перед печатью Detail, а где-то раньше? Но, все остальные обработки, подсчеты по условию работают в этом месте. А PROP: не хочет...

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

Добавлено: 16 Май 2013, 14:44
kreator
У меня вставка в TakeRecord до Parent Call, и так:

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

REPORT$?Field{Prop:FontStyle} = FONT:bold

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

Добавлено: 17 Май 2013, 9:05
vea
И снова большое спасибо! Именно в такой редакции и именно в этом месте все сработало нормально... Свойства поля изменяются.

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

Добавлено: 22 Май 2013, 11:42
Губин Игорь
Стандартная ситуация: когда открыты одновременно и окно и отчёт, то надо указывать к чему конкретно относится поле

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

Добавлено: 23 Май 2013, 15:34
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 происходит дважды...
Чей глюк? Мой или Клары? И чем отличается перевод в тысячи при переборе записей от перевода в конце?

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

Добавлено: 23 Май 2013, 17:53
samo_let
Сильно сомневаюсь, что клара с арифметикой не дружит...
И чем отличается перевод в тысячи при переборе записей от перевода в конце?
Тем, что может набежать погрешность
При большом количестве записей существенная

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

Добавлено: 23 Май 2013, 18:25
Губин Игорь
Для получения гарантированной точности рекомендуется Decimal. Но даже в случае с реал матисса колеблется только в последнем знаке.

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

Добавлено: 24 Май 2013, 10:32
vea
В том-то и дело, что выборка из около 700 записей. Не может быть такой погрешности (в 1000 раз) в принципе. Думаю, что все же это мой ляп. Только не пойму, в чем и почему в одном случае работает правильно, в другом - нет...
Цикл (перебор), в нем наращивание итога (из нескольких полей по условиям) и в нем же перевод этого итога в тысячи. Т.е. при каждом чтении очередной записи происходит и перевод в тысячи. Это, конечно, ненормально, но не может в этом быть арифметическая ошибка...
Во втором случае перевод в тысячи в ходе наращивания итога значением каждого выбираемого поля записи. Разницы (арифметически) никакой... Погрешность ничтожно мала.

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

Добавлено: 24 Май 2013, 11:24
samo_let
Слова, слова...
Если бы кусок реального кода привели, то можно было бы что-то сказать
Типы данных какие?
99.99% - руки.sys