Страница 1 из 1

Скрытие полей в интерфейсе

Добавлено: 26 июл 2005, 19:36
Гаёв Александр
Доброго времени суток всем!
Помогите кто может: необходимо в фэйсе отображать/скрывать поля ввода. Условием для этого будет значение "нескрываемого" поля Source.
Компилятор затыкается на строке "#Source:" "нет такой ф-ии, метода или поля #Source". приведу чать фэйса:
...
HandleEvent
cmCheckField:
case CurField of
#Source:
...

Версия Галактики 7.11.
При компиляции в vip подключаются ресурсники: extfun.res, g_adm.res, g_main.res, g_fin.res, g_oper.res, g_menu.res, g_vip.res, g_crm.res, controll.res, compdata.res, common.res, commonfix2.res, vengine.res + зарплатские(с фиксами)
или я что-то не так описал? или необходим ещё ресурс? если не понятно, то могу привести весь код фэйса. Спасибо заранее

Re: Скрытие полей в интерфейсе

Добавлено: 26 июл 2005, 21:21
Deinis
Вырезка из моего интерфейса

Код: Выделить всё

// Процедура получения нужного КАУ (для windoww GetKAU)
Procedure GetNeedKAU ;
{
  Var KolKAU : longint ; // кол-во выбранных КАУ
  KolKAU := 0;
  KolKAU := iGetKau.GetCodeKau(cgiMulti, GrKAU, cKAU) ;

  Case KolKAU of
    0: { // если пользователь НЕ выбрал никакой КАУ
         // сделаем видимым поле "Филиал"
         SetFieldOption( #Filial , ofSelectable ) ;
         // снимем защиту от редактирования с поля "Имя КАУ"
         ClearFieldOption( #NameKAU , ofProtected ) ;
         cKAU        := 0 ;
         Set NameKAU := '';
         // получим название группы аналитики
         Set NameGrKAU := GetNameGrKAU (0);
         // получим название кода КАУ  (фразу "Код филиала")
         Set NameField_KodKAU := GetNameField_KodKAU (0) ;
       }
    1: { // если пользователь выбрал только один КАУ
         // сделаем видимым поле "Филиал"
         ClearFieldOption( #Filial , ofSelectable ) ;
         // сделаем поле "Имя КАУ" защищенным от редактирования
         SetFieldOption( #NameKAU , ofProtected ) ;
         // получим название группы аналитики
         Set NameGrKAU := GetNameGrKAU (GrKAU) ;
         // получим наименование КАУ
         case GrKAU of
            1 : // если пользователь хочет использовать КАУ по организациям
                IF (GetFirst KatOrg where (( cKAU == KatOrg.nRec )) = tsOk)
                  { Set NameKAU := KatOrg.Name ;
                    Set KodKAU  := KatOrg.UNN  ;
                  }
            3 : // если пользователь хочет использовать КАУ по сотрудникам
                IF (GetFirst Persons where (( cKAU == Persons.nRec )) = tsOk)
                  { Set NameKAU := Persons.FIO    ;
                    Set KodKAU  := string(Persons.TabNmb) ;
                  }
         end;
         // получим название кода КАУ
         Set NameField_KodKAU := GetNameField_KodKAU (GrKAU) ;
       }
  End;
}
В общем пользуйся функциями SetFieldOption(...) (и ClearFieldOption(...)), SetFieldState(...) (и ClearFieldState(...))

Добавлено: 27 июл 2005, 06:27
edward_K
source я так понимаю здесь переменная(не макроплдстановка?)
она обязательно должна быть прописана в секции var view
create view v
var
wtmp:word ;
( wtmp1 )
as select
wtmp, .....

в старых версиях прокатывало только wtmp1, теперь вроде и wtmp можно попробовать.

Добавлено: 27 июл 2005, 11:03
Гаёв Александр
спасибо! заработало! :)