|
|
|
v8: Изменение цвета конкретной ячейки | ☑ | ||
|---|---|---|---|---|
|
0
SuperLiving Star
27.10.09
✎
13:06
|
можно ли задать цвет для конкретной ячейки, не для столбца, не для встроки?
| ЭлементыФормы.ОтработанноеВремя.ТекущаяКолонка.ЦветТекстаПоля = Новый Цвет(255, 0, 0); | это задание цвета для столбца... |
|||
|
1
SuperLiving Star
27.10.09
✎
13:08
|
ЭлементыФормы.ОтработанноеВремя.ТекущаяСтрока[ЭлементыФормы.ОтработанноеВремя.ТекущаяКолонка.Имя].ЦветТекстаПоля = Новый Цвет(255, 150, 0);
| хотелось бы вот так задать цвет для ячейки, но выдает ошибку... | {Форма.Форма(1815)}: Значение не является значением объектного типа (ЦветТекстаПоля) ЭлементыФормы.ОтработанноеВремя.ТекущаяСтрока[ЭлементыФормы.ОтработанноеВремя.ТекущаяКолонка.Имя].ЦветТекстаПоля = Новый Цвет(255, 150, 0); |
|||
|
2
zbv
27.10.09
✎
13:10
|
(1) используй события ПриВыводеСтроки или ПриПолученииДанных
|
|||
|
3
SuperLiving Star
27.10.09
✎
13:10
|
(2) так я через документ в дереве значений обработки меняю значения и надо изменить цвет изменившегося значения...
|
|||
|
4
SuperLiving Star
27.10.09
✎
13:11
|
(2) может при получении данных использовать обработчик?
может он позволит перехватить изменение цвета ячейки? |
|||
|
5
SuperLiving Star
27.10.09
✎
13:14
|
(2) чтот не знаю что это такое ПриПолученииДанных, ПриВыводеСтроки не подойдет, строки уже выведены...
|
|||
|
6
SuperLiving Star
27.10.09
✎
13:22
|
блян!!! никак не выходит ((((
|
|||
|
7
ptiz
27.10.09
✎
13:25
|
(5) Это обработчики таб.поля.
|
|||
|
8
Defender aka LINN
27.10.09
✎
13:33
|
(5) Тебя кто-то просил строить теории? Делай, как (2) сказал и не выеживайся :)
|
|||
|
9
SuperLiving Star
27.10.09
✎
13:46
|
(2) ну как как в 2 то?
я говорю я изменяю данные заполненного ДереваЗначений через документ, строки уже в нем введены !!!! |
|||
|
10
SuperLiving Star
27.10.09
✎
13:47
|
(8) ПриПолученииДанных, - от куда этого брать???
|
|||
|
11
SuperLiving Star
27.10.09
✎
13:49
|
извините господа, туплю!!! Кажется Через ПриВыводеСтроки заводится....
|
|||
|
12
SuperLiving Star
27.10.09
✎
14:01
|
нифига не выходжить ((((
| Если Ахтунг = 1 Тогда Элемент.ЦветФона = Новый Цвет(255,0,0); Ахтунг = 0; КонецЕсли; КонецПроцедуры | вот так при выводе строки задаю.... |
|||
|
13
EasyRider
27.10.09
✎
14:04
|
Попробуй задать имя области для строки и для столбца и обратиться к ячейке путем ПолучитьОбласть("ИмяСтроки|ИмяСтолбца")
|
|||
|
14
SuperLiving Star
27.10.09
✎
14:10
|
(13) это как так извратиться ((((
|
|||
|
15
EasyRider
27.10.09
✎
14:15
|
(14)Пардон,неправильно вопрос прочитал.Это я для цвета ячейки табличного документа написал.
|
|||
|
16
hhhh
27.10.09
✎
14:17
|
(12) ну посмотри ПриВыводеСтроки в типовой. Откуда у тебя Элемент какой-то взялся?
|
|||
|
17
SuperLiving Star
27.10.09
✎
14:20
|
(16) Процедура ОтработанноеВремяПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
|
|||
|
18
SuperLiving Star
27.10.09
✎
14:22
|
(16) Беру Элемент, пытаюсь изменить его свойства цвета, либо что то меняется лобо не меняется вообще, ОформлениеСтроки меняет все данные (((( Я сделал глобальную переменную и в зависимости от её значения, меняю цвет, то есть если значение меняется через документ, но он нифига не задает цвет ((((
|
|||
|
19
SuperLiving Star
27.10.09
✎
14:23
|
(16) где что в типовой? можно пример???
|
|||
|
20
Defender aka LINN
27.10.09
✎
14:23
|
(18) Зови программиста.
|
|||
|
21
73
27.10.09
✎
14:26
|
(19) Для начала почитай:
Книга знаний: v8: Дополнительная вычисляемая или текстовая колонка в списке |
|||
|
22
SuperLiving Star
27.10.09
✎
14:27
|
как то так может ОформлениеСтроки.Ячейки["Дата"+ы].ЦветФона = Новый Цвет(255,255,0); // желтый
|
|||
|
23
SuperLiving Star
27.10.09
✎
14:28
|
но как получать что в [] ?
|
|||
|
24
SuperLiving Star
27.10.09
✎
14:29
|
(21) да дело!!!
но как брать имя колонки ПриВводеСтроки() ? от куда???? |
|||
|
25
73
27.10.09
✎
14:29
|
(23) А ДанныеСтроки там ведь не для мебели...
|
|||
|
26
SuperLiving Star
27.10.09
✎
14:32
|
опа!!! вот как Элемент.ТекущаяКолонка.Данные
|
|||
|
27
SuperLiving Star
27.10.09
✎
14:33
|
(25) ну и что ДынныеСтроки? А какая текущая то, вернее как называется поле которое бодлежало изменению....
|
|||
|
28
SuperLiving Star
27.10.09
✎
14:37
|
Если Ахтунг = 1 Тогда
//ОформлениеСтроки.Ячейки ОформлениеСтроки.Ячейки[Элемент.ТекущаяКолонка.Данные].ЦветФона = Новый Цвет(255,0,0); Ахтунг = 0; КонецЕсли; | вот это выделило самую верхнюю... |
|||
|
29
SuperLiving Star
27.10.09
✎
14:37
|
(((( а мне то нужно на которой я стою !!! (
|
|||
|
30
SuperLiving Star
27.10.09
✎
14:40
|
вот так вот (
|
|||
|
31
SuperLiving Star
27.10.09
✎
14:43
|
(25) подскажите как могут помочь данные строки?
|
|||
|
32
hhhh
27.10.09
✎
14:43
|
(30) ну Ахтунг зачем завел? Точно вчера пил? Ты же меняешь цвет в первой строке, а остальным строкам делаешь гитлер капут.
|
|||
|
33
manyak
27.10.09
✎
14:45
|
МойСтолбец - вобьешь имя нужной колонки |
|||
|
34
hhhh
27.10.09
✎
14:45
|
(32) тогда уж делай Ахтунг = Истина; Ахтунг = Ложь; что там у тебя за дурацкие цифры?
|
|||
|
35
SuperLiving Star
27.10.09
✎
14:46
|
(32) да нет я не пил, мне нельзя больше!!!
а если убрать Ахтунг, то при открытии все строги перефигачит ((( у меня так было.... ( |
|||
|
36
SuperLiving Star
27.10.09
✎
14:48
|
тама при выборе полей договоров в начале заполняется все, а это фукционас смены значений в отдельных ячейках, что проканает так? (33)(34)
|
|||
|
37
73
27.10.09
✎
14:48
|
(29) <(((( а мне то нужно на которой я стою !!! (>
И что, щелкать мышей запрещено? Судя по (27) где-то надо запоминать, что подлежало изменению. ПриВыводеСтроки() решает (0), но судя по (35) и (36) автору нужно совсем другое... |
|||
|
38
SuperLiving Star
27.10.09
✎
14:50
|
(37) пока что бы хоть заливала определенную ячейкук, а то счас при открытии залила первый столбец, я же убрал ахтунг, потом заливает столбец весь где ячейка в которой я меняю
|
|||
|
39
SuperLiving Star
27.10.09
✎
14:51
|
он короче заливает весь столбец, не видит что нужно только одну ячейку, по строке не пересекается что ли, как ему дать понять то что ещё по строке нужно обрезать?
|
|||
|
40
manyak
27.10.09
✎
14:54
|
обьясни по порядку что ты хочешь сделать?: открыл форму дока, на нем сразу вывелась табличка (табличное поле), исходя из опр. условий - ты можешь в "ПриВыводеСтроки()" менять заливку нужной тебе ячеки
|
|||
|
41
73
27.10.09
✎
14:55
|
(39) Даже если определить, то она же выделена цветом выделения.
ЗЫ. Меняй алгоритм. ЗЗЫ. Тебе отметить надо по всей ТЧ, что менялось, что-ли? |
|||
|
42
SuperLiving Star
27.10.09
✎
14:58
|
(40) открываю обработку, меняю значения полей договоров
заливается ДеревоЗначений данными, затем нужно при выборе какой либо ячейки нажимать на кнопку, открывается документ, в него переносятся данные, суть в том что при изменении числовых данных они менялись и в поле ДереваЗначений, и менялся цвет.... сейчас данные меняются а цвет никак не могу задать, даже при использовании ПриВыводеСтроки() |
|||
|
43
SuperLiving Star
27.10.09
✎
14:59
|
(+42) то при открытии заливается цветом первый столбец, то потом при указании нужного и изменении данных через документ, снова заливается весь столбец где в ячейке менялись данные???
|
|||
|
44
SuperLiving Star
27.10.09
✎
15:01
|
(41) при открытии не нужно ничего заливать, а нужно при изменении значения и только в определенной ячейке...
|
|||
|
45
73
27.10.09
✎
15:02
|
А как узнать, что данные менялись?
Может, все-таки, с предыдущими сравнивать? Или ты думаешь, что перейдя к другой ячейке, где-то само запомнится, что ты чт-то менял? |
|||
|
46
SuperLiving Star
27.10.09
✎
15:05
|
(45)да пока говорю хотябы что бы в этой цветом залилось...
|
|||
|
47
SuperLiving Star
27.10.09
✎
15:05
|
а потом уже буду думать дальше, пока эту то не заливает ((
|
|||
|
48
manyak
27.10.09
✎
15:08
|
по нажатию кнопки запоминаешь строку на которой стоял:
ТЧ- !!!это источник данных (ТЧ дока) ТП - табличное поле (табличка) |
|||
|
49
Axel2009
27.10.09
✎
15:11
|
(0) а Вы думаете, что обработчик при выводе строки отрабатывает только один раз? =)))))
|
|||
|
50
Michael99
27.10.09
✎
15:13
|
для раскраски чего либо в ТП надо иметь критерий в ТЧ , пока ты не определишься с формальным критерием - чем эта конкретная ячейка (строка) отличается от других дело не двинется.
|
|||
|
51
73
27.10.09
✎
15:13
|
(47) В данном случае надо как раз подумать дальше...
|
|||
|
52
SuperLiving Star
27.10.09
✎
15:16
|
я не понимаю почему я не могу залить одну ячейку?
|
|||
|
53
SuperLiving Star
27.10.09
✎
15:17
|
ну или надо завести где хранить цвет столбца, одна залита другие белые...
|
|||
|
54
Композитор
27.10.09
✎
15:24
|
(52) Истина в 50.
Глянь, может, поможет... Процедура ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если (Элемент.Имя = "ТПИгровоеПолеМое") ИЛИ (Элемент.Имя = "ТПИгровоеПолеЧужое") Тогда Для Каждого Ячейка из ОформлениеСтроки.Ячейки Цикл Если НЕ Ячейка.Имя = "НомерСтроки" Тогда Ячейка.ОтображатьТекст = Ложь; Ячейка.ОтображатьФлажок = Ложь; Ячейка.ОтображатьКартинку = Истина; Ячейка.ИндексКартинки = Ячейка.Значение; КонецЕсли; КонецЦикла; ИначеЕсли Элемент.Имя = "ТабличноеПоле1" Тогда ОбычныйЦветФона = Новый Цвет(255,255,255); ВыделенныйЦветФона = Новый Цвет(0, 204,255); Если ДанныеСтроки.Количество = ДанныеСтроки.Из Тогда ОформлениеСтроки.Ячейки[1].ЦветФона = ВыделенныйЦветФона; ОформлениеСтроки.Ячейки[2].ЦветФона = ВыделенныйЦветФона; Иначе ОформлениеСтроки.Ячейки[1].ЦветФона = ОбычныйЦветФона; ОформлениеСтроки.Ячейки[2].ЦветФона = ОбычныйЦветФона; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
|
55
manyak
27.10.09
✎
15:27
|
по нажатию кнопки запоминаешь строку на которой стоял:
окрасит весь столбец:
Окрасит нужную ячеку в нужной ячейке:
|
|||
|
56
manyak
27.10.09
✎
15:27
|
тек_индекс
|
|||
|
57
manyak
27.10.09
✎
15:45
|
по нажатию кнопки запоминаешь строку на которой стоял:
|
|||
|
58
hhhh
27.10.09
✎
18:16
|
так надо еще прошлые текущие обратно перекрасить
|
|||
|
59
SuperLiving Star
28.10.09
✎
06:40
|
(50)(54)(55) Пробую !
|
|||
|
60
SuperLiving Star
28.10.09
✎
06:46
|
(50) ещё дело в том что у меня ДеревоЗначений...
|
|||
|
61
Rie
28.10.09
✎
06:56
|
(60) "И на четвёртый день Соколиный Глаз заметил, что в сарае не хватает одной стены..."
Ну а что это меняет? |
|||
|
62
SuperLiving Star
28.10.09
✎
07:08
|
Элемент.ТекущаяКолонка.Данные -вот идекс колонки
ЭлементыФормы.ОтработанноеВремя.ТекущаяСтрока[Элемент.ТекущаяКолонка.Данные] - вот значение колонки, это все я получаю в ОтработанноеВремяПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) и ОтработанноеВремя это ДеревоЗначений в упор не пойму как задавать цвет разным строкам, у него нет реквизита НомерСтроки... |
|||
|
63
Rie
28.10.09
✎
07:13
|
(62) У тебя есть ДанныеСтроки и ОформлениеСтроки (если речь идёт о ПриВыводеСтроки). Чего тебе не хватает для задания цвета?
|
|||
|
64
SuperLiving Star
28.10.09
✎
07:14
|
(54) все это тоже заливает весь столбец(((
|
|||
|
65
SuperLiving Star
28.10.09
✎
07:18
|
1. нужно отследить что действие происходит именно при изменении одной ячейки, а не при заполнении всего дерева значениями...
2. получить строку и столбец, и проверяя что это именно этта строка в пересечении именно с этим столбцом, залить ячейку... |
|||
|
66
SuperLiving Star
28.10.09
✎
07:20
|
получается заливать один столбец, нужно как то определить, как делать остальные строки белыми....
|
|||
|
67
SuperLiving Star
28.10.09
✎
07:28
|
(55) у меня дерево значений на форме обработки, а не табличная часть и табличное поле, там к сожелению нет видимо таких свойств вообще...
|
|||
|
68
SuperLiving Star
28.10.09
✎
07:43
|
(57) весь косяк в том, что у моих ДанныеСтроки, нет номера строки (((((
|
|||
|
69
vmv
28.10.09
✎
08:58
|
я тоже раньше думал, что отредактированное значение было неплохо выделять цветом, но как оказалось напргать цветовой кашей пользователя не рационально)
Лучше использовать шрифты и выделять отредактированное значение подчеркиванием шрифта - это логично и эргономично) |
|||
|
70
SuperLiving Star
28.10.09
✎
09:02
|
(69) да я бы хоть как бы сделал, хоть выделенным текстом, хоть подчеркиванием, хоть курсивом....
|
|||
|
71
vmv
28.10.09
✎
09:02
|
что касается отлова и сохранения факта редактирования в дереве, то я поступил ...не рационально, но надежно - продублировал и скрыл числовые колонки, в которых сохряняю предыдущие значения.
Тогда при открытии сохраннего дерева(неважно где), видны отредактированные значения предущих сеансов) |
|||
|
72
SuperLiving Star
28.10.09
✎
09:05
|
(71) в моём случае, думаю при подчеркивании или делании шрифта жирным он поменяется во всей колонке как и с цветом ((( к стати в моем дереве то же есть продублированные числовые колонки, видимо его разработчик учитывал этот вариант...
|
|||
|
73
SuperLiving Star
28.10.09
✎
09:06
|
только всей парадигмы пока что не пойму (((
|
|||
|
74
SuperLiving Star
28.10.09
✎
09:07
|
тока они содержат другие идентификаторы ((( может ещё для чего нужны...
|
|||
|
75
SuperLiving Star
28.10.09
✎
09:15
|
(71) а выделение текста или цвета ячеек отдельных в дереве делали?
|
|||
|
76
vmv
28.10.09
✎
09:28
|
// Вставляется в обработчики ПриВыводеСтроки для деревьев "связанных" с табличной частью.
Процедура ДеревоТабличнойЧастиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки, мСуффиксыЧК) Экспорт Ячейки = ОформлениеСтроки.Ячейки; Для Инд = 0 По мСуффиксыЧК.ВГраница() Цикл УстановитьШрифтыОтредактированныхЯчеек(Ячейки, Суффикс, ДанныеСтроки); КонецЦикла; КонецПроцедуры Процедура УстановитьШрифтыОтредактированныхЯчеек(Ячейки, Суффикс, ДанныеСтроки) // Суффикс для имени числовой колонки может принимать значения // из фиксированного массива {"Мин", "1", "2", "3", "Макс"} или любой другой логический набор. // Значение - это уже отредактированное перед заходом на обработчик "ПриВыводеСтроки" // ИзмененоНа - предыдущее значение этого же реквизита Значение = ОбщегоНазначения.ПреобразоватьВЧисло(ДанныеСтроки["Величина" + Суффикс]); ИзмененоНа = ОбщегоНазначения.ПреобразоватьВЧисло(ДанныеСтроки["ВеличинаИзменено" + Суффикс]); Если ИзмененоНа <> 0 Тогда Детализации.УстановитьШрифтЯчейкиПриИзмененииЧисловогоЗначения(Ячейки["Величина" + Суффикс], Значение, ИзмененоНа); КонецЕсли; КонецПроцедуры Процедура УстановитьШрифтЯчейкиПриИзмененииЧисловогоЗначения(Ячейка, Значение, ИзмененоНа) Экспорт Перем Жирный, Подчеркивание; Если ИзмененоНа = 0 Тогда Возврат; КонецЕсли; Если ИзмененоНа < 0 Тогда Жирный = Истина; КонецЕсли; Если ИзмененоНа <> 0 Тогда Подчеркивание = Истина; КонецЕсли; Ячейка.Шрифт = Новый Шрифт(Ячейка.Шрифт,,, Жирный,,Подчеркивание); КонецПроцедуры Этого достаточно для решения вашей проблемы, а задачу сохранения изменного значения в колонку дубль - решите сами. И не важно где вы меняеете ревкизит в табличной части части документа или ее проекции в дерево, как говорил один лидер:"Это реально сделать") осталось чуть-чуть подумать самому) |
|||
|
77
SuperLiving Star
28.10.09
✎
09:32
|
(76) Ок! Большое спасибо!!! Посмотрю...
|
|||
|
78
vmv
28.10.09
✎
09:36
|
ИзмененоНа, ес-но, дельта, проще сохранять ее, а не предыдущее значение)
|
|||
|
79
vmv
28.10.09
✎
09:39
|
последня пр-ра должна быть такой
Процедура УстановитьШрифтЯчейкиПриИзмененииЧисловогоЗначения(Ячейка, Значение, ИзмененоНа) Экспорт Перем Жирный, Подчеркивание; Если ИзмененоНа = 0 Тогда Возврат; КонецЕсли; Жирный = Ячейка.Шрифт.Жирный; Подчеркивание = Ячейка.Шрифт.Подчеркивание; Если ИзмененоНа < 0 Тогда Жирный = Истина; КонецЕсли; Если ИзмененоНа <> 0 Тогда Подчеркивание = Истина; КонецЕсли; Ячейка.Шрифт = Новый Шрифт(Ячейка.Шрифт,,, Жирный,,Подчеркивание); КонецПроцедуры "Неопределено" не катит в параметрах. все |
|||
|
80
SuperLiving Star
28.10.09
✎
09:46
|
(79) Сенкс !!!
|
|||
|
81
Композитор
28.10.09
✎
09:59
|
(64) у меня не заливает весь столбец. Заливает именно одну ячейку в нужной строке.
|
|||
|
82
SuperLiving Star
28.10.09
✎
10:52
|
(81) ИначеЕсли Элемент.Имя = "ТабличноеПоле1" Тогда
ОбычныйЦветФона = Новый Цвет(255,255,255); ВыделенныйЦветФона = Новый Цвет(0, 204,255); Если ДанныеСтроки.Количество = ДанныеСтроки.Из Тогда ОформлениеСтроки.Ячейки[1].ЦветФона = ВыделенныйЦветФона; ОформлениеСтроки.Ячейки[2].ЦветФона = ВыделенныйЦветФона; Иначе ОформлениеСтроки.Ячейки[1].ЦветФона = ОбычныйЦветФона; ОформлениеСтроки.Ячейки[2].ЦветФона = ОбычныйЦветФона; КонецЕсли; вот этот блок у вас это делает??? просто у меня, не таблица, а дерево !( |
|||
|
83
SuperLiving Star
30.10.09
✎
08:55
|
вот этой процедурой я перемещаю числовое значение в ячейку таблицы значений дерева значений, как значение в этой ячейке выделить жирным шрифтом, если цветом не получается???
| // №1.1 Процедура обработки нажатия на пункте подменю, вызывающая корректировку соответствующей ячейки ДереваЗначений Процедура КнопкаСформироватьНажатие(Элемент) ИскомыйДокумент = Документы.КорректировкаТабеля.НайтиПоНомеру(Элемент.Имя, Дата(Элемент.Текст)); Если НЕ ИскомыйДокумент.Пустая() Тогда // поиск поста в котором следует произвести поиск сотрудника ОтработанноеВремя.Строки.Найти(ИскомыйДокумент.ОтработанноеВремя[0].ОбъектОхраны,"ПостСотрудник"); // поиск сотрудника в найденном посту, и получение значения типа "СтрокаДереваЗначений" ТекСтрока = ОтработанноеВремя.Строки.Найти(ИскомыйДокумент.ОтработанноеВремя[0].ФизЛицо,"ПостСотрудник",Истина); ТекСтрока["Дата"+ИскомыйДокумент.ОтработанноеВремя[0].Число] = ИскомыйДокумент.ОтработанноеВремя[0].ОтработанноеВремя; // взята из процедуры ОтработанноеВремяПоДатеПриИзменении(Элемент), обновляет итоговые значения строки по сотруднику ЗарегистрироватьИзмененияПоДню(); КонецЕсли; КонецПроцедуры // ------------------------------------------------------------------------------------------------------------- |
|||
|
84
SuperLiving Star
30.10.09
✎
09:08
|
(79) Сейчас скопировал вашу разработку из (76), пробую разобраться, пока что туговато, вы на связи???
|
|||
|
85
SuperLiving Star
30.10.09
✎
09:16
|
НАПРИМЕР, что все же такое переменная мСуффиксыЧК (в первой процедуре) и объект Детализации (во второй процедуре) ?
|
|||
|
86
SuperLiving Star
30.10.09
✎
10:53
|
(vmv) я хотел бы у вас проконсультироваться...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |