Ne kishim një zhvilluar një formë InfoPath me pamje të shumta për të mbështetur një qira të ri / on-boarding process. When the company hires a new person, departamenti IT dhe grupe të tjera kanë nevojë për të marrë veprim (ngritur pagave, mundësojë qasje në aplikimet përkatëse, gjetur një tavolinë, etj). We use on form but a different view of the form for each of those functions.
Në këtë kompani, shumica e njerëzve të përfshirë në procesin e biznesit janë të IT-tru, kështu që kur ata të hyni në formularin, their default view is a "menu" view with buttons that direct them to their specific function. Megjithatë, we needed to simplify things for the new hire’s direct manager. This person should not see any of the IT related stuff. Në të vërtetë, ajo duhet të shikoni vetëm një pamje e formës dhe të mos ketë edhe një mundësi për të parë pikëpamjet e tjera.
Në rastin tonë, që përbëjnë menaxherit direkt është i lidhur direkt me mirësjellje formen e nje kontaktoni selektorin (which I am always wanting to call a "people picker" për disa arsye).
Hapat janë si më poshtë:
1. Në regjimin e dizajnit, shkoni tek Tools -> Options Forma -> Hapur dhe Save.
2. Select "rules".
3. Create a new rule whose action is "switch to view" dhe gjendja e të cilit thekson emër përdorues() funksion.
userName() returns the "simple" user name without the domain. If I log into SharePoint with credentials "domain\pagalvin", userName() returns "pagalvin".
The contact selector provides three bits of information for a contact. The "AccountID" portion is most useful for this scenario. The only thing that makes this even a little bit of challenge is that the contact selector (në mjedisin tim gjithsesi) kthen domain dhe përdorues ID, as in "domain\pagalvin". This prevents us from doing a straight-forward equality condition since AccountID ("domain\pagalvin") kurrë nuk do të jetë e barabartë emër përdorues() ("pagalvin").
We can get around this using the "contains" operator: AccountID përmban Username().
Ne mund të marrë atë më tej dhe para-pend një hard-coded domain në frontin e USERNAME() funksionojë për të marrë barazinë tonë të kontrolluar dhe eliminuar rrezikun e një rreme pozitive mbi përmban operatorin.
We would have REALLY like to automatically switch view for other users based on their AD security group membership. Për shembull, when a member of the "IT Analytics" Grupi accesses formularin, automatically switch to the IT Analytics view. We didn’t have time to implement it, but my first thought is to create a web service that would have a method like "IsMemberOfActiveDirectorySecurityGroup", kalojë ajo userName() and return back true or false. Does anyone have any other, më shumë ide e zgjuar? Is there any SharePoint function we can leverage from InfoPath to make that determination?
</fund>
Shumë Faleminderit Z.. Paul
Pingback: Infopath Switch View Based On User « Sladescross's Blog