کنترل های مرتبط (Related Control) در زی فریم به کنترل هایی گفته می شود که وابسته به یک کنترل دیگر عمل می کنند.
فرض کنید می خواهیم با استفاده از زی فریم یک سیستم فروشگاهی بسازیم که اگر کاربر نام فروشگاه را انتخاب کرده باشد، فقط کالا های موجود آن فروشگاه به کاربر نمایش داده شود.
در اینجا دو نمونه از نمایش کنترل های مرتبط (Related Control)را به شما نمایش داده ایم:

زی فریم
زی فریم

در این مثال نام فروشگاه یک کنترل از نوع کمبو (combo data) است که اگر نام فروشگاه را ال جی انتخاب کنید، در قسمت نام کالا فقط کالا های مربوط به فروشگاه ال جی نمایش داده میشود.

در ابتدا یک دیتابیس بسازید.(نام این دیتابیس را Store و یا هر نام دلخواه دیگری که میخواهید قرار دهید.)
(برای یادگیری نحوه ی ساخت دیتابیس در MSSQL به آموزش ساخت دیتابیس در MSSQL مراجعه کنید.)
در دیتابیس جدول های مورد نیاز خود را بسازید.
(برای یادگیری نحوه ی ساخت جدول در MSSQL به آموزش ساخت جدول در MSSQL مراجعه کنید.)
در این مثال به 3 جدول برای ذخیره نام فروشگاه ها، ذخیره کالاها و ذخیره سفارشات نیاز داریم. بنابراین سه جدول با نامهای store ، item و request (و یا هر نام دلخواه دیگری)به شکل زیر تعریف می کنیم.

جدول store
زی فریم
جدول item
زی فریم
جدول request
زی فریم

وارد نرم افزار زی فریم شوید.
یک اپلیکیشن جدید با دیتابیسی که ساخته اید تعریف کنید.
(برای یادگیری نحوه ی ساخت اپلیکیشن در زی فریم به آموزش ساخت اپلیکیشن در زی فریم مراجعه کنید.)
بر اساس هر یک از جدول هایی که ساخته شده است یک فرم بسازید.
(برای یادگیری نحوه ی ساخت فرم بر اساس جدول در زی فریم به آموزش ساخت فرم بر اساس جدول در زی فریم مراجعه کنید.)
فرم های خود را در پنجره Forms می توانید مشاهده کنید.
همان طور که مشاهده می کنید سه فرم frmitem ، frmstore و frmrequest توسط زی فریم ایجاد شد.
زی فریم

اکنون نوبت به سفارشی سازی فرم هایی که ساخته اید رسیده است.


فرم frmstore

سفارشی سازی کنترل store_name :

Caption این کنترل را تغییر دهید، در این مثال مقدار آن را برابر با (نام فروشگاه) قرار داده ایم.
زی فریم

در نهایت فرم frmstore ما به این شکل است.
زی فریم

فرم frmitem

سفارشی سازی کنترل store_id :

Caption این کنترل را تغییر دهید، در این مثال مقدار آن را برابر با (نام فروشگاه) قرار داده ایم.

برای آنکه برای انتخاب نام فروشگاه لیستی از نام فروشگاه های تعریف شده داشته باشید، مقدار Control type این کنترل را برابر با data combo قرار دهید.

سپس در قسمت Data Sourse از جدول store ، فیلدهای Store_id و سپس store_name را اضافه کنید.
زی فریم

سفارشی سازی کنترل item_name :

Caption این کنترل را تغییر دهید، در این مثال مقدار آن را برابر با (نام کالا) قرار داده ایم.


سفارشی سازی کنترل item_price :

Caption این کنترل را تغییر دهید، در این مثال مقدار آن را برابر با (قیمت کالا) قرار داده ایم.

در نهایت فرم frmitemما به این شکل است.
زی فریم

 

فرم frmrequest

سفارشی سازی کنترل store_id :

در این کنترل همانند کنترل store_id در فرم frmitem عمل می کنیم.

Caption این کنترل را تغییر دهید، در این مثال مقدار آن را برابر با (نام فروشگاه) قرار داده ایم.

برای آنکه همانند فرم frmitem برای انتخاب نام فروشگاه لیستی از نام فروشگاه های تعریف شده داشته باشید، مقدار Control type این کنترل را برابر با data combo قرار دهید.

و از قسمت Data Sourse از جدول store ، فیلدهای Store_id و سپس store_name را اضافه کنید.
زی فریم


ساخت Related Control

فرض کنید میخواهیم کنترل item_id را به یک related control تغییر دهیم. حال بدین منظور مراحل زیر را انجام دهید:

سفارشی سازی کنترل item_id :

Caption این کنترل را تغییر دهید، در این مثال مقدار آن را برابر با (نام کالا) قرار داده ایم.

برای آنکه آیتم های پیشنهادی با توجه به نام فروشگاه نمایش داده شوند،Control type این کنترل را برابر با FindObjectBox قرار دهید.

در قسمت Data Sourse از جدول item ، فیلدهای item_id و سپس item_name را اضافه می کنیم.

در قسمت related condition query از جدول item ، فیلدهای item_id و سپس item_name را اضافه کرده و سپس کد زیر را در ادامه ی قسمت query اضافه کنید.

در این مثال

 
WHERE dbo.item.item_name LIKE @STRCODE AND store_id = @lngstore_id

 

dbo.item.item_name همان فیلدی است که می خواهیم به ما نمایش داده شود.

store_id نام کنترل combo data در فرم frmitem است.

در @lngstore_id ، نیز store_id نام کنترل مرتبط در همین فرم است .

زی فریم

 

در قسمت related control نام کنترل مرتبط یعنی store_id را وارد کنید.

در قسمت related form یک فرم جدید توسط دکمه (New Form By Design) بسازید. ما در این مثال فرمی به نام frmview item ساخته ایم.

برای یادگیری نحوه ی ساخت فرم بدون جدول در زی فریم به آموزش ساخت فرم بدون جدول در زی فریم مراجعه کنید.

در قسمت Form Data Source فرم، تمام فیلد های جدول item را اضافه می کنیم.

در قسمت Grid Data Source فرم از جدول item، فیلدهای item_id و item_name را اضافه کنید و پس از آن کد زیر را در ادامه قسمت query قرار دهید.

 

WHERE store_id = @lngZPPA1

 

زی فریم


سفارشی سازی کنترل Count :

Caption این کنترل را تغییر دهید، در این مثال مقدار آن را برابر با (تعداد) قرار داده ایم.

در نهایت فرم ما به این شکل خواهد بود.
زی فریم

 

در قسمت Workflow Management فرم های خود را وارد کنید.

زی فریم

 

برای نمایش یک خروجی در سایت، فرم های خود را با داده های دلخواه پر کنید.

لیست کالا های ما به شکل زیر است.
زی فریم

 

حال اگر وارد فرم request شوید و فروشگاه را ال جی انتخاب کنید زمانی که تلویزیون را در قسمت نام کالا بنویسید، لیست تلویزیون های فروشگاه ال جی را به شما نمایش می دهد.
زی فریم

 

ولی اگر اسنک را در این قسمت بنویسید به دلیل آنکه در فروشگاه ال جی کالایی با نام اسنک وجود ندارد، هیچ اسمی به کاربر نمایش نمی دهد.
زی فریم

 

اما اکنون اگر نام فروشگاه رو به چیتوز تغییر دهید، تمام اسنک های این فروشگاه نمایش داده می شوند.
زی فریم

 

تمامی مراحل یاد شده را می توان به طور خلاصه در تصویر زیر مشاهده نمود.

زی فریم
best tracker