هنگامی که یک فرم در زی فریم ساخته می شود، اگر این فرم بر اساس یک جدول ساخته شده باشد، زی فریم به ازای هر فیلد از جدول یک کنترل به صورت خودکار درون فرم می سازد. اما اگر بر اساس جدول ساخته نشده باشد لازم است تا درون زی فریم کنترل های مورد نیاز تعریف شوند. برای دسترسی به کنترل های تعریف شده درون فرم یا ایجاد یک کنترل جدید می توان به قسمت Control مراجعه نمود. به همین منظور، پس از کلیک بر روی علامت + در کنار فرم و باز کردن فهرست اجزای تشکیل دهنده آن، بر روی اولین گزینه ای که مشاهده می شود (Controls) کلیک نمایید. این گزینه شامل لیست کنترل هایی است که بر اساس جدول انتخابی در زی فریم ساخته شده است؛ به صورت پیش فرض تمامی کنترل ها از جنس Text Box هستند.
بر روی نوار ابزار بالای این فرم گزینه هایی وجود دارد که می توان از آن جهت ذخیره اطلاعات، اضافه و یا حذف یک کنترل به فرم و همچنین جستجو استفاده کرد.
جهت مدیریت کردن هر یک از کنترلها می توان بر روی آن کنترل کلیک راست نموده تا منوی زیر ظاهر شود.
یکی از مهمترین گزینه ها در این منو گزینهControl Type است که در آن 28 نوع کنترل تعبیه شده است. هر یک از این کنترلها به نحو ویژه ای امکان دریافت اطلاعات از کاربر را فراهم می کنند. به عنوان مثال می توان با تعیین نوع کنترل مشخص کرد که کاربر بتواند اطلاعات را به صورت یک متن وارد کند، بتواند اطلاعات را به صورت یک فایل وارد کند، بتواند یک گزینه از بین گزینه های موجود انتخاب کند و یا چند گزینه از بین گزینه های موجود انتخاب کند و ....
با انتخاب هر کدام از گزینه ها نوع کنترل جاری تبدیل به کنترل انتخابی کاربر خواهد شد. در زیر می توان فهرست انواع کنترل های از پیش طراحی شده در زی فریم را مشاهده نمود. لازم به ذکر است که زی فریم محدود به این کنترل ها نبوده و نیست، چرا که توسعه دهنده ای که با کدنویسی آشنا باشد می تواند کنترل های دلخواه خود را ساخته و در پروژه ها استفاده نماید.
ListBox | CheckBoxList | LookupTableBox | Hidden |
DropdownTree | RadioButtonList | FindObjectBox | TextBox |
Chart | Form | GridView | DataCombo |
Menu | DownloadObject | File | CheckBox |
FlatTree | SearchText | Button | Option |
ClientButton | Label | Tree | DateBox |
CustomControl | TextEditor | Image | TextArea |
Hidden - TextBox - DataCombo - CheckBox - Option - DateBox - TextArea - LookUpTable - FindObjectBox
از این کنترل برای ایجاد یک کنترل پنهان یا Hidden Control در فرم استفاده می¬شود. زمانی که در زی فریم از این کنترل استفاده شود، نوع آن در خروجی HTML نیز Hidden خواهد بود و مقادیر کاربردی (که باید از دید کاربر پنهان باشد) در آن ذخیره و بازیابی می گردد. همچنین برای مدیریت این کنترل می توان آن را با یک کلیک انتخاب نمود تا پنجره Properties در سمت راست ظاهر شود. در این پنجره تمامی خصوصیت های لازم جهت مدیریت و سفارشی سازی کنترل قرار داده شده است.
از این کنترل زمانی استفاده می شود که لازم است کاربر بتواند یک متن در فرم وارد کند. در واقع این کنترل در خروجی از تگ Input استفاده می کند. عملکرد خصوصیت Developer Tag در این کنترل به صورت زیر است.
یکی از مهمترین کاربردهایی که این خصوصیت دارد تعیین قالب ورودی اطلاعات است. برای مثال زمانی که نیاز به دریافت اطلاعات مربوط به کارت بانکی 16 رقمی با ساختاری مشابه 3320-9999-8888-6050 باشد، برای آن که کاربر زمان درج اطلاعات راحت تر بتواند 16 رقم را وارد کند، از چنین فرمتی برای ورود اطلاعات استفاده می شود.
0000 – 0000 – 0000 - 0000
به عبارت دیگر، زمانی که کاربر مشغول ثبت داده ها است، سیستم چنین فرمتی را برای اطلاعات ورودی در نظر می گیرد. در نتیجه وقتی کاربر 16رقم 6050888899993320 را وارد کند، در صفحه نمایش آن را به صورت 3320-9999-8888-6050 مشاهده خواهد کرد.
مهم ترین خصوصیت در این کنترل، خصوصیتDataSource است که از آن برای بارگذاری اقلام اطلاعاتی داخل این کنترل استفاده می شود. برای مثال اگر لیست انواع جنسیت مد نظر باشد، باید داخل جدولی با عنوانGender ، اقلام اطلاعاتی مانند آقا و خانم وجود داشته باشد تا مقدار DataSource برابر با چنین عباراتی قرار داده شود.
در نتیجه مقادیر واکشی شده از بانک اطلاعاتی داخل این کنترل نمایش داده می شود.
در کد فوق دو عدد اقلام اطلاعاتی Gender_ID و Gender_Title از جدول واکشی شده است. مقدار اول به عنوان کلید استفاده شده و به کاربر نمایش داده نمی شود، اما مقدار دوم همان اطلاعاتی است که به عنوان خروجی به کاربر نمایش داده می شود.
از این کنترل زمانی استفاده می شود که لازم است کاربر وضعیت یک مقدار دوگانه را تعیین کند. به عنوان مثال فعال یا غیرفعال بودن، باز یا بسته بودن، تسویه یا عدم تسویه و ...
از این کنترل زمانی استفاده می شود که لازم است کاربر از بین چند گزینه تنها یکی از آنها را انتخاب نماید. به عنوان مثال تعیین جنسیت (خانم یا آقا)، تعیین نقش (دانشجو یا فارغ التحصیل یا استاد) و غیره.
اگر در برنامه برای دریافت اطلاعاتی نظیر تاریخ تولد از کاربر نیاز به نمایش یک تقویم باشد، می توان از کنترل Date Box استفاده نمود. مهمترین خصوصیت این کنترل Developer Tag است و دیگر خصوصیات آن calendar type است.
Calendar Type:
درون خصوصیت Calendar Type این کنترل گزینه های زیر به صورت پیش فرض قرار داده شده است.
با انتخاب هر کدام از گزینه ها می توان مبنای نمایش تاریخ را به قمری، شمسی و میلادی تغییر داد.
زمانی که در برنامه نیاز به کنترلی باشد که در آن کاربر متنی چند خطی (همچون توضیحات، مشروح اخبار و ...) را وارد نماید از این کنترل استفاده می شود. تمامی خصوصیات این کنترل همانند کنترلText Box است.
این کنترل یکی از کنترل های پیچیده و بسیار کاربردی در زی فریم بوده که در واقع یک کنترل سفارشی شده است. چنانچه توسعه دهنده بخواهد کنترلی ایجاد کند که وقتی کاربر کد ملی یک شخص را وارد کرد، اطلاعات مربوط به نام، نام خانوادگی و ... شخص مورد نظر نمایش داده شود، از این کنترل استفاده می شود. خصوصیات این کنترل در تصویر زیر آمده است.
جهت استفاده از کنترل Lookup Table Box ابتدا باید این کنترل به فرم مورد نظر اضافه شود. می توان در همان ابتدا جهت سهولت مشاهده، مقدار خصوصیتCaption را برابر با "اطلاعات شخص" قرار داد. سپس کدی مشابه کد زیر برای دسترسی به داده های مرتبط با نام، نام خانوادگی و کد ملی افراد در قسمتDataSource نوشته می شود. توجه شود که فیلد اول در کد نوشته شده (Person_ID) به عنوان کلید استفاده شده و در خروجی نشان داده نخواهد شد.
SELECT dbo.Person.Person_ID
, dbo.Person.NationalNumber
, dbo.Person.FName
, dbo.Person.Lname
FROM dbo.Person
با این کار کنترل ایجاد شده در خروجی به شکل زیر نمایان می گردد.
همانطور که مشاهده می شود عملکرد این کنترل به این صورت است که اگر کاربر اطلاعات کد ملی را وارد نماید و بر روی دکمه ENTER بزند، اطلاعات مربوط به نام و نام خانوادگی در فیلدهای مربوطه پر خواهد شد. در این کنترل دکمه ای نیز برای هدایت کاربر به یک فرم دیگر جهت انتخاب شخص مورد نظر وجود دارد. این دکمه زمانی کاربرد دارد که فرمی برای این کار ساخته شده باشد. در غیر این صورت خصوصیتی وجود دارد به عنوان Show Find Form که اگر مقدار آن برابر با Disable قرار داده شود، دیگر این دکمه ظاهر نخواهد شد. اما اگر استفاده از یک فرم دیگر مد نظر باشد، باید مقداری برای خصوصیت Related Form در نظر گرفت. برای این کار باید بر روی دکمه Select کلیک شده تا پنجرهAccess Form ظاهر شود.
حال می توان از داخل این پنجره، فرم مورد نظر را برای برقراری ارتباط انتخاب نمود.
این کنترل یکی از کنترل های پرکاربرد است که به کاربر این امکان را می دهد تا به راحتی اطلاعات مورد نظر خود را از میان انبوهی از رکوردها انتخاب نماید. برای مثال اگر در یک سامانه مدیریت انبارها حدود 200 انبار وجود داشته باشد و کاربر بخواهد یک انبار را از میان آنها انتخاب نماید. با وارد کردن یک واژه، سیستم لیستی از تمامی انبارهایی که آن واژه درون اسم آنها به کار رفته است را نمایش می دهد تا کاربر به راحتی از میان آنها انتخاب نماید. برای تعریف این نوع از کنترل، درون خصوصیتDataSource کنترل کدی مشابه کد زیر وارد می شود.
با استفاده از این کد به کاربر این اجازه داده می شود تا انبار مورد نظر را بر اساس عنوان انبار انتخاب نماید. هنگامی که کاربر داخل این کنترل واژه ای وارد کند مانند واژه "مرکزی"، لیست تمامی انبارهایی که واژه "مرکزی" در آنها وجود دارد نمایان می شود و کاربر می تواند انبار مورد نظر خود را انتخاب نماید.
در این کنترل نیز همانند کنترل LookupTableBox خصوصیتی با عنوانRelated Form وجود داردکه دقیقا همان کارایی را دارد.
GridView - File- Button - Tree - Image - CheckBoxList
کنترل GridView برای نمایش Grid است که در تصویر زیر یک نمونه از خروجی آن مشاهده می شود.
مقداری که در خصوصیت DataSource (یعنی Query دیتابیسی) برای این کنترل در نظر گرفته می شود توسط برنامه اجرا شده و مقدار خروجی، داخل این کنترل نمایش داده خواهد شد. یکی دیگر از قابلیت های این کنترل آن است که به سادگی می توان در داخل هر فیلد کنترل مورد نظر را نیز قرار داد.
از کنترل File برای ذخیره فایل های بارگذاری شده از سمت کاربر استفاده می شود.
با استفاده از این کنترل می توان فایل های دریافتی از سمت کاربر را در داخل بانک اطلاعاتی و همچنین داخل Application Server به صورت ساختار یافته ذخیره نمود.
روش ذخیره فایل به صورت ساختار یافته در Application Server:
داخل فایل zf.configdata در پروژه اجرایی، خصوصیتی با عنوان filedatabasepath وجود دارد. در صورتی که این خصوصیت مقدار دهی شده باشد، اطلاعات داخل این مسیر ذخیره سازی خواهد شد، در غیر این صورت داخل پوشه FileDataBaseContent اطلاعات ذخیره می گردد.
مدل ذخیره سازی:
پوشه اول همنام با نام فرم ذخیره می شود و داخل این پوشه، پوشه ای دیگر همنام با نام کنترل ساخته خواهد شد (اگر نام فرم مورد نظرUser و نام کنترل برابر با User_Image باشد، یک پوشه با نامUser و درون آن یک پوشه با نامUser_Image ساخته می شود.) هنگام ذخیره کردن اطلاعات، زمانی که کاربر یک فایل را Upload کند، زی فریم داده این کنترل را با مقدار کلید اصلی فرم (اولین کنترل موجود در هر فرم، کلید اصلی آن فرم محسوب می شود) و با پسوند DAT ذخیره می کند. البته این فرایند در صورتی رخ می دهد که توسعه دهنده نحوه ذخیره سازی را در خصوصیت Save In File = Enable انتخاب کرده باشد. در غیر این صورت، اطلاعات با استفاده از کد ذخیره سازی Sql داخل بانک اطلاعاتی ذخیره می شود.
برای انجام یک پردازش سمت سرور می توان یک دکمه با استفاده از کنترل Button ایجاد نمود. زمانی که بر روی این دکمه کلیک شود رویداد مورد نظر توسعه دهنده (به عنوان مثال ثبت اطلاعات فرم) رخ خواهد داد.
در کنترل Button چند رفتار پرکاربرد درون خصوصیتDefault Behavior به صورت پیشفرض قرار داده شده است. این رفتارها شامل:
1. Navigate برای جابه جایی به یک آدرس استفاده می شود (آدرس مقصد باید درونDeveloper Tag نوشته شود)
2. Save عملی مشابه دکمه "ذخیره سازی" در نوار ابزار انجام می دهد.
3. New عملی مشابه دکمه "جدید" در نوار ابزار انجام می دهد.
4. Delete عملی مشابه دکمه "حذف" در نوار ابزار انجام می دهد.
5. Print عملی مشابه دکمه "چاپ" در نوار ابزار انجام می دهد.
6. Grid Object To Excel برای گرفتن خروجی اکسل استفاده می شود. این گزینه عملی مشابه دکمه "Excel Report" در نوار ابزار انجام می دهد.
7. Custom Excel Report برای گرفتن خروجی اکسل استفاده می شود. این گزینه عملی مشابه دکمه "Excel Report" در نوار ابزار انجام می دهد.
این کنترل برای نمایش ساختار درختی در پروژه به کار می رود. زمانی که توسعه دهنده بخواهد داده ای را به صورت سلسله مراتبی به کاربر نمایش دهد، از این کنترل استفاده خواهد کرد. تنها با نوشتن یک کد ساده، زی فریم اطلاعات را به صورت مطلوب در اختیار کاربر قرار داده و کاربر می تواند گزینه مورد نظر خود را انتخاب نماید. برای واکشی اطلاعات از بانک اطلاعاتی و نمایش آنها داخل کنترل مورد نظر، کد SQL زیر داخل خصوصیتDataSource کنترل نوشته می شود.
جدولی که در دیتابیس ساخته می شود نیز باید ساختار درختی داشته باشد تا بتوان از آن در کنترل Tree استفاده نمود. به عنوان مثال ساختار درختی جدول استانها و شهرهای ایران به شکل زیر است.
نمایی از خروجی کنترل در تصویر زیر نمایش داده شده است.
برای نمایش تصویر در خروجی (به عنوان مثال نمایش عکس پرسنل یا نمایش تصاویر بارگذاری شده توسط کاربر) از کنترل Image استفاده می شود. تصویر مورد نظر می تواند بر اساس یک محتوای ذخیره شده داخل بانک اطلاعاتی باشد، یا مربوط به یک داده ذخیره شده داخل فرمی دیگر و یا داخل همین فرم جاری باشد.
در این کنترل دو خصوصیت مهم وجود دارد:
• Reference Form
• Reference Field
اگر اطلاعات در همین فرم جاری ذخیره گردد دیگر نیازی به مقداردهی به خصوصیت Reference Form نیست. اما امکان دارد در پروژه ای یک فرم برای ثبت اطلاعات کاربر (Reference Form) و یک فرم برای نمایش اطلاعات ایجاد شده باشد و تصویر نمایش داده شده در فرم دوم از فرم اول (Reference Form) استخراج شود. داده یا فایل مورد نظر داخل یک کنترل در فرم اول ذخیره می گردد که به آن Reference Field گفته می شود. این کنترل باید از نوع کنترل File باشد.
با استفاده از این کنترل می توان مجموعهای از چک باکس ها (Check Box) را به کاربر نشان داد تا بر اساس انتخاب کاربر اطلاعات مورد نظر در بانک اطلاعاتی ذخیره شود.
برای نمونه فرض شود که توسعه دهنده می خواهد در یک فرم مربوط به تعریف کاربر، لیست گروه های کاری نمایش داده شود تا بتوان برای کاربر مورد نظر مشخص نمود که به کدام یک از گروه های کاری دسترسی داشته باشد.
کنترل Checkbox list با کنترل کلیدی فرم در ارتباط است. به طور استاندارد اولین کنترل موجود در فرم کنترل کلید بوده که از جنس Hidden است. در فرم جاری یک کنترل کلید با نام SYS_USER_ID ساخته می شود.
در مرحله اول سامانه با استفاده از کوئری درج شده در خصوصیت Query DataSource کلیه مقادیری که باید نمایش دهد را واکشی می کند. در مرحله دوم مقادیری که انتخاب شده اند را واکشی کرده و تیک می زند. در مرحله سوم هنگام ذخیره اطلاعات، Query Delete بر اساس کلید فرم اجرا می شود. در مرحله چهارم مقادیری که کاربر درون فرم تیک زده است در بانک اطلاعاتی ذخیره می گردد.
RadioButtonList - Form - DownloadObject - SearchText - Label - TextEditor - ListBox DropDownTree - Chart - Menu - FlatTree - ClientButton - CustomControl
این کنترل همانند کنترلCheckbox List است، با این تفاوتکه خصوصیات Query Delete و Update در آن وجود ندارد. این موضوع به این دلیل است که کاربر فقط می¬تواند یک مقدار را انتخاب کند و آن گزینه توسط Query ذخیره سازی فرم در بانک اطلاعاتی می¬نشیند.
یکی از مهم ترین قابلیت های زی فریم استفاده از فرم ها به صورت تو در تو (Nested) است. این کنترل زمانی کاربرد دارد که در پروژه یک فرم ساخته شده باشد و کاربر بخواهد از این فرم درون فرم دیگری استفاده کند.
برای مثال در حالتMaster/Detail زمانی که در پروژه یک فرم والد وجود داشته باشد و توسعه دهنده بخواهد داخل این فرم لیستی از اطلاعات دیگر (مانند فرم فاکتور) که مربوط به همین رکورد است را نمایش دهد، از قابلیت کنترل Form استفاده می شود.
فاکتور علاوه بر اطلاعات پایه در Header، می تواند دارای اقلام اطلاعاتی دیگری نیز باشد که با استفاده از کنترل Form می توان این جزئیات اطلاعاتی را به شکل ساختار زیر حذف و اضافه نمود.
برای ساختن چنین فرمی ابتدا باید فرم مقصد و یا فرم زیر مجموعه در سیستم ساخته شده باشد. ساختار فرم زیر مجموعه آورده شده در تصویر بالا به شکل تصویر زیر است.
فرایند مربوط به ذخیره سازی با استفاده از قسمت Action Query صورت می پذیرد (برای دسترسی به Action Query، روی فرم کلیک راست کرده و سومین گزینه "Action Query" انتخاب می شود. در ادامه توضیحات بیشتر داده خواهد شد.) در فرم والد، برای کنترل اطلاعات و دسترسی کد زیر در خصوصیتDataSource ثبت می شود.
از طریق خصوصیتRelated Form از بین لیست فرم ها، فرم مورد نظر همانند تصویر زیر انتخاب می شود.
این کنترل برای دانلود کردن محتوایی که قبلا در سامانه بارگذاری شده است کاربرد دارد و باید رابطه ای منطقی با موجودیت قابل دانلود در سامانه تعریف شود.
همانگونه که در قسمت کنترل File توضیح داده شد، برای بارگذاری اطلاعات از این کنترل استفاده می شود و در مقابل برای دانلود محتوا باید از کنترلDownloadObject استفاده شود.
در میان خصوصیات این کنترل نیز خصوصیات Reference Form و Reference Field مانند کنترل Image مشاهد می شود که دارای همان ساختار بوده و به منظور اجرای عملیات دانلود، با کلید اصلی فرم نیز در ارتباط هستند.
اما در این کنترل، خصوصیت متفاوتی با عنوانDefault File Type مشاهده می شود که با استفاده از آن می توان نوع فایل قابل دانلود را تعریف نمود. همانطور که در تصویر مشاهده می شود، مقدار این خصوصیت برابر با pdf قرار داده شده است تا با کلیک بر روی لینک دانلود، تنها فایلهای با پسوندPDF قابل قابل دانلود باشد.
این کنترل دقیقا همانند کنترل FindObjectBox عمل می کند، با این تفاوت که دکمه ای برای پیداکردن فرم مرجع در کنار Textbox خروجی وجود ندارد (خروجی فقط یکTextBox است که با تایپ کردن بخشی از گزینه مورد نظر، تمام گزینه هایی که آن عبارت در آنها وجود دارد پیشنهاد می شود.)
زمانی که توسعه دهنده بخواهد یک متن و یا داده را به کاربر نمایش دهد، بدون آنکه کاربر بتواند آن داده را تغییر دهد از کنترل Label استفاده می شود. خصوصیات این کنترل دقیقا همانند کنترل Textbox است.
زمانی که در یک پروژه نیاز به یک کنترل با توانایی ویرایش متن باشد، می توان از این کنترل استفاده نمود. خصوصیات این کنترل همانند Text Aria و Textbox است.
از این کنترل برای نمایش یک لیست استفاده می شود. به منظور استفاده و نمایش اطلاعات باید خصوصیت DataSource این کنترل مقدار دهی شود. در تصویر زیر نمونه ای از خروجی کنترلListbox مشاهده می شود.
این کنترل همانند کنترل Treeview است با این تفاوت که ابتدا یک دراپ داون نمایش داده شده تا پس از باز کردن آن توسط کاربر، لیست اقلام اطلاعاتی به صورت ساختار درختی مشاهده شود.
این کنترل برای نمایش اطلاعات با فرمت نمودار استفاده می شود.
این کنترل با توجه به مقداری که در DataSource نوشته شود، ساختار منو می سازد که با استفاده از کدهای جاوا اسکریپت می توان آن را مدیریت نمود.
این کنترل همانند دیگر کنترل های Treeview عمل می کند، با این تفاوت که تمامی اطلاعات داخل یک باکس نمایش داده می شود.
این کنترل تنها برای انجام دادن کار و یا یک فرایند در سمت کلاینت قابل استفاده است. برای این منظور باید کدهای جاوا اسکریپت مربوطه برای این کنترل نوشته شود. این کنترل از کنترل های بسیار پرکاربرد بوده که از کاربردهای آن می توان به فراخوانی سرویس ها و مدیریت برخی رویدادها در سمت کلاینت اشاره نمود.
در زی فریم قابلیتی وجود دارد که به توسعه دهندگان این امکان را می دهد تا کنترل مورد نیاز برای کسب و کار و پروژه خود را ایجاد کنند. برای ایجاد اینگونه کنترل های سفارشی نیاز است تا توسعه دهنده مجهز به دانش برنامه نویسی با زبان برنامه نویسی جاوا باشد.
گروه توسعه زیر ساخت نرم افزاری زی با نام تجاری Zframe، با بهره گیری از نیروهای متخصص و مجرب با رویکردی نوآورانه از سال 1387 فعالیت خود را آغاز و اقدام به تولید نرم افزار قدرتمند زی فریم نمود.
زی فریم به عنوان یک محصول نرم افزاری (DSL) در واقع همچون یک خط تولید نرم افزار است که با استفاده از آن می توان به سرعت، بدون نیاز به تسلط به دامنه وسیعی از تکنولوژی ها، یک نرم افزار مبتنی بر وب کارا، امن و یکپارچه تولید نمود.