Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Новый план раскраски. (число прочтений - 4901 )
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Новый план раскраски.
09. Сентября 2009 :: 19:06
Печать  
Может кому пригодиться.
Смысле следующий.
Имеем ТЗ.
Часть колонок видима часть невидима, причем видимость чередуется.
Так вот есть задача:
Надо раскрасить в следующей последовательности:
колонки с 1-5 видимые у них фон №1
6 невидима
7-8 фон №2
9-11 невидимы
начиная с 12 фон №1
по описанию
по идее должно быть так:
(Фон №1)()()()()()(Фон №2)()(Фон №1)
но!
в этом случае раскрашивается все до 7 колонки нормально
7 колонка Фон №2
а вот 8 и доконца ТЗ Фон №1
хотя должно быть 7 и 8 Фон №2

после долгих танцев с бубнами над макросом пришел к выводу:
что смену раскраски надо начинать не с того места, где надо закончить раскраску, а с первой видимой колонки где должна произойти смена цвета.
т.е. получаем макрос немного другой:
(Фон №1)()()()()()(Фон №2)()()()()(Фон №1).
Вот такая вот фича.
А может и не фича, а так и должно быть.
Вообщем всем удачить с новой раскраской, думаю многим поможет не наступать на грабли на которые я наступил.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Новый план раскраски.
Ответ #1 - 16. Сентября 2009 :: 11:01
Печать  
пытаюсь раскрасить таблицу и не получается.

кинул на форму таблицу значений обозвал ее _Т

текст модуля:

Код
Выбрать все
Функция ПолучитьЦвет(Красный=0,Зеленый=0,Синий=0) Экспорт
// Формирует значение цвета из составляющих (RGB)
	Возврат Макс(0,Синий)*65536+Макс(0,Зеленый)*256+Макс(0,Красный);
КонецФункции // ПолучитьЦвет


Процедура ПриОткрытии()

	Сервис1С = СоздатьОбъект("Сервис");
	Сервис1С.ВключитьРаскраскуТаблиц(1);
	Сервис1С.ИспользоватьПланРаскраски(1);

	_Т.НоваяКолонка("Красота",,,,"FormEx_ПланРаскраски");
	_Т.ВидимостьКолонки(1,0,);

	_Т.НоваяКолонка("_1");
	_Т.НоваяКолонка("_2");
	_Т.НоваяКолонка("_3");
	_Т.НоваяКолонка("_4");
	_Т.НоваяКолонка("_5");
	_Т.НоваяКолонка("_6");



    _СЦ = 0;
	Для _СЦ = 1 По 255  Цикл
		_Т.НоваяСтрока();
		_Т.Красота = "()(BRUSH[" + Строка(ПолучитьЦвет(_СЦ,_СЦ,_СЦ))+ "]FONT[" + Строка(ПолучитьЦвет(255 - _СЦ, 255-_СЦ,255-_СЦ))+ "])()()()()"
	КонецЦикла;


КонецПроцедуры

 

  
Наверх
wwwICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Новый план раскраски.
Ответ #2 - 17. Сентября 2009 :: 06:01
Печать  
Код
Выбрать все
Процедура ПослеОткрытия()

	Сервис1С = СоздатьОбъект("Сервис");
	Сервис1С.ВключитьРаскраскуТаблиц(1);
	Сервис1С.ИспользоватьПланРаскраски(1);

        ФормаРасш=СоздатьОбъект("РасширениеФормы");
	ФормаРасш.УстановитьФорму(Форма);
	ФормаРасш.РаскрашиватьТаблицу("_Т"); 


  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Новый план раскраски.
Ответ #3 - 17. Сентября 2009 :: 06:15
Печать  
и ПослеОткрытия не работает...

попробывал старый план раскраски, тоже не хочет раскрашивать строки =((
  
Наверх
wwwICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Новый план раскраски.
Ответ #4 - 17. Сентября 2009 :: 06:27
Печать  
Anatol писал(а) 17. Сентября 2009 :: 06:15:
и ПослеОткрытия не работает...

попробывал старый план раскраски, тоже не хочет раскрашивать строки =((


_Т.НоваяКолонка("Красота",,,,"FormEx_ПланРаскраски");

При чем тут Красота?

FormEx_ПланРаскраски это должен быть идентификатор колонки с планом раскраски.
  
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Новый план раскраски.
Ответ #5 - 17. Сентября 2009 :: 06:31
Печать  
при том что в документации ничего не сказано про идентификатор, только что заголовок должен так называться.

... все равно нераскрашивается!
  
Наверх
wwwICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Новый план раскраски.
Ответ #6 - 17. Сентября 2009 :: 06:36
Печать  
Anatol писал(а) 17. Сентября 2009 :: 06:31:
при том что в документации ничего не сказано про идентификатор, только что заголовок должен так называться.

... все равно нераскрашивается!

Точно. Извиняюсь.

Давай тестовую обработку.
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Новый план раскраски.
Ответ #7 - 17. Сентября 2009 :: 06:46
Печать  
Anatol писал(а) 17. Сентября 2009 :: 06:31:
при том что в документации ничего не сказано про идентификатор, только что заголовок должен так называться.

... все равно нераскрашивается!


Код
Выбрать все
Гы.. всё там расскрашивается:

Процедура ПослеОткрытия()
	Сервис1С = СоздатьОбъект("Сервис");
	Сервис1С.ВключитьРаскраскуТаблиц(1);
	Сервис1С.ИспользоватьПланРаскраски(1);
	ФормаРасш=СоздатьОбъект("РасширениеФормы");
	ФормаРасш.УстановитьФорму(Форма);
	ФормаРасш.РаскрашиватьТаблицу("_Т");
	_Т.НоваяКолонка("Красота",,,,"FormEx_ПланРаскраски");
	_Т.ВидимостьКолонки(1,0,);
	_Т.НоваяКолонка("_1");
	_Т.НоваяКолонка("_2");
	_Т.НоваяКолонка("_3");
	_Т.НоваяКолонка("_4");
	_Т.НоваяКолонка("_5");
	_Т.НоваяКолонка("_6");
    _СЦ = 0;
	Для _СЦ = 1 По 255  Цикл
		_Т.НоваяСтрока();
		_Т.Красота = "()(BRUSH[" + Строка(ПолучитьЦвет(_СЦ,_СЦ,_СЦ))+ "]FONT[" + Строка(ПолучитьЦвет(255 - _СЦ, 255-_СЦ,255-_СЦ))+ "])()()()()"
	КонецЦикла;
КонецПроцедуры 

  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Новый план раскраски.
Ответ #8 - 17. Сентября 2009 :: 06:59
Печать  
Код
Выбрать все
[b]ФормаРасш=СоздатьОбъект("РасширениеФормы");
	ФормаРасш.УстановитьФорму(Форма);
	ФормаРасш.РаскрашиватьТаблицу("_Т");[/b] 



в верхнем посте не обратин на это внимание, так действительно раскраска заработала!

спасибо
  
Наверх
wwwICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Новый план раскраски.
Ответ #9 - 19. Сентября 2009 :: 04:57
Печать  
Anatol писал(а) 17. Сентября 2009 :: 06:59:
Код
Выбрать все
[b]ФормаРасш=СоздатьОбъект("РасширениеФормы");
	ФормаРасш.УстановитьФорму(Форма);
	ФормаРасш.РаскрашиватьТаблицу("_Т");[/b] 



в верхнем посте не обратин на это внимание, так действительно раскраска заработала!

спасибо


Вот токо это походу лишнее.
Оно и так должно работать.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать