Как сделать индикацию цветом несовершеннолетних?

#1
Не получается придумать как сделать индикацию цветом строки ученика который не достиг 17 летнего возраста. То есть возраст можно высчитать функцией "Период" но как из этого сделать индикацию непонятно. Попробовал ввести дополнительное поле с датой дня когда исполнится 17, но прицепить расчёт не получается.
1513946861345.png
 

Anti

Администратор
Команда форума
#2
Ввести дополнительное расчётное поле с 4-мя знаками после запятой и формулой
([~today]-[Дата рождения])/365,2425
И в условии поля Краска проверять это поле.
[Лет]<17
 
#3
Спасибо, буду пробовать! Получается нужны только "Дата рождения" и "Период" с названием "Лет" делённое на года точно.
А вообще затейливо получается, хотя в принципе особая точность в данном вопросе и не нужна.
 
#4
Считает не очень точно из за одного нуля. А как ввести именно 4? в окошке не видно количество и при сохранении всё равно сбрасывается.
1513951671283.png
 
#5
Разобрался, надо в окошко цифру 4 вбить. А я нули пытался. Работает с точностью 1 день!
1513955541981.png

Тогда получается что можно в условии поля "Краска" указать число через запятую и сделать несколько индикаций?
 

Anti

Администратор
Команда форума
#6
В условии поля Краска можно указать несколько условий через запятую. В этом случае подкраска будет работать по принципу И (будет подкрашивать, если выполняются ВСЕ условия).
Если нужно выполнение по принципу ИЛИ (подкрашивать, если хотя бы одно условие срабатывает), то нужно сделать несколько полей краски, каждое со своим условием.
 
#7
А число в условии поля "Краска" вместо 17 установить 16, 1234 можно?
И можно ли в условии поля "Краска" применить более сложную формулу чтобы делать подкраску только в определённом диапазоне? Например отсчитывая только год назад от расчётного значения. Тогда появится возможность индикации по тому же признаку для других возрастов, например кому пора менять паспорт.
 

Anti

Администратор
Команда форума
#8
А число в условии поля "Краска" вместо 17 установить 16, 1234 можно?
В условии поля краска запятая служит как разделитель нескольких условий, поэтому её использовать нельзя.
Можно использовать точку - но только в случае, если она установлена в системе как разделитель целой и дробной части.
До сих пор во всех проектах встречали только сравнение с целым числом.

И можно ли в условии поля "Краска" применить более сложную формулу чтобы делать подкраску только в определённом диапазоне? Например отсчитывая только год назад от расчётного значения.
В условии краски разрешено использование типов полей: переключатель, ссылка на объект, число, расчёт.
Поэтому в данном случае нужно создать нужное количество расчётных полей и использовать их в условии краски.
 
#9
Поэтому в данном случае нужно создать нужное количество расчётных полей и использовать их в условии краски.
Это понятно. Я хотел спросить что в условии поля "Краска" было не просто меньше числа 45, а больше 44 но меньше 45.
Если я сделаю индикацию отдельными расчётными полями для условий меньше 17 и меньше 45 одновременно, то условие меньше 17 совпадает с условием меньше 45. А хочется сделать одновременно и независимо. Поэтому для условия меньше 45 было бы вполне достаточно диапазона год назад. По другому, нужна индикация условия меньше 45 только в текущем году.
 

Vladimir

Администратор
Команда форума
#10
Для такого условия, их надо перечислить в поле краски через запятую, например
Код:
[Значение]>44, [Значение]<45
См. http://runabase.ru/help/field.html#color

Если я сделаю индикацию отдельными расчётными полями для условий меньше 17 и меньше 45 одновременно, то условие меньше 17 совпадает с условием меньше 45.
Не совпадёт. Использовано будет первое поле краски в списке полей объекта (сверху вниз), условия которого выполняются. Остальные поля краски будут игнорироваться.
 
#11
Задача в общем была ещё немного сложнее. Надо чтобы до 17 лет строка ученика подсвечивалось красным, в период плюс-минус три месяца от 20 лет желтым и в период плюс-минус три месяца от 45 лет тоже жёлтым.
Вот так.
1513984812777.png

Сделал в одном расчёте ([~today]-[а_Дата рождения])/365,2425+0,3 а в другом ([~today]-[а_Дата рождения])/365,2425-0,3
В краске 20 вставил [Расчёт 21]>20, [Расчёт 19]<20
В краске 45 вставил [Расчёт 21]>45, [Расчёт 19]<45
То есть например для 45 лет расчёт выглядит так
1513985162033.png

Если попадает в зону, то подсвечивается.
Главное чтобы заказчик был доволен )