|
![]() |
#1 |
Участник
|
Олег, воспользовался вашим кодом и наткнулся на такую проблему.
Создаю две группы пользователей. Накладываю ограничения на таблицу ProdTable по связанным таблицам. Отношу пользоватлеля к обеим группам, но в результате получаю ограничения только одного пользователя. Первая группа пользователей: ProdTable ограничение по полю номенклатура, и по полю статус производственного заказа. Вторая группа пользователей: ProdTable критерий по статусу производственного заказа. ProdTable связываю с таблицей ProdBOM (связь 1:n). Накладываю ограничения по полю номенклатура ProdBOM. ProdTable связываю с таблицей ProdJournalBOM (связь 1:n) критерий не задаю. Если пользователь относится к одной из групп, то видит нужные записи. Если к обоим, то производственные заказы второй группы. План исполнения: Код: SELECT A.ITEMID,A.NAME,A.PRODGROUPID,A.PRODSTATUS,A.PRODTYPE,A.QTYSCHED,A.QTYSTUP,A.DLVDATE,A.STUPDATE,A.FINISHEDDATE,A.SCHEDSTART,A.SCHEDEND,A.HEIGHT,A.WIDTH,A.DEPTH,A.DENSITY,A.QTYCALC,A.REALDATE,A.RESERVATION,A.PRODPOSTINGTYPE,A.INVENTTRANSID,A.DIMENSION,A.DIMENSION2_,A.DIMENSION3_,A.INVENTREFTYPE,A.INVENTREFID,A.INVENTREFTRANSID,A.COLLECTREFLEVEL,A.COLLECTREFPRODID,A.BOMDATE,A.BACKORDERSTATUS,A.PRODPOOLID,A.PROFITSET,A.CALCDATE,A.REMAININVENTPHYSICAL,A.BOMID,A.DEL_CONFIGID,A.REQPLANIDSCHED,A.REQPOID,A.REFLOOKUP,A.PRODID,A.INVENTDIMID,A.PRODORIGID,A.PRODPOSITION,A.CREATEDDATE,A.CREATEDTIME,A.CREATEDBY,A.RECVERSION,A.RECID,B.INVENTDIMID,B.INVENTBATCHID,B.INVENTSERIALID,B.INVENTLOCATIONID,B.CONFIGID,B.INVENTSIZEID,B.INVENTCOLORID,B.INVENTGTDID_RU,B.EMPLRESPONSIBLEID_RU,B.RECVERSION,B.RECID FROM PRODTABLE A,INVENTDIM B WHERE ((A.DATAAREAID=?) AND (((A.PRODSTATUS=?) OR ((((A.ITEMID=?) OR (A.ITEMID=?)) OR (A.ITEMID=?)) AND ((A.BACKORDERSTATUS>=?) AND (A.BACKORDERSTATUS<=?)))) AND ((A.PRODSTATUS=?) OR ((((A.ITEMID=?) OR (A.ITEMID=?)) OR (A.ITEMID=?)) AND ((A.BACKORDERSTATUS>=?) AND (A.BACKORDERSTATUS<=?)))))) AND ((B.DATAAREAID=?) AND (A.INVENTDIMID=B.INVENTDIMID)) AND EXISTS (SELECT 'X' FROM PRODJOURNALBOM C WHERE ((C.DATAAREAID=?) AND (A.PRODID=C.PRODID)) AND EXISTS (SELECT 'X' FROM PRODBOM D WHERE ((D.DATAAREAID=?) AND ((((((D.ITEMID=?) OR (D.ITEMID=?)) OR (D.ITEMID=?)) AND (A.PRODID=D.PRODID)) AND ((((((((D.ITEMID=?) OR (D.ITEMID=?)) OR (D.ITEMID=?)) OR (D.ITEMID=?)) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' ))) AND ((((((((D.ITEMID=?) OR (D.ITEMID=?)) OR (D.ITEMID=?)) OR (D.ITEMID=?)) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' )) OR (D.ITEMID LIKE ? ESCAPE '\' )))))) ORDER BY A.DATAAREAID DESC,A.PRODID DESC OPTION(FAST 1,LOOP JOIN) |
|
Теги |
faq, rls, законченный пример, полезное, права доступа на уровне записей (rls), связанная таблица, связанные сущности |
|
|