I offer a solution.
1.) Create view called (LookupByCategoryReaders)
SELECT FORM = "Category"
1column, sorted and viewed every values along:
tmp:=CategoryReaders;
@If(tmp="";"";@ReplaceSubstring(@Name([CN];tmp);" ";""))
2column:
Order
3column:
Category1
——————————————————————————————-
2.) Correct field NewsletterCategories form PersonWeb.
Replace string @GetProfileField("Configuration_Profile";"Category1") for:
le:=@Text(@DocumentUniqueID);
userlist:=@IfError(@Unique(@DbColumn("Notes" : "NoCache"; ""; "(LookupByCategoryReaders)"; 1)));
keylist:=@Keywords(userlist;@ReplaceSubstring(@UserNamesList;" ";""));
n := 1;
@While(n <= @Elements(keylist);
current:=@Subset(@Subset(keylist; n);-1);
currentcat:=@IfError(@DbLookup("Notes" : "NoCache"; ""; "(LookupByCategoryReaders)";current; 3));
tmplist:=@Explode(@Implode(tmplist;le)+le+@Implode(currentcat;le);le);
n := n + 1);
restrictcat:=@Unique(tmplist);
tmpall:=@IfError(@Unique(@DbLookup("Notes" : "NoCache"; ""; "(LookupByCategoryReaders)";""; 3)));
restrictlist:=@Explode(@Implode(tmpall;le)+le+@Implode(restrictcat;le);le);
masterlist:=@IfError(@Unique(@DbColumn("Notes":"NoCache" ; "" ;"(LookupByCategoryReaders)" ; 3)));
accesslist:=@If(@IsMember("[ForumMaster]";@UserRoles);masterlist;restrictlist);
accesslist
———————————————————————————–
3.) Delete string in formula field Newsletter form PersonWeb
" | ALL"
or correct agent Newsletter but if need
BRGD, Evgeny.