![]() |
![]() |
![]() |
|
Опять про ЦветФона в табличном документе | ☑ | ||
---|---|---|---|---|
0
nola
19.01.12
✎
08:33
|
Прошу сильно не пинать ногами. Поиск дал много ссылок, в соответствии с ними и действовала.
ИмяТекОбл = ТабДок.ТекущаяОбласть.Имя; Поз = Найти(ИмяТекОбл,"C"); ИмяВсейСтроки=Лев(ИмяТекОбл,Поз-1); ТабДок.Область(ИмяВсейСтроки).ЦветФона = WebЦвета.Бежевый; по отладчику ТабДок.Область(ИмяВсейСтроки) имеет тип ОбластьЯчеекТабличногоДокумента, как нужно. Так же в отладчике вижу, что цвет установился. До приведенного момента используются конструкции ТабДок.Присоединить(Секция, , "Профвзносы", Истина), т.к. я их программно группирую. Выведенный документ все равно остается белым. Что еще я упустила? надо теперь как-то вывести эту раскрашенную строку? Релиз платформы 8,2,13,219. Да, новичок в 8. |
|||
1
nola
19.01.12
✎
09:27
|
ну хорошо, запинайте, только ткните носом сначала...
|
|||
2
Wobland
19.01.12
✎
09:31
|
1. Показать() же после всего этого делается?
2. почему бы при выводе сразу не красить? 3. а где оно? |
|||
3
hhhh
19.01.12
✎
09:38
|
(0) ИМХО лучше не париться, а сразу делать в зависимости от условий
ТабДок.Присоединить(СекцияПрокрашенная, , "Профвзносы", Истина), или ТабДок.Присоединить(СекцияНепрокрашенная, , "Профвзносы", Истина), |
|||
4
nola
19.01.12
✎
09:47
|
(2)
Да, ТабДок.Показать() в самую последнюю очередь. Общая структура кода примерно так: Макет = ПолучитьМакет("Макет1"); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок|ОснОбласть"); ТабДок = Новый ТабличныйДокумент; ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ВыборкаГрупп = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, ,); ВыводКолонок(ТабДок,ВыборкаГрупп,"ШапкаТаблицы"); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Красить=Ложь; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ВыводКОлонок(ТабДок,ВыборкаДетальныеЗаписи,"Детали",Красить); Красить = не Красить; КонецЦикла; ТабДок.Защита = Истина; ТабДок.ТолькоПросмотр = Истина; ТабДок.Показать(); Процедура ВыводКолонок(ТабДок,СТрокаТЗ, область,Красить=Ложь) Секция = макет.ПолучитьОбласть(область+"|ОснОбласть"); Секция.Параметры.Заполнить(СТрокаТЗ); ТабДок.Вывести(Секция,0,,Истина); ТабДок.НачатьГруппуКолонок("Профвзносы"); Для Каждого текСтрока из ТППрофвзносы цикл Секция = Макет.ПолучитьОбласть(область+"|Профвзносы"); Секция.Параметры.ДляПарам = СформироватьПараметрыВТабДок(Область,строкаТЗ,текСтрока); Если область = "Детали" тогда Секция.Параметры.РасшПарам = текСтрока.Колонка1.ссылка; КонецЕсли; ТабДок.Присоединить(Секция, , "Профвзносы", Истина); КонецЦикла; ТабДок.ЗакончитьГруппуКолонок(); Если Красить тогда ИмяТекОбл = ТабДок.ТекущаяОбласть.Имя; Поз = Найти(ИмяТекОбл,"C"); ИмяВсейСтроки=Лев(ИмяТекОбл,Поз-1); ТабДок.Область(ИмяВсейСтроки).ЦветФона = WebЦвета.Бежевый; КонецЕсли; КонецПроцедуры |
|||
5
Wobland
19.01.12
✎
09:48
|
(4) дык у тебе цвет после вывода присваивается
|
|||
6
nola
19.01.12
✎
09:50
|
даже если я помещаю этот кусок до цикла - никакой разницы
|
|||
7
Wobland
19.01.12
✎
09:52
|
Секция.Область().ЦветФона
Присоединить() |
|||
8
Wobland
19.01.12
✎
09:53
|
Область2.Область("R1C7").ЦветФона=?(Выборка.Отдел>0, ЖёлтыйЦвет, БелыйЦвет);
ТабДок.Вывести(Область2); |
|||
9
vmv
19.01.12
✎
09:54
|
(3) прав, зачем думать о свойствах и цетах программно, если в макете можно сделать разные по цвету секции с идентичным набором параметров и уже по условию выводим.
красненькие - ляпотя |
|||
10
Wobland
19.01.12
✎
09:56
|
(9) иногда проще пару лишних строк сделать, чем десяток лишних областей ;)
|
|||
11
nola
19.01.12
✎
09:58
|
(9) ну в семерке такого не было, хотела "пощупать" хотя бы.
|
|||
12
hhhh
19.01.12
✎
09:59
|
(11) попробуй
ТекОбласть = ТабДок.ПолучитьОбласть(ИмяВсейСтроки); ТекОбласть.ЦветФона = WebЦвета.Бежевый; |
|||
13
nola
19.01.12
✎
10:02
|
(7,8) Даже вот так делаю:
ТабДок.НачатьГруппуКолонок("Профвзносы"); Для Каждого текСтрока из ТППрофвзносы цикл Секция = Макет.ПолучитьОбласть(область+"|Профвзносы"); Секция.Параметры.ДляПарам = СформироватьПараметрыВТабДок(Область,строкаТЗ,текСтрока); Если область = "Детали" тогда Секция.Параметры.РасшПарам = текСтрока.Колонка1.ссылка; КонецЕсли; Если Красить тогда ИмяТекОбл = Секция.ТекущаяОбласть.Имя; Поз = Найти(ИмяТекОбл,"C"); ИмяВсейСтроки=Лев(ИмяТекОбл,Поз-1); Секция.Область(ИмяВсейСтроки).ЦветФона = WebЦвета.Бежевый; КонецЕсли; ТабДок.Присоединить(Секция, , "Профвзносы", Истина); КонецЦикла; ТабДок.ЗакончитьГруппуКолонок(); |
|||
14
nola
19.01.12
✎
10:03
|
(12) насколько я понимаю, ПолучитьОбласть() мне вернет ТабличныйДокумент,а не ОбластьЯчеекТабличногоДокумента
|
|||
15
vmv
19.01.12
✎
10:03
|
авторгуппировка строк мож влияет если задана, ну там когда дерево строиться, так ляпнул - а вдруг
|
|||
16
nola
19.01.12
✎
10:03
|
очень жаль, что в документации не встречается пример использования с описанием всех условий.
|
|||
17
Wobland
19.01.12
✎
10:04
|
(14) посмотри на моё "R1C7" - это ж в цикле делается
|
|||
18
vmv
19.01.12
✎
10:06
|
ИмяВсейСтроки и Секция что-то мне навеваю грусть как-то неочевидно что это и что же Присоединяют.
|
|||
19
nola
19.01.12
✎
10:07
|
в цикле присоединяется по одной ячейке. Бог с ним, хоть одна бы прокрасилась, дальше легче.
|
|||
20
Wobland
19.01.12
✎
10:08
|
(19) Секция.Область("R1C1").ЦветФона уже попробовала?
|
|||
21
kosts
19.01.12
✎
10:08
|
У меня вот так работает
|
|||
22
vmv
19.01.12
✎
10:10
|
(19) если ничего не получается, то комментим все чОткие условия, с простите, хрен знаем чем и делаем тупейший цикл с простейшим условием, присоединением и покраской - получилось?
тогда раскоменчиваем осторожно условия и наворачиваем. я так делаю |
|||
23
nola
19.01.12
✎
10:12
|
так, что-то получилось. ща посмотрим
|
|||
24
nola
19.01.12
✎
10:12
|
спасибо всем большое, помогли. Разберусь и отпишусь.
|
|||
25
Wobland
19.01.12
✎
10:12
|
(24) этого мало будет
|
|||
26
kosts
19.01.12
✎
10:14
|
Тут косяк скорее всего -> Секция.ТекущаяОбласть.Имя
|
|||
27
Cube
19.01.12
✎
10:15
|
(0) Вот простой наглядный пример: http://up.optizone.ru/626774
|
|||
28
Cube
19.01.12
✎
10:16
|
+(27) Код:
ЭлементыФормы.Результат.Очистить(); Макет = ПолучитьМакет("Макет"); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); Раскрашивать = Ложь; Для НомерСтроки = 1 По 10 Цикл Если Раскрашивать Тогда ОбластьСтрока.Область("РаскрашиваемаяОбласть").ЦветФона = ЦветаСтиля.СтатусОтклонен; Иначе ОбластьСтрока.Область("РаскрашиваемаяОбласть").ЦветФона = Новый Цвет; КонецЕсли; ОбластьСтрока.Параметры.НомерСтроки = НомерСтроки; ЭлементыФормы.Результат.Вывести(ОбластьСтрока); Раскрашивать = НЕ Раскрашивать; КонецЦикла; |
|||
29
nola
19.01.12
✎
10:17
|
я думаю, что все-таки дело было в том, что раскраска делалась после вывода в документ или присоединения.
Меня сбили с толку высказывания, что раскрасить можно и после вывода. Например, тут v8: v8: Как покрасить область с табличном документе? колодина говорит, что у нее вот так работает: Ячейки = ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень()); //Область = ТабДок.Область(номер_строки+кво_строк,2,номер_строки+кво_строк,7); Область = ТабДок.Область(ячейки.верх,ячейки.лево,ячейки.низ,ячейки.право); если ВыборкаДетали.ЕстьБлокировка = Истина тогда Область.ЦветФона = WebЦвета.Розовый; конецесли; |
|||
30
Cube
19.01.12
✎
10:17
|
+(27) В макете ячейкам, которые должны раскрашиваться, присвоено имя "РаскрашиваемаяОбласть".
|
|||
31
nola
19.01.12
✎
10:18
|
(28) а "РаскрашиваемаяОбласть" - это в макете задано?
|
|||
32
Wobland
19.01.12
✎
10:18
|
и вообще
Тематическая ветка форума подобна нераспустившейся розе, которую нужно осветить солнцем, помочь ей подняться. Только когда вопрос уже решён, девушке можно намекнуть про фотку... И тогда распустившаяся роза будет прекрасна! |
|||
33
nola
19.01.12
✎
10:18
|
))
|
|||
34
kosts
19.01.12
✎
10:18
|
(29) Тут все правильно
|
|||
35
Cube
19.01.12
✎
10:18
|
(31) Смотри (30) :)
|
|||
36
vmv
19.01.12
✎
10:18
|
(27) ыыы, я думал там картинка, качать еще - некрасиво!)
|
|||
37
nola
19.01.12
✎
10:19
|
(32) поззия пропадает без вас!)) вот приведу в желаемый вид и распущусь)) Спасибо, ребята, правда очень помогли!
|
|||
38
Cube
19.01.12
✎
10:20
|
(36) И что ты хотел увидеть на картинке? Скрин, что у меня всё работает?))) А как работает это другой вопрос?)
|
|||
39
nola
19.01.12
✎
10:20
|
(34) т.е. она после этого места еще где-то Вывести() делает?
|
|||
40
Wobland
19.01.12
✎
10:22
|
(39) ага.
|
|||
41
Wobland
19.01.12
✎
10:22
|
(37) обещать вы все горазды ;)
|
|||
42
Cube
19.01.12
✎
10:24
|
Кстати, да! Фотку надобно в профиль вставить... :)
|
|||
43
nola
19.01.12
✎
10:27
|
все понятно, я не обратила внимания на Ячейки = ТабДок.Вывести(...), как раз туда и возвращается ОбластьЯчеекТабличногоДокумента.
|
|||
44
vmv
19.01.12
✎
10:32
|
ок, если все в порядко, то осталось выучить пустячок
http://www.gorodpavlodar.kz/Forums.html&file=viewtopic&t=2642 |
|||
45
nola
19.01.12
✎
11:02
|
обнаружила, что можно сделать просто вот так:
ТабДок.Вывести(Секция,0,,Истина).ЦветФона = WebЦвета.Бежевый; или вот так: ТабДок.Присоединить(Секция, , "Отпуска", Истина).ЦветФона = WebЦвета.Бежевый; |
|||
46
Wobland
19.01.12
✎
11:04
|
(45) и сразу распустилась?
|
|||
47
Cube
19.01.12
✎
11:09
|
(45) В этом случае у тебя закрашивается строка целиком, даже ячейки, которые пустые. В моем примере закрашиваются только те ячейки, которые я хочу закрасить.
|
|||
48
nola
19.01.12
✎
11:30
|
(46) дабы опровергнуть стереотип
(47) да, мне и нужна вся строка, значения не рассматриваю. И раскрашивается она все равно по секциям, хотя хотелось одним оператором сразу всю. |
|||
49
Wobland
19.01.12
✎
11:32
|
ой, какая девушка! держите мои глаза, они слепнут
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |