چگونه فیلد های یک فرم را بر اساس گروه کاربر فعال/غیر فعال کنیم
سه شنبه, ۱۱ فروردين ۱۳۹۴، ۱۰:۴۵ ق.ظ
یک فرم infopath دارید و می خواهید بعضی کاربرها فقط آن را ببینند (دسترسی ویرایش نداشته باشند) و بعضی بتوانند آن را ویرایش کنند.
وقتی دنبال راه حلی برای این مشکل روی اینترنت می گردید متوجه می شوید که ظاهرا با استفاده از وب سرویس ها می شود این کار را انجام داد اما وقتی دست به کار می شود می بینید که آنقدرها هم ساده نیست ( در مورد من که اصلا انجام نمی شد). حالا به هر دلیل.
اما نیاز شما سر جای خودش باقیست.
یه عنوان یک Workaround (که نمی دانم ترجمه فارسی اش چه می شود) برای گروههایی که زیر 10 عضو دارند می توانید از این راه استفاده کنید:
در infopath روی فرمتان یک فیلد text تعریف کنید برای نگه داری از نام کاربر جاری. اسمش را مثلا بگذارید currentUserName. و یک متغیر Yes/No به نام IsGroupMember
یک قانون برای هنگام باز شدن فرم تعریف کنید که این فیلد را مقدار دهی کند با تابع userName. برای تعریف قانون هنگام باز شدن فرم از این مسیر اقدام کنید:
Data tab in ribbon -> Form Load -> New Rule
بعد از آن یک قانون دیگر تعریف کنید برای مقدار دهی فیلد IsGroupMember با این مقدار
currentUserName = "user1" or currentUserName = "user2" so on, so forth
(هر کدام از ایم orها باید در پرانتز باشند اما در این وبلاگ نمی شود درست نوشت)
حالا روی هر فیلدی که می خواهید غیرفعال یا مخفی کنید باید یک قانون بنویسید بر اساس این متغیر IsGroupMember.
با این روش حداقل وقتی اعضای گروهتان تغییر کردند شما یک نقطه در فرم را تغییر می دهید.
وقتی دنبال راه حلی برای این مشکل روی اینترنت می گردید متوجه می شوید که ظاهرا با استفاده از وب سرویس ها می شود این کار را انجام داد اما وقتی دست به کار می شود می بینید که آنقدرها هم ساده نیست ( در مورد من که اصلا انجام نمی شد). حالا به هر دلیل.
اما نیاز شما سر جای خودش باقیست.
یه عنوان یک Workaround (که نمی دانم ترجمه فارسی اش چه می شود) برای گروههایی که زیر 10 عضو دارند می توانید از این راه استفاده کنید:
در infopath روی فرمتان یک فیلد text تعریف کنید برای نگه داری از نام کاربر جاری. اسمش را مثلا بگذارید currentUserName. و یک متغیر Yes/No به نام IsGroupMember
یک قانون برای هنگام باز شدن فرم تعریف کنید که این فیلد را مقدار دهی کند با تابع userName. برای تعریف قانون هنگام باز شدن فرم از این مسیر اقدام کنید:
Data tab in ribbon -> Form Load -> New Rule
بعد از آن یک قانون دیگر تعریف کنید برای مقدار دهی فیلد IsGroupMember با این مقدار
currentUserName = "user1" or currentUserName = "user2" so on, so forth
(هر کدام از ایم orها باید در پرانتز باشند اما در این وبلاگ نمی شود درست نوشت)
حالا روی هر فیلدی که می خواهید غیرفعال یا مخفی کنید باید یک قانون بنویسید بر اساس این متغیر IsGroupMember.
با این روش حداقل وقتی اعضای گروهتان تغییر کردند شما یک نقطه در فرم را تغییر می دهید.
۹۴/۰۱/۱۱