2 / 2 / 0
Регистрация: 16.08.2015
Сообщений: 67
|
|
1 | |
Многоуровневое условное форматирование05.09.2018, 01:29. Показов 3482. Ответов 36
Метки условное форматирование (Все метки)
Добрый день уважаемые гуру.
Очень требуется Ваша помощь Есть база заказов с ленточной формой, в которой нужно сделать многоуровневое условное форматирование, то есть: 1. при внесении в поле [РазмерОплаты] значения "100%" - все поля в данной строке должны закрашиваться Жёлтым цветом 2. когда в поле [Отгрузка] (этой же строки) вносится дата, то все поля данной строки должны перекрашиваться в Зелёный цвет 3. когда в поле [ЗаказЗакрыт] (этой же строки) вносится значение "ДА", то все поля данной строки должны перекрашиваться в Оранжевый цвет 4. И самое главное условие, что если в поле [Оплата] вносится значение "БЕЗ ОПЛАТЫ", то все поля данной строки должны перекрашиваться в Красный цвет Помогите пожалуйста !!!
0
|
05.09.2018, 01:29 | |
Ответы с готовыми решениями:
36
Условное форматирование Условное форматирование Условное форматирование Условное форматирование |
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
05.09.2018, 08:46 | 2 |
Если я правильно понял, вы хотите, чтобы ваше "условное форматирование" реагировало именно на СОБЫТИЯ, которые происходят при вводе новых значений в перечисленные поля? То есть, например, ввел пользователь что-то в поле - и строка окрасилась определенным цветом, так?
Я почему уточняю. Условное форматирование, по идее, обрабатывает уже имеющиеся в полях данные, и соответственно раскрашивает всю таблицу исходя из этих данных. И если забить в условное форматирование все перечисленные вами условия, то при выполнении НЕСКОЛЬКИХ условий одновременно - получится ерунда. Исходя из этого мне кажется, что здесь не получится использовать именно встроенное условное форматирование, а нужно писать небольшой код на события изменения данных в перечисленных полях, чтобы при изменении менялись цвета фонов других полей.
1
|
10482 / 5465 / 1377
Регистрация: 05.10.2016
Сообщений: 15,487
|
|
05.09.2018, 08:52 | 3 |
... и дальше накладывать форматирование на результат возвращаемый функцией ...
Предупреждение: при отображение наборов в прибл. 100 000 записей может "тормозить" ...
0
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
05.09.2018, 09:02 | 4 |
Насколько я вообще понимаю логику встроенного условного форматирования, там все построено по приоритетам срабатывания правил. То есть если срабатывает правило, которое ВЫШЕ по списку, то остальные игнорятся.
Добавлено через 3 минуты В целом нужно определиться, какими вы хотите видеть уже имеющиеся в таблице строки? Раскрашенными или нет? Если при открытии формы строки уже должны быть раскрашенными, то тогда определитесь с приоритетностью обработки ваших правил. Например, если в поле Размер оплаты стоит 100% и ОДНОВРЕМЕННО с этим в поле Заказ закрыт стоит "Да" - то КАКИМ ЦВЕТОМ должна выделяться такая строка - желтым или оранжевым? Если же изначально при открытии формы все строки должны быть нераскрашенными, то, как я и говорил, нужно прописывать код на события изменений в соответствующих полях.
0
|
10482 / 5465 / 1377
Регистрация: 05.10.2016
Сообщений: 15,487
|
|
05.09.2018, 09:07 | 5 |
Вот я и говорю:
Строить функцию, коя в аргументах имеет значения полей, - которая будет возвращать Integer (допустим)- а дальше - по значению и "красить". Я бы так пошел ... (Есть подозрение что так будет быстрее чем накладывание множества условий форматирования)
0
|
Модератор
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,642
|
|
05.09.2018, 09:10 | 6 |
Сообщение было отмечено Eugeniooo как решение
Решение
Сообщение от Kkarn
Никак. Вернее, окрасятся все записи скопом согласно последнему событию текущей зааиси. Eugeniooo, Сейчас есть возможность задать больше трех условий в УФ? Раньше не было. Для решения попробуйте задать эти условия, посмотрите, каков приоритет условий, что преобладает. И расставьте, исходя из этого, условия в нужном порядке.
1
|
10482 / 5465 / 1377
Регистрация: 05.10.2016
Сообщений: 15,487
|
|
05.09.2018, 09:13 | 7 |
0
|
Модератор
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,642
|
|
05.09.2018, 09:17 | 8 |
А к чему тогда все эти пространные рассуждения про гипотетическую функцию,
возвращающую integer ?
0
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
05.09.2018, 09:18 | 9 |
Упс. Вот про это я как-то и забыл...
Таки да. Тогда остается именно решать вопрос приоритетности правил "раскрашивания".
0
|
10482 / 5465 / 1377
Регистрация: 05.10.2016
Сообщений: 15,487
|
|
05.09.2018, 09:19 | 10 |
0
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
05.09.2018, 09:32 | 11 |
Я вроде как идею понял, но, по сути, оно ведь тоже работать не будет в ленточной форме, или я чего-то недопонимаю?..
Блин, я уже сам запутался. Добавлено через 1 минуту Говоря самым простым языком, насколько я понял, получается так: - если "красить" ячейки прямо из кода ВБА - оно раскрасит ВСЕ ячейки в ленточной форме. - если "красить" с помощью условного форматирования, то мы можем только забить в него какие-то приоритеты раскрашивания, не более того.
0
|
Модератор
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,642
|
|
05.09.2018, 09:34 | 12 |
Сообщение от Eugene-LS
А тем, кто не понял условия задачи, советую посмотреть видео "сколько грибов в третьем бочонке?".
0
|
10482 / 5465 / 1377
Регистрация: 05.10.2016
Сообщений: 15,487
|
|
05.09.2018, 09:41 | 13 |
Бл...
Пишем функцию по значениям полей (да хоть сотню в аргументах) - возвращает число (1,2,3,4,5,6, ... ) ... внутри сравниваем аргументы как хотим ... Встраиваем функцию в источник данных ленточной формы - и по возвращаемуму значению "красим"! Вот и вся идея...
0
|
Модератор
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,642
|
|
05.09.2018, 09:45 | 14 |
Сообщение от Eugene-LS
Или же у полей фон прозрачный, а красится поле-подложка? Второй вариант ясен-понятен. А первый нет.
0
|
10482 / 5465 / 1377
Регистрация: 05.10.2016
Сообщений: 15,487
|
|
05.09.2018, 09:49 | 15 |
Capi, вот чё хотим - то и красим - ибо имеем в источнике данных признак (значение) на который можем "смотреть" ....
0
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
05.09.2018, 09:50 | 16 |
))) Мы щас тут сами не хуже, чем в видео про грибы-огурцы, разведем обсуждение...
Я вот вроде бы понимаю, что функция, предлагаемая Eugene-LS, будет, по сути, делать то же самое "расставление приоритетов" и решать, каким цветом в итоге раскрасить строку, правильно? А вот потом возникает вопрос - ЧЕМ КРАСИТЬ БУДЕМ? тоже из кода ВБА - или же применим к полученному числу все то же условное форматирование? Как я понимаю, из кода ВБА раскрасить ЛЕНТОЧНУЮ ФОРМУ не выйдет, правильно? поскольку оно раскрасит ВСЕ СТРОКИ.
0
|
Модератор
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,642
|
|
05.09.2018, 09:52 | 17 |
Сообщение от Eugene-LS
0
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
05.09.2018, 09:52 | 18 |
А ТС, как здесь часто бывает, опять молчит... А мы тут разводим на пустом месте. Для начала мне хотелось бы именно от него услышать конкретные уточнения, о которых я писал выше...
0
|
10482 / 5465 / 1377
Регистрация: 05.10.2016
Сообщений: 15,487
|
|
05.09.2018, 09:58 | 19 |
0
|
Модератор
6017 / 2845 / 693
Регистрация: 12.06.2016
Сообщений: 7,642
|
|
05.09.2018, 10:07 | 20 |
Ответа нет.
Следовательно, делаю вывод - красится поле-подложка, а не основные поля ленточной формы. Жаль, что ничего нового.
0
|
05.09.2018, 10:07 | |
05.09.2018, 10:07 | |
Помогаю со студенческими работами здесь
20
Условное форматирование в форме Про условное форматирование Условное форматирование не сохраняется в БД Условное форматирование в форме Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |