01.04.2005, 06:27 | #1 |
Участник
|
Ситуация такая
Есть текущая форма (допустим накладной). В ней есть поле Код склада, связанное с полем Location Code таблицы формы. Location Code, понятно, связан с таблицей Location через ее поле Code. Теперь вопрос: как прогаммно, находясь в форме накладной, повесить фильтр на таблицу Location, чтобы тыкаясь в поле Код склада у пользователя высвечивались не все склады, а только разрешенные конкретному пользователю? |
|
01.04.2005, 11:39 | #2 |
Участник
|
Примерно так...
На OnLookUp CLEAR(LocationListForm); LocationListForm.SetUserRestriction(TRUE); LocationListForm.LOOKUPMODE(TRUE); IF LocationListForm.RUNMODAL = ACTION::LookupOK THEN BEGIN Text := LocationListForm.GetSelectionFilter(); EXIT(TRUE); END; В форме LocationListForm global booUserLocFiler; Function: SetUserRestriction(boolean AppUserFilter) booUserLocFiler := AppUserFilter; на OnOpen if booUserLocFiler then begin IF UserSetup.GET(USERID) THEN BEGIN IF UserSetup."Location Filter" <> '' THEN BEGIN FILTERGROUP(2); SETFILTER(Code,UserSetup."Location Filter"); FILTERGROUP(0); END ELSE SETRANGE(Code); END ELSE SETRANGE(Code); end; Ну и в UserSetup добавить поле "Location Filter". |
|
01.04.2005, 13:50 | #3 |
Участник
|
Работает, большое спасибо!
А то я на Navision всего недели две как смотрю, и сам ни за что бы не додумал |
|