![]() |
|
v7: Оформление таблицы в документе | ☑ | ||
---|---|---|---|---|
0
Sima42
05.05.14
✎
12:18
|
Столкнулся с проблемой. Надо в таблице документа ячейку или колонку закрасить каким нибудь цветом. Это реально?
|
|||
1
Чайник Рассела
05.05.14
✎
12:19
|
да
|
|||
2
Sima42
05.05.14
✎
12:19
|
Как?!)
|
|||
3
ДенисЧ
05.05.14
✎
12:20
|
formex
|
|||
4
Sima42
05.05.14
✎
12:24
|
Спасибо! Будем изучать))
|
|||
5
Sima42
05.05.14
✎
15:34
|
Ну вот написал подключил но нет никакой реакции даже ошибок не выскакивает.
Процедура ПриОткрытии() Путь = "C:\\FormEx.dll"; Если ЗагрузитьВнешнююКомпоненту(Путь) = 0 Тогда Сообщить("Неудачная попытка загрузить FormEx.dll"); СтатусВозврата(0); Возврат; КонецЕсли; Сервис = СоздатьОбъект("Сервис"); Сервис.ВключитьРаскраскуТаблиц(); КонецПроцедуры Функция ПолучитьЦвет(Красный = 0,Зеленый = 0,Синий = 0) // функция для формирования значения цвета из составляющих (RGB) Возврат Макс(0,Синий)*65536+Макс(0,Зеленый)*256+Макс(0,Красный); КонецФункции Функция ПроверитьВид() Если (Число(ТабНом)<>0) Тогда Возврат "BRUSH["+ПолучитьЦвет(100,255,100)+"]";//Зеленый КонецЕсли; Возврат ""; КонецФункции |
|||
6
ДенисЧ
05.05.14
✎
15:34
|
А колонку в ТЧ добавил с вызовом функции?
Или план раскраски, например? |
|||
7
Mikeware
05.05.14
✎
15:35
|
(6) а зачем? он же "формекс подключил". вот формекс и должен думать, какую колонку и как раскрашивать
|
|||
8
Sima42
05.05.14
✎
15:36
|
Да у меня первая колонка которая нумерует она вызывает функцию ПроверитьВид()
|
|||
9
Sima42
05.05.14
✎
15:40
|
Или мне надо дополнительную колонку сделать что бы она в себе хранила план раскраски?
|
|||
10
Mikeware
05.05.14
✎
15:45
|
(9) инструкцию читать нонче непопулярно?
|
|||
11
Ёпрст
гуру
05.05.14
✎
15:46
|
Используй лучше план расскраски.
+ в ПриОткрытии грузи вк, только если она еще не загружена ранее, а не всегда. План раскраски План раскраски Описание Для ускорения и упрощения работы раскраски таблиц в компоненту с версии 2.0.5.85 введен функционал плана раскраски таблицы. Для его активизации необходимо вызвать метод ИспользоватьПланРаскраски() объекта Сервис с параметром 1 (соответсвенно, для отключения и перехода на старый принцип раскраски надо вызвать тот же метод, но с параметром 0). По умолчанию функционал плана раскраски отключен и работает старая методика раскраски. Для реализации раскраски по новому функционалу плана раскраски, необходимо добавить в раскрашиваемую таблицу колонку с заголовком "FormEx_ПланРаскраски" (без кавычек, регистронезависимо). Колонка может располагаться в любом месте таблицы. Содержимое этой колонки задает план раскраски таблицы, основанный на тех же макросах, которые описаны в части "Раскраска таблиц". При этом макросы COUNT и INDENT не обрабатываются. В плане раскраски каждая ячейка текущей строки определяется круглыми скобками. В плане учитываются как видимые, так и невидимые колонки. Макросы раскраски надо помещать в места, соответсвующие смене раскраски. Несколько примеров помогу лучше понять этот принцип. Пример плана раскраски "()()()(BRUSH[255])()()(BRUSH[NONE)" - обозначает, что начиная с четвертой колонки (включительно) цвет фона ячеек устанавливается красным, а с седьмо раскраска фона отключается и все остальные колонки не раскрашиваются; "(BRUSH_S[255])" - обозначается, что вся строка, когда она становится текущей, подсвечивается красным фоном. |
|||
12
Sima42
05.05.14
✎
17:03
|
Блин я уже на психах! Добавил в таблицу реквизит с названием FormEx_ПланРаскраски тип текст. Что дальше? Кучу вариантов перепробовал не получается.
|
|||
13
Sima42
05.05.14
✎
17:04
|
(10) Дак эти инструкции на каждом углу валяются. Была бы прочитал и не парил бы вам мозг.
|
|||
14
Sima42
05.05.14
✎
17:07
|
и кстати выскакивает такое сообщение: Поле агрегатного объекта не обнаружено (ИспользоватьПланРаскраски)
|
|||
15
ikea
05.05.14
✎
17:15
|
У тебя в (5) все есть. Добавляй в ТЧ реквизит типа текст. Заходишь в свойства этого реквизита, ставишь галочку "сделать невидимым", а на закладке "Дополнительно" в поле формула вызываешь свою функцию ПроверитьВид(). И да, важный ньюанс, этот текстовый реквизит должен быть "левее" всех колонок на ТЧ, т.е. быть самым первым слева направо в ТЧ.
|
|||
16
Масянька
05.05.14
✎
17:25
|
Процедура ПриОткрытии()
............... ТабОбщихЦенников.НоваяКолонка("ПроверкаЦены" ,"Строка", , ,"FormEx_ПланРаскраски"); // колонка для раскраски ............... Процедура ПослеОткрытия() ФормаРасш = СоздатьОбъект("РасширениеФормы"); ФормаРасш.РаскрашиватьТаблицу("ТабОбщихЦенников"); ФормаРасш.РаскрашиватьТаблицу("ТабУменЦенников"); ФормаРасш.РаскрашиватьТаблицу("ТабБумЦенников"); мСервис = СоздатьОбъект("Сервис"); мСервис.ВключитьРаскраскуТаблиц(); оПривязки.ПослеОткрытия(); КонецПроцедуры // ПослеОткрытия Функция РаскраситьЦены(гТабВыборка) // красим - по условию Если (гТабВыборка.Цена < гТабВыборка.Себестоимость) или (ПустоеЗначение(гТабВыборка.Цена) = 1) Тогда Возврат "()()()()()()()()()()()()(BRUSH[" + ПолучитьЦвет(255, 255, 153) + "]COUNT[2]"; КонецЕсли; Возврат ""; КонецФункции // РаскраситьЦены Процедура ЗаполнениеСтрокиТаблицы(гТабВыборка, СписокПараметров) гТабВыборка.НоваяСтрока(); ........................ гТабВыборка.ПроверкаЦены = РаскраситьЦены(гТабВыборка); // обработка раскраски ........................ Форма.Обновить(); |
|||
17
Sima42
05.05.14
✎
17:47
|
Скажите а кроме файла FormEx.dll может еще что то надо?
|
|||
18
Масянька
05.05.14
✎
17:50
|
(17) Для раскраски - нет.
|
|||
19
Mikeware
05.05.14
✎
17:54
|
(14)версия формекса какая?
|
|||
20
Sima42
05.05.14
✎
17:55
|
2.05.83
|
|||
21
Mikeware
05.05.14
✎
17:56
|
(15) для использования плана раскраски - положение колонки с планом раскраски никак не влияет
|
|||
22
Mikeware
05.05.14
✎
17:56
|
(20)"Для ускорения и упрощения работы раскраски таблиц в компоненту с версии 2.0.5.85 введен функционал плана раскраски таблицы"
|
|||
23
Масянька
05.05.14
✎
17:57
|
(20) Качни 2.0.5.108
|
|||
24
Масянька
05.05.14
✎
17:58
|
(20) И кстати, код показывай.
|
|||
25
Sima42
05.05.14
✎
17:59
|
Я знаю. Поэтому у меня и каша на одном сайте такой код на другом такой. Кароче завтра опять нырну с головой в это дело потому что сегодня и так целый день промаялся уже видеть не хочу этот ФормЕкс. Всем спасибо!!
|
|||
26
Sima42
05.05.14
✎
18:00
|
(24) Дак он же в посте - 5
|
|||
27
Масянька
05.05.14
✎
18:05
|
(26) Попробуй в ПроверитьВид - Возврат "(BRUSH_S[" + ПолучитьЦвет(255, 255, 153) + "])";
|
|||
28
Sima42
06.05.14
✎
11:11
|
Заработало!!
Но теперь другой вопрос что бы раскрашивать методом "()(BRUSH[255])()" что надо сделать а то у меня все строку заливает. Хотя как я понимаю в этом случае должен 1 и 3 колонку не заливать. Вот код Процедура Раск() FormEx = СоздатьОбъект("Сервис"); FormEx.ВключитьРаскраскуТаблиц(); ТаблОтг.НоваяКолонка("FormEx_ПланРаскраски", "Строка"); ТаблОтг.НоваяКолонка("Док", "Строка"); ТаблОтг.НоваяКолонка("Сум", "Число", 15,2); ТаблОтг.НоваяКолонка("Сум1", "Число", 15,2); ТаблОтг.НоваяКолонка("Сум2", "Число", 15,2); ТаблОтг.НоваяКолонка("Сум3", "Число", 15,2); ТаблОтг.НоваяКолонка("Сум4", "Число", 15,2); ТаблОтг.НоваяКолонка("Сум5", "Число", 15,2); Для н = 1 По 3 Цикл ТаблОтг.НоваяСтрока(); ТаблОтг.FormEx_ПланРаскраски = "()(BRUSH[255])()(BRUSH[255])"; ТаблОтг.Сум = 123; ТаблОтг.Док = "11111"; ТаблОтг.Сум1 = 123; ТаблОтг.Сум2 = 123; ТаблОтг.Сум3 = 123; ТаблОтг.Сум4 = 123; ТаблОтг.Сум5 = 123; КонецЦикла; КонецПроцедуры |
|||
29
Sima42
06.05.14
✎
11:19
|
вреде как мне надо написать после создания сервиса - FormEx.ИспользоватьПланРаскраски(1); Но сразу начинает выскакивать сообщение "Поле агрегатного объекта не обнаружено (ИспользоватьПланРаскраски)"
|
|||
30
Mikeware
06.05.14
✎
11:31
|
(28) цитирую:
"Пример плана раскраски "()()()(BRUSH[255])()()(BRUSH[NONE)" - обозначает, что начиная с четвертой колонки (включительно) цвет фона ячеек устанавливается красным, а с седьмо раскраска фона отключается и все остальные колонки не раскрашиваются; "(BRUSH_S[255])" - обозначается, что вся строка, когда она становится текущей, подсвечивается красным фоном." |
|||
31
Mikeware
06.05.14
✎
11:32
|
(29)"с версии 2.0.5.85 введен функционал плана раскраски таблицы"
|
|||
32
Ёпрст
гуру
06.05.14
✎
11:32
|
(29) обнови формекс, для начала
|
|||
33
Mikeware
06.05.14
✎
11:33
|
(32) переводишь с русского на русский? :-)
|
|||
34
Sima42
06.05.14
✎
11:34
|
Даааааа сам дошел! Тупица забылся новый подсунуть. Все ошибка ушла. Теперь не раскрашивает вообще ничего.
|
|||
35
Mikeware
06.05.14
✎
11:35
|
"Все ошибка ушла. Теперь не раскрашивает вообще ничего"
пять баллов.... |
|||
36
Sima42
06.05.14
✎
11:36
|
(35) Самому смешно!)
|
|||
37
Mikeware
06.05.14
✎
11:38
|
(36) для тебя русский язык - родной?
|
|||
38
Sima42
06.05.14
✎
11:43
|
(37) Да а что?
|
|||
39
Mikeware
06.05.14
✎
11:47
|
(38)цитирую из (11):
"необходимо добавить в раскрашиваемую таблицу колонку с заголовком "FormEx_ПланРаскраски" (без кавычек, регистронезависимо)" вроде, написано по-русски... |
|||
40
Sima42
06.05.14
✎
11:50
|
(39) У меня в коде
ТаблОтг.НоваяКолонка("FormEx_ПланРаскраски", "Строка"); |
|||
41
Mikeware
06.05.14
✎
11:52
|
(40) колонку с ЗАГОЛОВКОМ "FormEx_ПланРаскраски"
|
|||
42
Ёпрст
гуру
06.05.14
✎
11:56
|
||||
43
Ёпрст
гуру
06.05.14
✎
11:56
|
Но лучше, использовать выборочную расскраску таблиц - так меньше тормозов, т.е красить именно то, что нужно.
|
|||
44
Sima42
06.05.14
✎
12:08
|
Все работает действительно надо было указать именно заголовок. Мне почему то казалось что в НоваяКолонка. первое заголовок.
Выкладываю свой код может кому и пригодится в разборе приблуды FormEx. Процедура ПриОткрытии() Путь = "C:\\FormEx.dll"; Если ЗагрузитьВнешнююКомпоненту(Путь) = 0 Тогда Сообщить("Неудачная попытка загрузить FormEx.dll"); СтатусВозврата(0); Возврат; КонецЕсли; КонецПроцедуры Процедура Раск() FormEx = СоздатьОбъект("Сервис"); FormEx.ИспользоватьПланРаскраски(1); FormEx.ВключитьРаскраскуТаблиц(0); ТаблОтг.НоваяКолонка("Цвет","Строка",,,"FormEx_ПланРаскраски"); ТаблОтг.НоваяКолонка("Док", "Строка"); ТаблОтг.НоваяКолонка("Сум", "Число", 15,2); ТаблОтг.НоваяКолонка("Сум1", "Число", 15,2); ТаблОтг.НоваяКолонка("Сум2", "Число", 15,2); ТаблОтг.НоваяКолонка("Сум3", "Число", 15,2); ТаблОтг.НоваяКолонка("Сум4", "Число", 15,2); ТаблОтг.НоваяКолонка("Сум5", "Число", 15,2); Для н = 1 По 3 Цикл ТаблОтг.НоваяСтрока(); ТаблОтг.Цвет = "(BRUSH[255])()(BRUSH[100])(BRUSH[NONE])(BRUSH[NONE])(BRUSH[NONE])(BRUSH[NONE])(BRUSH[NONE])"; ТаблОтг.Сум = 123; ТаблОтг.Док = "11111"; ТаблОтг.Сум1 = 123; ТаблОтг.Сум2 = 123; ТаблОтг.Сум3 = 123; ТаблОтг.Сум4 = 123; ТаблОтг.Сум5 = 123; КонецЦикла; КонецПроцедуры |
|||
45
Ёпрст
гуру
06.05.14
✎
12:08
|
http://gfile.ru/a7rq7
так даже лучшее, для подсветки текущей ячейки, и текущей строки.. + задание цвета в 16-ом формате.. для понимания. |
|||
46
Ёпрст
гуру
06.05.14
✎
12:09
|
(44) формекс - это не приблуда, если что
|
|||
47
Sima42
06.05.14
✎
12:14
|
(42) Эх Епрст вот это бы вчера. Сэкономило бы кучу времени. Но все равно спасибо!
|
|||
48
Sima42
06.05.14
✎
12:15
|
(46) Сейчас я просто злой что столько времени убил. А так да весч!
|
|||
49
Масянька
06.05.14
✎
12:17
|
(47) Кстати, вот так - ()()()()()()()()()()()()(BRUSH[" + ПолучитьЦвет(255, 255, 153) + "]COUNT[2] - раскрашивает 2 предпоследние колонки.
|
|||
50
Масянька
06.05.14
✎
12:17
|
(48) Учись, студент (С) :)
|
|||
51
Mikeware
06.05.14
✎
12:40
|
(47) он вчера процитировал доку, в которой все написано.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |