مستر دیتیل در پاورفرم- ذخیره داده ها در یک لیست دیگر به کمک DataEntryGrid
در بسیاری از موارد کاربر نیاز به ثبت یک رکورد اصلی و سپس ثبت جزئیات مربوط به آن آیتم میشود.
در اینجا توضیح میدهیم چگونه با ثبت یک آیتم اصلی همزمان، در لیست دیگری، جزئیات آیتم اصلی را ذخیره کنید.
با این کار شما هر بار که به آیتم اصلی مراجعه کنید میتوانید جزئیات مربوط به آنرا نیز مشاهده کنید.
اصطلاحا به این کاربرد Master Details می گویند.
به عنوان مثال، کاربر میخواهد یک سفارش جدید را به لیست “سفارشات” اضافه کند و خطوط سفارش را در همان زمان وارد کند، در حالی که خطوط سفارش در یک لیست جداگانه ذخیره میشوند.
مراحل انجام کار:
برای انجام این کار، کاربر باید موارد زیر را انجام دهد:
- یک کوئری لیست ایجاد کنید.
- شرط کوئری لیست را تعیین کنید که تنها موارد مرتبط را از لیست جزئیات فرخوانی می کند.
- فیلدهای کنترل DataEntryGrid را با استفاده از نام ستون لیست جزئیات تعریف کنید.
- مقدار کنترلی را به کوئری لیست مرتبط کنید.
- یک فیلد برای DataEntryGrid تعریف کنید که به صورت خودکار تکمیل می شود (به عنوان مثال parent ID)
یک کلمه کلیدی خاص: برای این کار {ParentID} میتواند مورد استفاده قرار گیرد که شناسه رکورد اصلی را به تمام سوابق جزئیات مربوط به آن مرتبط میکند.
در صورتی که ما یک آیتم جدید اضافه کنیم، سیستم ابتدا آیتم اصلی را وارد میکند، شناسه آن را دریافت میکند و سپس آن را برای به روز رسانی هر آیتم جزئیات ارائه شده، استفاده میکند.
مثال :
دو لیست داریم:
سفارشات با ستون های: (ID , Title , OrderData)
خطوط سفارشات با ستون های: (ID , Title , ParaentOrder , Product , Quantity)

Lists
نکته مهم: ستون ParaentOrder در لیست “خطوط سفارشات” از جنس lookup است که به لیست “سفارشات” ارجاع داده شده است.

lookup
بعد از فعال کردن پاورفرم بر روی لیست سفارشات فرم زیر را مشاهده می کنید:

PowrForm Master
بعد از باز کردن دیزاینر فرم مربوط به لیست “سفارشات”، کوئری لیست را ایجاد کنید:

شرط کوئری در پاورفرم
توجه داشته باشید که در شرط گزینه Ignore Blank Criteria غیرفعال باشد. همچنین Type در حالت Lookup قرار گیرد.
نکته: شما به کمک این شرط می توانید آیتم های جزئیات مربوط به رکورد اصلی را نمایش دهید.
بعد از ساخت کوئری، به صفحه فرم رفته و کنترل DataEntryGrid را به فرم اضافه می کنیم.
در تب Value کوئری را به کنترل متصل کنید.

Query
حال به تب Extra بروید و فیلدهای مربوط به گرید را مشخص کنید.
برای این کار با زدن روی علامت سبز رنگ در قسمت Fields یک فیلد ایجاد می شود که باید در قسمت Name نام ستون لیستی که به آن کوئری زده اید را وارد کنید.
در اینجا ما نام سه ستون Title,Product,Quantity را وارد می کنیم.
برای پر کردن ستون لوکاپ باید در قسمت Values یک Field اضافه کنید و نام ستون لوکاپ را در Name قرار دهید و در Value عبارت {ParentID} را تایپ کنید.
با این کار بعد از هر بار ذخیره ی فرم شناسه آیتم اصلی برای تک تک آیتم های داخل گرید در ستون لوکاپ ست می شود.
نتیجه ی کار تا به این جا در تصویر زیر مشاهده می کنید.

Master Details
در فرم بالا مشاهده می کنید که یک آیتم اصلی به نام My New Order ثبت شده است که این سفارش شامل دو خط سفارش بوده است که در گرید اضافه کرده ایم.
حال با ذخیره ی فرم دو ردیف در لیست خطوط سفارشات ایجاد می شود که هر دوی این ردیف به کمک لوکاپ به لیست سفارشات وصل شده است.

list Details
در پست بعدی توضیح خواهم داد که چگونه در گرید خطوط سفارشات نام محصولات را از لیست محصولات فراخوانی کنید و نیازی به تایپ نام محصولات نداشته باشید.
محصول جدید فروشگاه شیرپوینتک: فارسی ساز شیرپوینت 2016 به همراه تقویم شمسی