|
Покрасить фон строки табПоля без события ПриВыводеСтроки | ☑ | ||
---|---|---|---|---|
0
Crush
29.03.13
✎
18:40
|
Как мне установить цвет фона текущей строки??
Процедура ТаблицаВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) //ОткрытьЗначение(ВыбраннаяСтрока[Колонка.Имя]); текОформление = Элемент.ОформлениеСтроки(ВыбраннаяСтрока); ВыборЦвета = новый ДиалогВыбораЦвета; ВыборЦвета.Цвет = текОформление.ЦветФона; Если ВыборЦвета.Выбрать() Тогда текОформление.ЦветФона = ВыборЦвета.Цвет; КонецЕсли; Элемент.ОбновитьСтроки(); СтандартнаяОбработка = Ложь; КонецПроцедуры В текОформление устанавливается цвет фона, а на табличное поле не влияет. В чем косяк? Или как еще можно к оформлению строки добраться? |
|||
1
Crush
29.03.13
✎
18:42
|
Как получить объект ОформленияСтрок не из ПриПолученииДанных?
|
|||
2
Crush
29.03.13
✎
18:47
|
Пока только вижу вариант добавлять колонку со значением цвета и обновлять таблицу, что б сработало событие ПриВыводеСтроки.
А как на лету?? Без создания дополнительных хранилищ? Или как вызвать событие ПриВыводеСтроки передав ему нужный параметр ОформлениеСтроки? |
|||
3
Kreont
29.03.13
✎
18:48
|
ОформленияСтрок - он ведь всегда доступен, через обект "родитель".
|
|||
4
Crush
29.03.13
✎
18:52
|
(3) Да ну? А где он доступен? У меня внешняя обработка с табличным полем на форме. ТипЗначения = ТаблицаЗначений.
|
|||
5
Crush
29.03.13
✎
18:53
|
Или вешать ОформленияСтрок в переменную формы? Щя попробую.
|
|||
6
Crush
29.03.13
✎
18:56
|
Бу га га :)
текОформление = текОформления.Получить(0);//(ВыбраннаяСтрока); ВыборЦвета = новый ДиалогВыбораЦвета; ВыборЦвета.Цвет = текОформление.ЦветФона; Если ВыборЦвета.Выбрать() Тогда текОформление.ЦветФона = ВыборЦвета.Цвет; КонецЕсли; Элемент.ОбновитьСтроки(); СтандартнаяОбработка = Ложь; Возникшая проблема привела к закрытию программы:))) |
|||
7
Crush
29.03.13
✎
18:58
|
О.. Наблюдается стабильность. Рекомендую:
Процедура ТабличкоВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) текОформление = текОформления.Получить(0); ВыборЦвета = новый ДиалогВыбораЦвета; ВыборЦвета.Цвет = текОформление.ЦветФона; Если ВыборЦвета.Выбрать() Тогда текОформление.ЦветФона = ВыборЦвета.Цвет; КонецЕсли; Элемент.ОбновитьСтроки(); СтандартнаяОбработка = Ложь; КонецПроцедуры Процедура ТабличкоПриПолученииДанных(Элемент, ОформленияСтрок) текОформления = ОформленияСтрок; КонецПроцедуры |
|||
8
Crush
29.03.13
✎
18:59
|
Сверху еще определить
Перем текОформление; |
|||
9
Crush
29.03.13
✎
19:00
|
Вылетает даже при попытке в отладчике прочитать содержимое текОформление
|
|||
10
Crush
29.03.13
✎
19:02
|
А вот количество индексов даёт посмотреть
текОформления.Количество() 56 207 Число Но от куда столько? У меня 22 строки и 4 колонки. |
|||
11
Kreont
29.03.13
✎
19:07
|
Процедура ТабличкоВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Фон = Элемент.ЦветФона; |
|||
12
Crush
29.03.13
✎
19:11
|
Неа. Так не работает. Во первых это ФонВсегоТабличко, а во вторых сама таблица не хочет краситься:(
|
|||
13
Reset
29.03.13
✎
19:12
|
Цитата из СП:
Возвращаемый объект оформления строки является самостоятельным объектом и не связан с содержимым табличного поля. Поэтому при его редактировании изменения в табличном поле не отображаются. Для того, чтобы изменения данного объекта отображались в табличном поле необходимо пользоваться обработчиками событий ПриВыводеСтроки или ПриПолученииДанных. Не добавить, не прибавить. |
|||
14
Reset
29.03.13
✎
19:13
|
цитата из описания метода ОформлениеСтроки()
|
|||
15
Crush
29.03.13
✎
19:15
|
Уже раз пять прочитал это в СП в надежде, что текст изменится и появится какая то возможность менять цвет без событий ПриВыводеСтроки или ПриПолученииДанных. Надежда умирает последней:)
|
|||
16
Kreont
29.03.13
✎
19:17
|
неверю сп что никак, ща потестирую :)
|
|||
17
Crush
29.03.13
✎
19:27
|
Я пока добавил в таблицу временную колонку. С ней получается нужный результат. Но в голове не помещается почему нельзя инициализировать ВыводСтроки задав параметры оформления.
|
|||
18
Kreont
29.03.13
✎
19:33
|
(17) Ну да тут надо себе держать где то в переменной что надо разрисовать. Типа таблицу номерСтроки + параметры оформления, и по них уже заполнять в "ПриВыводеСтроки или ПриПолученииДанных".
|
|||
19
Reset
29.03.13
✎
19:36
|
(17) вот этот набор слов не понятен разуму моему "инициализировать ВыводСтроки задав параметры оформления"
|
|||
20
Reset
29.03.13
✎
19:38
|
Как будет выглядеть строка, можно задать ТОЛЬКО:
а) в свойствах ТП, для всех строк. б) в событиях ПриВыводеСтроки, ПриПолученииДанных - конкретно перем отображением. |
|||
21
Kreont
29.03.13
✎
19:39
|
(19) убедил, без использования "ПриВыводеСтроки или ПриПолученииДанных" никак :))
Ну типа так: Перем СтрокаНомерСЦветом; Процедура ТабличнаяЧастьВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) СтрокаНомерСЦветом = ВыбраннаяСтрока.НомерСтроки; КонецПроцедуры Процедура ТабличнаяЧастьПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ДанныеСтроки.НомерСтроки = СтрокаНомерСЦветом Тогда ОформлениеСтроки.ЦветФона = Новый Цвет(40,0,60); КонецЕсли; КонецПроцедуры ,только ТС- надо будет запоминать не одну строку а массив, я так понял, ну и наверное запретить для ТЧ сортировки, отборы и т.п. что б попроще. |
|||
22
Crush
29.03.13
✎
19:41
|
Да я вот тоже уже соглашаюсь, что никак.
С пятницей всех!:) |
|||
23
Magic Dick
29.03.13
✎
19:42
|
условное оформление
|
|||
24
Reset
29.03.13
✎
19:43
|
(23) не читатель
(22) Спасибо, и тебя тем же :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |