Страница 1 из 1
Изменение цвета строки в browse по условию
Добавлено: 18 янв 2013, 10:39
KorevaAD
Добрый день!
Производим докомпиляцию интерфейса. Столкнулись с необходимостью изменить цвет шрифта/фона строки в browse при определенных условиях. (как, например, В модуле "Управление персоналом" выделяются красным цветом юбилейные дни рождения).
Подскажите, пожалуйста, как это можно сделать? Если можно, пример.
Re: Изменение цвета строки в browse по условию
Добавлено: 18 янв 2013, 10:44
Masygreen
вроде этого пишете .. только тут цвет шрифта .. меняйте функцию на заливку ..
Код: Выделить всё
#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 по условию
Добавлено: 18 янв 2013, 11:03
m0p3e
Для всей строки будет так:
Код: Выделить всё
browse br_Head;
show(,,84,17);
Table LiEI;
Fields
{font={bold=False;color = fnGetColor(LiEI.LStatus)}}
LiEI.DESCR #3'DESCR':[6] ,Protect;
Re: Изменение цвета строки в browse по условию
Добавлено: 22 янв 2013, 13:15
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?
Re: Изменение цвета строки в browse по условию
Добавлено: 22 янв 2013, 18:50
timaskraft
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?
Полагаю, в alter не добавили функцию fnGetColor, приведенную выше.
Re: Изменение цвета строки в browse по условию
Добавлено: 23 янв 2013, 01:54
Dmitry_Sol
В атлантис, начиная с 5.4.37 появилась функция
cfsSetExtProp (aObjName : string | longInt; aPropName : string | longInt; aField : anyType);
где
Код: Выделить всё
aObjName - имя или указатель объекта.
aPropName - имя или код свойства из следующего списка:
cfpFontBold = 1207;
cfpFontItalic = 1208;
cfpFontColor = 1209;
cfpFontBackColor = 1210;
cfpInputMask = 1211.
например в интерфейсе накладных на отпуск выделим цветом сумму у всех накладных более 100000 руб.
Код: Выделить всё
#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.
К сожалению сделать чтоб выделились все поля, можно только последовательным перебором полей в ф -ии cfsSetExtProp, или целиком заменой browse.
Re: Изменение цвета строки в browse по условию
Добавлено: 23 янв 2013, 10:13
KorevaAD
Спасибо за ответы!
Dmitry_Sol, благодарю за описание, то, что нужно!
Использовала cfsSetExtProp, строку целиком выделила перебором всех полей.