GridView - File- Button - Tree - Image - CheckBoxList
کنترل GridView
کنترل GridView برای نمایش Grid است که در تصویر زیر یک نمونه از خروجی آن مشاهده می شود.
مقداری که در خصوصیت DataSource (یعنی Query دیتابیسی) برای این کنترل در نظر گرفته می شود توسط برنامه اجرا شده و مقدار خروجی، داخل این کنترل نمایش داده خواهد شد. یکی دیگر از قابلیت های این کنترل آن است که به سادگی می توان در داخل هر فیلد کنترل مورد نظر را نیز قرار داد.
کنترل File
از کنترل File برای ذخیره فایل های بارگذاری شده از سمت کاربر استفاده می شود.
با استفاده از این کنترل می توان فایل های دریافتی از سمت کاربر را در داخل بانک اطلاعاتی و همچنین داخل Application Server به صورت ساختار یافته ذخیره نمود.
روش ذخیره فایل به صورت ساختار یافته در Application Server:
داخل فایل zf.configdata در پروژه اجرایی، خصوصیتی با عنوان filedatabasepath وجود دارد. در صورتی که این خصوصیت مقدار دهی شده باشد، اطلاعات داخل این مسیر ذخیره سازی خواهد شد، در غیر این صورت داخل پوشه FileDataBaseContent اطلاعات ذخیره می گردد.
مدل ذخیره سازی:
پوشه اول همنام با نام فرم ذخیره می شود و داخل این پوشه، پوشه ای دیگر همنام با نام کنترل ساخته خواهد شد (اگر نام فرم مورد نظرUser و نام کنترل برابر با User_Image باشد، یک پوشه با نامUser و درون آن یک پوشه با نامUser_Image ساخته می شود.) هنگام ذخیره کردن اطلاعات، زمانی که کاربر یک فایل را Upload کند، زی فریم داده این کنترل را با مقدار کلید اصلی فرم (اولین کنترل موجود در هر فرم، کلید اصلی آن فرم محسوب می شود) و با پسوند DAT ذخیره می کند. البته این فرایند در صورتی رخ می دهد که توسعه دهنده نحوه ذخیره سازی را در خصوصیت Save In File = Enable انتخاب کرده باشد. در غیر این صورت، اطلاعات با استفاده از کد ذخیره سازی Sql داخل بانک اطلاعاتی ذخیره می شود.
کنترل Button
برای انجام یک پردازش سمت سرور می توان یک دکمه با استفاده از کنترل 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" در نوار ابزار انجام می دهد.
کنترل Tree
این کنترل برای نمایش ساختار درختی در پروژه به کار می رود. زمانی که توسعه دهنده بخواهد داده ای را به صورت سلسله مراتبی به کاربر نمایش دهد، از این کنترل استفاده خواهد کرد. تنها با نوشتن یک کد ساده، زی فریم اطلاعات را به صورت مطلوب در اختیار کاربر قرار داده و کاربر می تواند گزینه مورد نظر خود را انتخاب نماید. برای واکشی اطلاعات از بانک اطلاعاتی و نمایش آنها داخل کنترل مورد نظر، کد SQL زیر داخل خصوصیتDataSource کنترل نوشته می شود.
SELECT DBO.TreeStructure.ID
, DBO.TreeStructure.Parent_ID
, DBO.TreeStructure.ProvinceCity
FROM DBO.TreeStructure
جدولی که در دیتابیس ساخته می شود نیز باید ساختار درختی داشته باشد تا بتوان از آن در کنترل Tree استفاده نمود. به عنوان مثال ساختار درختی جدول استانها و شهرهای ایران به شکل زیر است.
• فیلد اول کلید جدول است.
• فیلد دوم باید کد والد باشد.
• فیلد سوم مقدار نام های قابل نمایش است.
• هیچ کدام از مقادیر اول و دوم نبایدNULL باشد.
نمایی از خروجی کنترل در تصویر زیر نمایش داده شده است.
کنترل Image
برای نمایش تصویر در خروجی (به عنوان مثال نمایش عکس پرسنل یا نمایش تصاویر بارگذاری شده توسط کاربر) از کنترل Image استفاده می شود. تصویر مورد نظر می تواند بر اساس یک محتوای ذخیره شده داخل بانک اطلاعاتی باشد، یا مربوط به یک داده ذخیره شده داخل فرمی دیگر و یا داخل همین فرم جاری باشد.
در این کنترل دو خصوصیت مهم وجود دارد:
• Reference Form
• Reference Field
اگر اطلاعات در همین فرم جاری ذخیره گردد دیگر نیازی به مقداردهی به خصوصیت Reference Form نیست. اما امکان دارد در پروژه ای یک فرم برای ثبت اطلاعات کاربر (Reference Form) و یک فرم برای نمایش اطلاعات ایجاد شده باشد و تصویر نمایش داده شده در فرم دوم از فرم اول (Reference Form) استخراج شود. داده یا فایل مورد نظر داخل یک کنترل در فرم اول ذخیره می گردد که به آن Reference Field گفته می شود. این کنترل باید از نوع کنترل File باشد.
کنترل CheckBoxList
با استفاده از این کنترل می توان مجموعهای از چک باکس ها (Check Box) را به کاربر نشان داد تا بر اساس انتخاب کاربر اطلاعات مورد نظر در بانک اطلاعاتی ذخیره شود.
نحوه عملکرد
برای نمونه فرض شود که توسعه دهنده می خواهد در یک فرم مربوط به تعریف کاربر، لیست گروه های کاری نمایش داده شود تا بتوان برای کاربر مورد نظر مشخص نمود که به کدام یک از گروه های کاری دسترسی داشته باشد.
کنترل Checkbox list با کنترل کلیدی فرم در ارتباط است. به طور استاندارد اولین کنترل موجود در فرم کنترل کلید بوده که از جنس Hidden است. در فرم جاری یک کنترل کلید با نام SYS_USER_ID ساخته می شود.
SYS_USER_ID در Query های مربوط به این کنترل با شاخص KEY@ قابل دسترسی است.
در مرحله اول سامانه با استفاده از کوئری درج شده در خصوصیت Query DataSource کلیه مقادیری که باید نمایش دهد را واکشی می کند. در مرحله دوم مقادیری که انتخاب شده اند را واکشی کرده و تیک می زند. در مرحله سوم هنگام ذخیره اطلاعات، Query Delete بر اساس کلید فرم اجرا می شود. در مرحله چهارم مقادیری که کاربر درون فرم تیک زده است در بانک اطلاعاتی ذخیره می گردد.
در واقع این کنترل نیاز به چهار Query دارد
DataSource Query
این Query، مقادیر اصلی که باید بارگذاری شوند را واکشی میکند (یعنی تمامی گزینه ها برای نمایش)
SELECT SYS_USERGROUP_ID,USERGROUPNAME
FROM BUSINESS_DESK_MD.DBO.SYS_USERGROUP
Fill Queryبا این Query مقادیری که انتخاب شده اند، واکشی شده و checkbox مربوط به آن تیک می خورد.
SELECT SYS_USERGROUP_ID
FROM BUSINESS_DESK_MD.DBO.SYS_USERGROUPLIST
WHERE SYS_USER_ID =
در این قسمت زی فریم به صورت خودکار بعد از علامت مساوی مقدار کلید را جایگزین کرده و نیازی نیست توسعه دهنده چیزی بعد از مساوی درج نماید.
Update Query
با این Query اطلاعات مربوط به موارد انتخاب شده در سیستم ذخیره می شود.
INSERT INTO BUSINESS_DESK_MD.DBO.SYS_USERGROUPLIST
(SYS_USER_ID , SYS_USERGROUP_ID)
VALUES
( @KEY , @ID )
با اجرای کد فوق، سیستم فقط اطلاعاتی که تیک خورده را انتخاب کرده و در جدول ثبت می نماید.
Delete Query
با این Query تمامی موارد مربوط به کلید جاری حذف می شود.
DELETE FROM BUSINESS_DESK_MD.DBO.SYS_USERGROUPLIST
WHERE SYS_USER_ID =