همانطور که می دانید یکی از کاربردهای شرپوینت در سازمان ها طراحی فرم های سازمان به صورت دیجیتال و حذف مستندات کاغذی می باشد. در این صورت می توان از امکانات شرپوینت هم در زمینه مدیریت مستندات از جمله نگهداری نگارش های مختلف، تخصیص دسترسی روی مستندات و استفاده از فرآیندهای کاری روی مستندات استفاده نمود. راهکار مایکروسافت برای پیاده سازی فرم نرم افزار Office InfoPath می باشد که امکانات کاملی در این زمینه در اختیار می گذارد. در این پست به یکی از سازگاری هایی که این نرم افزار با شرپوینت دارد پرداخته می شود.
یکی از موارد پرکاربرد در طراحی فرم ها این است که کاربران مختلف بتوانند نماهای متفاوتی از فرم را مشاهده کنند. به عنوان مثال در فرم درخواست هزینه، کاربری که در حال پر کردن فرم است تنها باید بخش های دریافت اطلاعات را مشاهده نماید. پس از اینکه فرم پر شد، مسئول بخش مالی فرم را بررسی می کند تا در صورت تایید پرداخت صورت گیرد. به این منظور این شخص باید فیلد های دیگری را برای درج نظرات خود داشته باشد. در نهایت پس از اظهار نظر مسئول مالی فرم باید با تمامی نظرات آن برای کاربر درخواست دهنده قابل مشاهده باشد و البته بهتر است که در این حالت دیگر محتویات فرم قابل ویرایش نباشد.
همانطور که در سناریوی فوق آشکار است و همچنین در بسیاری از سناریوهای مشابه، یکی از نیازها در طراحی فرم این است که بدانیم هم اکنون چه کاربری در حال مشاهده فرم است تا با توجه به این امر تصمیم گیری نماییم که چه نمایی به او نشان داده شود. یکی از راه هایی که به این منظور وجود دارد و قابل استفاده در فرم های قابل نمایش در وب یا browser-enabled نیز می باشد استفاده از وب سرویس ها می باشد. در این پست نحوه تنظیم این کار نشان داده می شود.
ابتدا از منوی Tools گزینه Data Connections را انتخاب نموده و یک Connection جدید اضافه می کنیم و نوع آن را Recieve data انتخاب می کنیم.
در پنجره بعد محل دریافت اطلاعات را Web Service انتخاب می کنیم.
در پنجره بعد آدرس وب سرویس مورد نظرمان که در اینجا UserProfileService.asmx است را به صورت نسبی به سرور وارد می کنیم.
در صفحه بعد متد GetUserProfileByName را انتخاب می کنیم.
پنجره های بعد را هم با همان تنظیمات پیش فرض Next می زنیم. فقط باید دقت داشته باشیم که در پنجره آخر پیش از finish گزینه Automatically retrieve data when form is opened انتخاب شده باشد. در این قسمت نامی هم برای این Connection وارد کنید.
حال کافیست تا یک Text box به فرم خود اضافه کنید. سپس روی این آن دابل کلیک نموده و در پنجره مشخصات در قسمت Default Value روی دکمه fx کلیک نمایید.

در پنجره باز شده روی Insert field or group کلیک کنید. در این پنجره از قسمت Data source همان Connection که در قسمت قبل ایجاد کردید را انتخاب نمایید. سپس مشابه شکل زیر فیلد value را انتخاب کنید ولی پیش از Ok روی Filter Data کلیک کنید
در پنجره باز شده یک فیلتر جدید اضافه (add) کنید. در قسمت اول پنجره باز شده مطابق شکل زیر مقدار دهی به فیلد یا گروه را انتخاب کنید.

سپس مطابق شکل زیر مقدار Name را انتخاب کنید
قسمت وسط با مقدار پیش فرض یعنی Is equal to باقس بماند و در بخش نهایی گزینه Type Text… را انتخاب کنید. در این قسمت لازم به ذکر است که متدی که ما در حال استفاده از آن هستیم دارای ویژگی های مختلفی می باشد که در انتهای این مطلب لیست شده اند و شما از هر کدام از آنها می توانید استفاده کنید. در این پست ما از مشخصه UserName استفاده می کنیم. به این منظور در قسمت آخر این پنجره متن UserName را وارد کنید.
پنجره های باز را Ok کرده تا به فرم برگردید حال اگر پیش نمایش فرم را مشاهده کنید در این Text Box مقدار UserName از کاربری که هم اکنون وارد سیستم شده است نشان داده می شود.
UserProfile_GUID
AccountName
FirstName
LastName
PreferredName
WorkPhone
Office
Department
Title
Manager
AboutMe
PersonalSpace
PictureURL
UserName
QuickLinks
WebSite
PublicSiteRedirect
SPS-Dotted-line
SPS-Peers
SPS-Responsibility
SPS-Skills
SPS-PastProjects
SPS-Interests
SPS-School
SPS-SipAddress
SPS-Birthday
SPS-MySiteUpgrade
SPS-DontSuggestList
SPS-ProxyAddresses
SPS-HireDate
SPS-LastColleagueAdded
SPS-OWAUrl
SPS-ResourceAccountName
SPS-MasterAccountName
Assistant
WorkEmail
CellPhone
Fax
HomePhone