![]() |
![]() |
![]() |
|
Менять картинку при выводе строки в зависимости от типа дока ? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
20.12.06
✎
08:44
|
Есть табличное поле - выводится журнал документов
Хочу менять картинку в зависимости от типа документа, но ... пока нашел только то что можно менять индекс картинки, т.е. надо сначала создать картинку с набором изображений а вот можно ли менять именно картинку при выводе строки ? |
|||
1
RomaH
naïve
20.12.06
✎
08:45
|
ЯчейкаСКартинкой = ОформлениеСтроки.Ячейки.Картинка;
Если ВидДокумента = 1 Тогда ЯчейкаСКартинкой.Картинка = БиблиотекаКартинок.User1; ИначеЕсли ВидДокумента = 2 Тогда ЯчейкаСКартинкой.Картинка = БиблиотекаКартинок.User2; КонецЕсли; что-то типа такого |
|||
2
shuhard
20.12.06
✎
08:49
|
примерно так:
Процедура ЖурналДокументовСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ТипЗнч(ДанныеСтроки.Ссылка)=Тип("ДокументСсылка.Поступление") Тогда ОформлениеСтроки.Ячейки.ИНН.ОтображатьТекст=Истина; ОформлениеСтроки.Ячейки.ИНН.Текст=Строка(ДанныеСтроки.Ссылка.Контрагент.ИНН); ОформлениеСтроки.Ячейки.Картинка.Картинка=БиблиотекаКартинок.АктивироватьЗадачу; КонецЕсли; КонецПроцедуры |
|||
3
RomaH
naïve
20.12.06
✎
08:52
|
угу - только не работает
ОформлениеСтроки.Ячейки.Картинка.Картинка=БиблиотекаКартинок.АктивироватьЗадачу |
|||
4
moreover
20.12.06
✎
08:56
|
А как не работает-то?
Вот так работает у меня ОформлениеСтроки.Ячейки.Пиктограмма.Картинка = БиблиотекаКартинок.СтатусВажно; ОформлениеСТроки.Ячейки.Пиктограмма.ОтображатьКартинку = Истина; |
|||
5
coder1c80
20.12.06
✎
08:57
|
(3) потому что не написал ОтображатьКартинку = Истина, до какого-то релиза это делать обязательно, по-моему....
|
|||
6
RomaH
naïve
20.12.06
✎
09:00
|
ЯчейкаСКартинкой = ОформлениеСтроки.Ячейки.Картинка;
ЯчейкаСКартинкой.Картинка = БиблиотекаКартинок.User1; ЯчейкаСКартинкой.ОтображатьКартинку = Истина; ЯчейкаСКартинкой.ИндексКартинки = 0; |
|||
7
vde69
20.12.06
✎
09:00
|
вообще с картинками какая-то фигня
например у меня есть конфа и в одной сети на части машин отображаеться а на части нет (зависит от настроек экрана) |
|||
8
RomaH
naïve
20.12.06
✎
09:00
|
(6) абсолютно не рабочий код
|
|||
9
RomaH
naïve
20.12.06
✎
09:01
|
ЯчейкаСКартинкой.Картинка = БиблиотекаКартинок.User1;
уже вот эта строка ничего не дает - ибо не присваивает |
|||
10
vde69
20.12.06
✎
09:02
|
(9) а в БиблиотекаКартинок картинку User1 добавлял?
|
|||
11
RomaH
naïve
20.12.06
✎
09:02
|
кстати - 8.1.5.105
|
|||
12
RomaH
naïve
20.12.06
✎
09:03
|
(10) а то
|
|||
13
coder1c80
20.12.06
✎
09:05
|
попробуй так:
ЯчейкаСКартинкой = ОформлениеСтроки.Ячейки; ЯчейкаСКартинкой.Картинка = БиблиотекаКартинок.User1; ЯчейкаСКартинкой.ОтображатьКартинку = Истина; |
|||
14
RomaH
naïve
20.12.06
✎
09:06
|
есть сомнения, что картинку надо присваивать все же в виде коллекции (т.е. в одной - несколько)
и потом только индекс менять ?? |
|||
15
coder1c80
20.12.06
✎
09:06
|
(13) упс... гоню...
|
|||
16
coder1c80
20.12.06
✎
09:08
|
(14) возможно... с колекцией работает без проблем.
|
|||
17
RomaH
naïve
20.12.06
✎
09:08
|
Элемент.Колонки.Картинка.КартинкиСтрок
т.е. тут |
|||
18
vde69
20.12.06
✎
09:09
|
собственно у меня с индексами все нормально пашет
Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если не ДанныеСтроки.Номенклатура.Ссылка.Пустая() Тогда Если глОбьектКорзины = Неопределено Тогда ОформлениеСтроки.Ячейки.Корзина.ИндексКартинки=1; Иначе Если не глОбьектКорзины.ТоварЕстьВКорзине(ДанныеСтроки.Ссылка) Тогда ОформлениеСтроки.Ячейки.Корзина.ИндексКартинки=1; Иначе ОформлениеСтроки.Ячейки.Корзина.ИндексКартинки=0; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
19
RomaH
naïve
20.12.06
✎
09:09
|
а как тогда побыстрее состряпать эту коллекцию ?
есть набор иконок или png |
|||
20
coder1c80
20.12.06
✎
09:11
|
(19) Почитай на ИТС статейку "Отображение картинок в табличном поле", там написано как твоей беде помочь...
|
|||
21
shuhard
20.12.06
✎
09:13
|
(6) если ЯчейкаСКартинкой.ИндексКартинки = 0; то не работает и это правильно:
- индекс нужен тогда,когда картинка содержит много 16*16 - дебагером видно,что индекс =-1 резюме - не нужно ЯчейкаСКартинкой.ИндексКартинки = 0; |
|||
22
RomaH
naïve
20.12.06
✎
09:14
|
(21) пробовал - не помогает
|
|||
23
shuhard
20.12.06
✎
09:18
|
код покажи + есть метод ОформлениеЯчейки (CellAppearance)
УстановитьКартинку (SetPicture) Синтаксис: УстановитьКартинку(<Картинка>) Параметры: <Картинка> (обязательный) Тип: Картинка. Картинка. Описание: Устанавливает свойство Картинка объекта ОформлениеЯчейки в значение, переданное в параметре <Картинка>, и устанавливает свойство ОтображатьКартинку в значение Истина. + версия твоей системы , у меня 8.0.16.2 |
|||
24
RomaH
naïve
20.12.06
✎
09:22
|
(23) спасибо, вроде заработало
|
|||
25
shuhard
20.12.06
✎
09:35
|
(24) мы рады,код покажи - на вилы могут наскочить и другие
|
|||
26
RomaH
naïve
20.12.06
✎
09:43
|
щас, как раз посмотрим оптимальность определения картинки
//ИмяНужногоТипа = "ДокументСсылка.РеализацияТоваров"; // //Если ТипЗнч(ОбрабатываемыйДокумент) = Тип(ИмяНужногоТипа) Тогда // //КонецЕсли; ЯчейкаСКартинкой = ОформлениеСтроки.Ячейки.Картинка; ЯчейкаСКартинкой.УстановитьКартинку(БиблиотекаКартинок[ДанныеСтроки.Ссылка.Метаданные().Имя]); т.е. можно было бы и по условию проверки типа документа, но тогда текст модуля раздувается, а быстродействие второго вроде устраивает (список не большой - от 3 до 10 строк) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |