Изменение цвета строки в browse по условию
Модераторы: m0p3e, edward_K, Модераторы
Изменение цвета строки в browse по условию
Добрый день!
Производим докомпиляцию интерфейса. Столкнулись с необходимостью изменить цвет шрифта/фона строки в browse при определенных условиях. (как, например, В модуле "Управление персоналом" выделяются красным цветом юбилейные дни рождения).
Подскажите, пожалуйста, как это можно сделать? Если можно, пример.
			
			
									
						
										
						Производим докомпиляцию интерфейса. Столкнулись с необходимостью изменить цвет шрифта/фона строки в browse при определенных условиях. (как, например, В модуле "Управление персоналом" выделяются красным цветом юбилейные дни рождения).
Подскажите, пожалуйста, как это можно сделать? Если можно, пример.
- 
				Masygreen
- Местный житель
- Сообщения: 1089
- Зарегистрирован: 04 сен 2008, 11:27
- Откуда: Москва
- Контактная информация:
Re: Изменение цвета строки в browse по условию
вроде этого пишете .. только тут цвет шрифта .. меняйте функцию на заливку ..
			
			
									
						
							Код: Выделить всё
#doc
подсветка строк по типу
#end
function fnGetColor(_LStatus:word):integer;
{
 fnGetColor := mcColorBlack;
 if (_LStatus = mcStatusSave)   fnGetColor := mcColorGreen;//
 if (_LStatus = mcStatusCancel) fnGetColor := mcColorGray;
 if (_LStatus = mcStatusError)  fnGetColor := mcColorRed;
} Код: Выделить всё
browse br_Head;
show(,,84,17);
Table LiEI;
Fields
 LiEI.DESCR      #3'DESCR':[6]               ,Protect,{font={bold=False;color = fnGetColor(LiEI.LStatus)}};Время ведет!
			
						Re: Изменение цвета строки в browse по условию
Для всей строки будет так:
			
			
									
						
										
						Код: Выделить всё
browse br_Head;
show(,,84,17);
Table LiEI;
Fields
 {font={bold=False;color = fnGetColor(LiEI.LStatus)}}
 LiEI.DESCR      #3'DESCR':[6]               ,Protect;Re: Изменение цвета строки в browse по условию
browse br_Head;
show(,,84,17);
Table LiEI;
Fields
{font={bold=False;color = fnGetColor(LiEI.LStatus)}}
LiEI.DESCR #3'DESCR':[6] ,Protec
работает когда создаем свой интерфейс.
Мне необходимо внести изменения в стандартный Галактический интерфейс (Alter interface). На fnGetColor ругается.
Может, кто-нибудь использовал SetFontBackgroundColor?
			
			
									
						
										
						show(,,84,17);
Table LiEI;
Fields
{font={bold=False;color = fnGetColor(LiEI.LStatus)}}
LiEI.DESCR #3'DESCR':[6] ,Protec
работает когда создаем свой интерфейс.
Мне необходимо внести изменения в стандартный Галактический интерфейс (Alter interface). На fnGetColor ругается.
Может, кто-нибудь использовал SetFontBackgroundColor?
- 
				timaskraft
- Сообщения: 17
- Зарегистрирован: 21 май 2008, 11:03
- Откуда: Витебск
Re: Изменение цвета строки в browse по условию
Полагаю, в alter не добавили функцию fnGetColor, приведенную выше.KorevaAD писал(а):browse br_Head;
show(,,84,17);
Table LiEI;
Fields
{font={bold=False;color = fnGetColor(LiEI.LStatus)}}
LiEI.DESCR #3'DESCR':[6] ,Protec
работает когда создаем свой интерфейс.
Мне необходимо внести изменения в стандартный Галактический интерфейс (Alter interface). На fnGetColor ругается.
Может, кто-нибудь использовал SetFontBackgroundColor?
- 
				Dmitry_Sol
- Постоянный гость
- Сообщения: 76
- Зарегистрирован: 07 июн 2007, 12:32
- Откуда: Витебск
- Контактная информация:
Re: Изменение цвета строки в browse по условию
В атлантис, начиная с 5.4.37 появилась функция
cfsSetExtProp (aObjName : string | longInt; aPropName : string | longInt; aField : anyType);
где
например в интерфейсе накладных на отпуск выделим цветом сумму у всех накладных более 100000 руб.
К сожалению сделать чтоб выделились все поля, можно только последовательным перебором полей в ф -ии cfsSetExtProp, или целиком заменой browse.
			
			
									
						
										
						cfsSetExtProp (aObjName : string | longInt; aPropName : string | longInt; aField : anyType);
где
Код: Выделить всё
aObjName - имя или указатель объекта.
aPropName - имя или код свойства из следующего списка:
       cfpFontBold = 1207;
       cfpFontItalic = 1208;
       cfpFontColor = 1209;
       cfpFontBackColor = 1210;
        cfpInputMask = 1211.
Код: Выделить всё
#component "L_Soprdoc"
alter  interface "SoprDoc"
HandleEvent
 cmInit:
       {
          if(Inherited::HandleEvent(cmInit) = heOk) {}
         cfsSetExtProp('c_BRSELECTNAKL_SUM_Сумма',1210,if(Katsopr.summa>100000,9,0));
       }
end;
end.
Re: Изменение цвета строки в browse по условию
Спасибо за ответы!
Dmitry_Sol, благодарю за описание, то, что нужно!
Использовала cfsSetExtProp, строку целиком выделила перебором всех полей.
			
			
									
						
										
						Dmitry_Sol, благодарю за описание, то, что нужно!
Использовала cfsSetExtProp, строку целиком выделила перебором всех полей.