|
Как раскрасить текст (или ячейку )таблицы значений в тонком клиенте. | ☑ | ||
---|---|---|---|---|
0
Vykisan
06.08.14
✎
13:17
|
Добрый день, мне дали задание раскрасить текст в ячейке или саму ячейку .
Если День(Новаястрока.дата) <=10 тогда НоваяСтрока.Текст = "Красный"; ИначеЕсли День(Новаястрока.Дата) >=11 тогда НоваяСтрока.Текст = "Жёльтый"; ИначеЕсли День(Новаястрока.Дата) >=21 тогда НоваяСтрока.Текст = "Зеленый"; Подскажите пожалуйста каким способом лучше выполнить эту задачу . |
|||
1
ДенисЧ
06.08.14
✎
13:23
|
Для этого существует условное оформление
|
|||
2
Vykisan
06.08.14
✎
13:44
|
(1) можно ли для новичка чуть подробнее. ткните носом куда рыть
|
|||
3
Fish
06.08.14
✎
13:54
|
(2) В СП, например.
|
|||
4
ДенисЧ
06.08.14
✎
13:55
|
(2) Специально для новичков существует документация и книги.
Очень рекомендую, после прочтения снимается куча вопросов. |
|||
5
Vykisan
12.08.14
✎
16:06
|
(4)Может быть хотя бы взгляните на проделанную мной работу и подскажете что делать ?
Это первая часть: &НаКлиенте Процедура ЗаполнитьНовое(Команда) тз.Очистить(); Попытка ExcelApplication = Новый COMОбъект("Excel.Application"); ExcelApplication.Visible = Ложь; ExcelApplication.DisplayAlerts = Ложь; Исключение Сообщить(НСтр("ru = '"+ОписаниеОшибки()+"'"), СтатусСообщения.Внимание); Возврат; КонецПопытки; Версия = Лев(ExcelApplication.Version,Найти(ExcelApplication.Version,".")-1); Book = ExcelApplication.WorkBooks.Open(ИксЭль); ВсегоЛистов = Book.Sheets.Count; Sheet = Book.WorkSheets("Лист1"); НачальнаяКолонка = 1; НачальнаяСтрока = 2; Если Версия = "8" Тогда КонечнаяКолонка = Sheet.Cells.CurrentRegion.Columns.Count; КонечнаяСтрока = Sheet.Cells.CurrentRegion.Rows.Count; Иначе КонечнаяКолонка = Sheet.Cells.SpecialCells(11).Column; КонечнаяСтрока = Sheet.Cells.SpecialCells(11).Row; КонецЕсли; КолвоСтрокExcel = КонечнаяСтрока; Стр = НачальнаяСтрока; Пока стр <= КолвоСтрокExcel Цикл Новаястрока = ТЗ.Добавить(); НоваяСтрока.Дата = Sheet.Cells(Стр, 1).Value; НоваяСтрока.Сумма = Sheet.Cells(Стр, 2).Value; НоваяСтрока.Описания = Sheet.Cells(Стр, 3).Value; НоваяСтрока.КакНибудь = НоваяСтрока.Сумма * 2 ; НоваяСтрока.Текст = Текст ; Стр = Стр + 1; Если День(НоваяСтрока.Дата) <=15 тогда НоваяСтрока.КакНибудь = НоваяСтрока.Сумма / 2 ; иначе НоваяСтрока.КакНибудь = НоваяСтрока.Сумма * 2; конецесли; Если День(Новаястрока.дата) <=10 тогда НоваяСтрока.Текст = "Красный"; ИначеЕсли День(Новаястрока.Дата) >=11 тогда НоваяСтрока.Текст = "Жёльтый"; ИначеЕсли День(Новаястрока.Дата) >=21 тогда НоваяСтрока.Текст = "Зеленый"; Конецесли; КонецЦикла; Book.Close(); ExcelApplication.Application.Quit(); ExcelApplication = Неопределено; ВыполнитьУсловноеОформлениеФормы(); КонецПроцедуры и как раз в эту часть нужно вставить процедуру что собственно и является второй частью задания : &НаСервере процедура ВыполнитьУсловноеОформлениеФормы() УсловноеОформление.Элементы.Очистить(); для День(НоваяСтрока.Дата)<=15 Цикл НовыйЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить(); ЭлементыПолейНовогоЭлемента = НовыйЭлементУсловногоОформления.Поля.Элементы; ЭлементыОтбораНовогоЭлемента = НовыйЭлементУсловногоОформления.Отбор.Элементы; ЭлементОформления = УсловноеОформление.ДоступныеПоляОтбора.НайтиПоле(Текст); ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); //ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(Текст); // имя поля //ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; // либо задаем свой //**** Значение для отбора ЭлементОтбора.ПравоеЗначение = ЗначениеДляОтбора; // следует заметить что правым значением может выступать ПолеКомпоновкиДанных формы или списка ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных(Текст); //**** ЭлементОтбора.Использование = Истина; //Значение свойства УО: // Установка значения элемента УО // Возможно обращение как по индексу так и установка через метод //1. Элемент = ЭлементОформления.Оформление.Элементы[0]; Элемент.Значение =Цвет; //2. ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Зеленый", WebЦвета.Зеленый); ЭлементОформления.Оформление.УстановитьЗначениеПараметра("желтый", WebЦвета.Желтый); ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Красный", WebЦвета.Красный); Элемент.Использование = Истина; ////Добавим поля оформления, //если ничего не добавлять, то система применит оформления ко всей строке: // Создаем поля оформления ПолеОформления = ЭлементОформления.Поля.Элементы.Добавить(); ПолеОформления.Поле = Новый ПолеКомпоновкиДанных(ПолеДляОформления); ПолеОформления.Использование = Истина; КонецПроцедуры Подскажите как подделать эту вторую часть чтобы правильно заработала первая ? Заранее очень благодарен и рассчитываю на вашу мудрость и наставления . |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |