Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Макет + Таблица значений + выделение цветом
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
SanSay
Есть макет, в который выводятся данные из таблицы значений

макет:

данные вставляются так:
//до этого была создана таблица значений
Для НомерСтроки = 0 По МояТЗ.Количество() - 1 Цикл
    ОбластьДетали.Параметры.Заполнить(МояТЗ[НомерСтроки]);
    ТабДок.Вывести(ОбластьДетали);
КонецЦикла;


и вопрос:
можно ли в итоговой таблице в столбце "Баллы", где параметр "БаллыИнд" проверить значение и например если больше 20, то эту ячейку покрасить в какойнить цвет?
Petre
Можно.
Ardi
Если по простому - то можно сделать 2 варианта строки итогов в макете.
SanSay
Цитата(Petre @ 22.11.13, 15:16) необходимо зарегистрироваться для просмотра ссылки
Можно.

а можно поподробнее

Цитата(Ardi @ 22.11.13, 16:18) необходимо зарегистрироваться для просмотра ссылки
Если по простому - то можно сделать 2 варианта строки итогов в макете.

да, точно, можно... чет сам не додумался... но правильнее как нить иначе, т.к. в моем случае нужно одну ячейку выделить, но возможно понадобится выделять несколько ячеек или разными цветами в зависимости от значения ячейки, а создавать 5-10, а то и больше вариантов строк - не серьезно

подскажи плиз вариант без создания разных строк
Petre
Цитата(SanSay @ 22.11.13, 14:32) необходимо зарегистрироваться для просмотра ссылки
а можно поподробнее

Куда уж подробнее того, что вы описали?
Берем табличный документ, обходим определенные ячейки, проверяем значение и раскрашиваем в нужный цвет.
Также можно сразу анализировать значение из тз и раскрашивать ячейку макета в нужный цвет (в этом варианте раскрашивать надо будет всегда: и в особый цвет, и в автоцвет).
Делать два макета проще и быстрее, но лично для меня как-то не идейно...
SanSay
проблема в том, что итоговая таблица имеет не постоянное колво строк и после нее идут еще другие мини таблички, поэтому обходить ее в конце думаю может вызвать сложности.
может быть можно непосредственно после вывода каждой строки закрасить?

в момент заполнения строк я знаю как узнать значение любого столбца, но я не знаю как в этот момент определить активную ячейку чтобы закрасить ее, с этим может ктонить помочь?

кстати можно конечно каждый параметр в отдельную область оформить и тогда может проще будет, но опять же кривой выход, т.к. столбцов может быть не 7 как у меня, а 50
Ardi
Перед выводом области можно раскрасить эту область.
Petre
Цитата(SanSay @ 22.11.13, 16:24) необходимо зарегистрироваться для просмотра ссылки
в момент заполнения строк я знаю как узнать значение любого столбца, но я не знаю как в этот момент определить активную ячейку чтобы закрасить ее

Что значит "активную ячейку"?
Если таблица динамическая, один раз обходим макет и ищем нужный параметр, запоминаем номер колонки (я надеюсь, параметр в рамках одной таблицы может находиться только в одной колонке biggrin.gif ), и раскрашиваем его...
Vofka
ТабличныйДокумент.Область(параметры см. в СП).ЦветФона = ...
SanSay
Цитата(Petre @ 22.11.13, 18:44) необходимо зарегистрироваться для просмотра ссылки
Что значит "активную ячейку"?
Если таблица динамическая, один раз обходим макет и ищем нужный параметр, запоминаем номер колонки (я надеюсь, параметр в рамках одной таблицы может находиться только в одной колонке biggrin.gif ), и раскрашиваем его...

что значит "ищем нужный параметр"?
вот так обхожу весь итоговый отчет:
    ДокументРезультат=ЭлементыФормы.ПолеТабличногоДокумента;
    Для а = 1 по 60 Цикл //строки
        Для к = 1 по 10 Цикл //столбцы

        КонецЦикла;
    КонецЦикла;

и что тут нужно прописать чтобы найти нужный параметр?

пока придумал только так: зная последовательность таблиц в итоговом отчете обхожу весь отчет и когда засветится ячейка с определенным значением, то отсчитываю сколько то еще ячеек и типо проверяю уже значение и крашу в нужный цвет... но это думаю бред

можно еще каждый параметр вывести в отдельную область и непосредственно перед или после установки значения параметра его красить, но это тоже как то не так, т.к. в таблице может быть 50 столбцов... делать 50 областей - как то не проффессионально )

Цитата(Vofka @ 23.11.13, 14:52) необходимо зарегистрироваться для просмотра ссылки
ТабличныйДокумент.Область(параметры см. в СП).ЦветФона = ...

Vofka, может не заметил, у меня "именнованная область" и узнать адрес ячеек, где она сформируется я не могу
это я ща про "ТабДок.Область("R2C2:R3C5");"
если я не правильно понял, что Вы мне намекал... то намекни еще раз

в идеале мне бы чтото типо
ТабличныйДокумент.Область("МояОбласть","R1C1:R1C5").ЦветФона = ...;
но чтобы нумеровка строк и столбцов была не с начала Табличного документа, а только внутри моей области

Короче вопрос пока остается открытым.

или чтото типо такого
ТабДок.МояОбласть("R1C1:R1C5").ЦветФона = Зеленый;
Vofka
SanSay, советую ознакомиться с правилами. Если ещё раз кому-то тыкните - я вас забаню.
alex040269
SanSay, ПолучитьОбласть() возвращает ТабличныйДокумент. Перед выводом его можно покрасить.
SanSay
alex040269, мне нужно покрасить лишь один из нескольких параметров в области, а не всю область.
Покрасить всю область не проблема.
Vofka
Есть область, именуемая Область1. Нужно раскрасить 3-ю колонку в этой области. Пишем:

ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");

Область = Макет.ПолучитьОбласть("Область1");
Для а=1 По 10 Цикл
    Область.Область(1, 3, 1, 3).ЦветФона = WebЦвета.ЖелтоЗеленый;
    ТабДок.Вывести(Область);
КонецЦикла;

ТабДок.Показать();


Радуемся полученному результату smile.gif .

Цикл в данном примере для наглядности.
SanSay
Цитата(Vofka @ 26.11.13, 12:17) необходимо зарегистрироваться для просмотра ссылки
...
    Область.Область(1, 3, 1, 3).ЦветФона = WebЦвета.ЖелтоЗеленый;

...

великолепно! Тема закрыта... наконец )
Всем спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.