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

EIP - выборочное редактирование по условию

Добавлено: 22 Январь 2016, 16:10
gopstop2007
В таблице есть 10 полей - Edit In Place, как по условию одному пользователю разрешить редактировать 5 полей, а другому все 10 ?
Слабоват по EIP и прошу помощи у Вас :)
C10, ABC

EIP - выборочное редактирование по условию

Добавлено: 22 Январь 2016, 18:08
Игорь Столяров
gopstop2007 писал(а): Слабоват по EIP
Можно по разному, рассказываю самый простой с учетом запроса. ;)

1. Запрещаешь редактирование 5 полей (первый пользователь).
Находишь в BRW1.Init PROCEDURE секцию инициализации EIP.
Копируешь всю настройку EIP в Embed с условием, получится что-то вроде

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

  SELF.EIP &= BRW1::EIPManager                             ! Set the EIP manager
  ! [Priority 7300]
    If ПЕРВЫЙ ПОЛЬЗОВАТЕЛЬ    ! Вариант настройки с доступом к 5 полямс
       SELF.AddEditControl(,1) ! MCO:Number Disable
       SELF.AddEditControl(EditInPlace::MCO:Kolvo,2)
       SELF.AddEditControl(,3) ! MCO:Ed Disable
       ...
       IF WM.Request <> ViewRecord  ! If called for anything other than ViewMode, make the insert, change & delete controls available
          SELF.ChangeControl=?Change
          SELF.DeleteControl=?Delete
       END
    else
       Здесь остается штатный код инициализации EIP
    end   

2. Потом в настройках EIP открываешь все 10 полей для редактирования.
3. Все. :)

EIP - выборочное редактирование по условию

Добавлено: 22 Январь 2016, 19:21
gopstop2007
Спасибо, запутался в трех соснах :idied: А я пытался с помощью в Eip Manager .InitControls

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

get(Self.Eq, Column Number)
if (условие)
	Self.Eq.Control &= null
else
    Self.Eq.Control &= EIP field class
end
put(Self.Eq)