|
v7: Как в отчете изменить цвет шрифта ячейки в зависимости от условия | ☑ | ||
---|---|---|---|---|
0
exec11
24.06.22
✎
12:43
|
1с 77
Пробую делать так, но что то не получается. Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Цыкл ВыбОбласть = Таб.Область("R9C16"); ВыбОбласть.ЦветТекста(100,100,100) .... Таб.ВывестиСекцию("Строка"); КонецЦикла; Таб.ТолькоПросмотр(1); Таб.Показать("Мой отчет", ""); R9C16 - координаты ячейки, в конфигураторе, в табличке. |
|||
1
DCKiller
24.06.22
✎
12:56
|
Сначала выводи ячейку в таблицу, а потом в ней цвет меняй.
|
|||
2
uno-group
24.06.22
✎
12:56
|
нужно считать какая это ячейка в выведенной таблице а не в конфигураторе. если в шапке. 5 строк и потом пошли строки то для первой ячейки ("R6C16") потом "R7C16" и т.д.
ну и сперва выводи |
|||
3
Fedor-1971
24.06.22
✎
12:57
|
пробуй сначала вывести, а потом менять цвет в выведенном, последнюю строку получишь через табДок.ВысотаТаблицы()
|
|||
4
uno-group
24.06.22
✎
12:58
|
можно типа Таб.Область("R"+таб.ВысотаТаблицы()+"C16"); чтобы не считать какая это строка
|
|||
5
Простенький вопросик
24.06.22
✎
13:02
|
Нефигасе, 7.7 еще существует и дорабатывается
|
|||
6
DCKiller
24.06.22
✎
13:04
|
(5) Ты не поверишь :-)
|
|||
7
Fedor-1971
24.06.22
✎
13:04
|
(4) Если предварительно не вывести строку, то покрасишь предыдущую
|
|||
8
andrewalexk
24.06.22
✎
13:05
|
(5) :) я тебе даже больше скажу - с текущими тенденциями платформостроения и конфигурациистроения ЗАО 1С эта ваша мантра будет вечной
|
|||
9
exec11
24.06.22
✎
13:05
|
Цикл
.... Таб.ВывестиСекцию("Строка"); ВыбОбласть = Таб.Область("R15C15"); ВыбОбласть.ЦветТекста(100,100,100) КонецЦикла; Не помогло. Пробую хотя бы одну ячейку изменить. Выводится первая строка, 9 пустых, и дальше пошли строки. |
|||
10
Fedor-1971
24.06.22
✎
13:07
|
начни с "R1C1"
|
|||
11
uno-group
24.06.22
✎
13:09
|
текст в ячейке хоть есть
|
|||
12
uno-group
24.06.22
✎
13:11
|
А точно тебе надо с областями работать может проще по условию Выводить "Строка" или "СтрокаРаскрашенная" это обычно быстрее работает чем через область красить
|
|||
13
exec11
24.06.22
✎
13:21
|
Вот что получилось :
ВыбОбласть = Таб.Область("R1C2"); ВыбОбласть.ЦветТекста(100,100,150); В заголовке, текст покрасился. ВыбОбласть = Таб.Область("R5C2"); Первая строка покрасилась. ВыбОбласть = Таб.Область("R6C2") Вторая строка покрасилась. ВыбОбласть = Таб.Область("R7C2") Третья строка стала пустой. ВыбОбласть = Таб.Область("R8C2") Третья и четвертая строка стала пустой. ВыбОбласть = Таб.Область("R8C2") Третья, четвертая и пятая строка стала пустой. |
|||
14
exec11
24.06.22
✎
13:23
|
На месте пустоты происходит как бы раздвигание строк.
|
|||
15
Fedor-1971
24.06.22
✎
13:32
|
(13) Ты вывел в табДок 8 строк?
пробуй указать ячейку так: таб.Область(<R1>,<C1>) Крась фон через ЦветФона Похоже на то, что ещё раз выводишь область |
|||
16
exec11
24.06.22
✎
13:43
|
пн_стр = пн_стр + 1;
Таб.ВывестиСекцию("Строка"); //ВыбОбласть = Таб.Область("R7C4"); ВыбОбласть = Таб.Область("R7","C4"); ВыбОбласть.ЦветТекста(100,100,150); ВыбОбласть.ЦветФона(50,150,50); Сообщить("== "+Строка(пн_гр)+" "+Строка(пн_стр)); == 1 1 == 1 2 == 1 3 == 1 4 == 1 5 == 1 6 == 1 7 == 1 8 == 1 9 == 1 10 == 1 11 ... Да, пустая строка окрашивается в зеленый на всю длину по горинзонтали в бесконечность. |
|||
17
exec11
24.06.22
✎
13:47
|
Но почему вся строка, а не ячейка ?
|
|||
18
Fedor-1971
24.06.22
✎
13:52
|
Таб.Область(пн_гр,4,пн_гр,4); - границы ячейки - цифры
Возможно, есть косячок в платформе при определении ячейки |
|||
19
exec11
24.06.22
✎
14:02
|
Выделенная строка меняется на ячеку так :
ВыбОбласть = Таб.Область("R7C3"); Промаркеровал весь макет отчета. Поставил "сообщить" во всех строках, которые могут хоть что то выводить. Пустая строка попадает в отчет. Маркеры никакие именно в строке не выскакивают. Чудеса. |
|||
20
exec11
24.06.22
✎
14:03
|
Кто эту строку может выводить ???
|
|||
21
exec11
24.06.22
✎
14:10
|
Отладчик, скорее всего тоже наверное не покажет, в какой момент это строка появляется ??
|
|||
22
Fedor-1971
24.06.22
✎
14:17
|
(21) Если только смотреть на ВысотаТаблицы()
|
|||
23
trad
24.06.22
✎
14:19
|
Если Таб.Область() обращается к области за пределами ВысотаТаблицы() / ШиринаТаблицы(), то таблица автоматически увеличивает высоту/ширину до указанных в Таб.Область()
|
|||
24
trad
24.06.22
✎
14:20
|
+(23) а ВывестиСекцию() всегда выводит за текущей высотой/шириной
|
|||
25
exec11
24.06.22
✎
14:51
|
Вообщем проблема как всегда была во мне.
Я вывожу шестую строку и ("R6C2") - подкрашиваю. Она подкрашивается. Далее я вывожу снова шестую строку, а подкрасить пытаюсь седьмую, которой еще нету. ("R7C2") И мне 1с эту строку дорисовывает. Если вывести шестую строку а подкрасить ("R8C2") то 1с-ка нарисует не одну пустую строку, а две. Ну и остальные строки отчета, пойдут за пустыми строками. Во как оказалось. Всем спасибо за наВОДКУ ! ;) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |