• فرم فرزند چیست؟
  • مراحل ساخت فرم فرزند
یکی از اجزای تشکیل دهنده هر فرم، فرم فرزند (child form) است که این قابلیت را به هر فرم می دهد که بتواند درون خود و از طریق یک سری دکمه های تعریف شده مشابه با مثال تصویر ذیل، یک سری فرم های دیگر را هم داشته باشد. به این گونه فرم ها، فرم های فرزند گویند که نقش فرزند را برای فرم اصلی (والد) ایفا می کنند. از فرم فرزند زمانی استفاده می شود که بخواهیم جهت جلوگیری از شلوغی فرم اصلی و یا به دلیل کم ارتباط بودن آن اطلاعات با اطلاعات موجود در فرم اصلی، اطلاعات فرعی (فرزند) را در فضای دیگری به کاربر نشان دهیم.
زی فریم

 

برای درک بهتر کاربرد این گونه فرم ها، فرض کنید در یک پروژه فهرستی از دانش آموزان موجود است. برای مدیریت این فهرست که با یک جدول در ارتباط است، یک فرم وجود خواهد داشت. برای هر دانش آموز نیز چندین بخش مانند مدیریت مالی، مدیریت شرایط تحصیلی و ارتباط با والدین مورد نیاز است. با امکانی که فرم فرزند در اختیار توسعه دهنده می گذارد، می توان بعد از انتخاب هر دانش آموز برای ویرایش و در انتهای فرم، سه دکمه مشاهده نمود که هر کدام از این دکمه ها به فرمی برای مدیریت آن قسمت منتهی می شود.
در ادامه به نحوه ساخت یکی از این سه فرم پرداخته می شود. نحوه ساخت دیگر فرمهای فرزند نیز روندی مشابه خواهند داشت.

در ابتدا جداول مرتبط با فرم های اصلی و فرزند ساخته می شود. در شکل زیر جدول دانش آموز که فرم اصلی است آورده شده است:

 

زی فریم

 

برای فرم فرزند هم می توان چنین جدولی را در نظر گرفت. در ابتدا باید فیلد Student_ID به عنوان شناسه جدول به صورت auto increment تعریف شود. برای انجام این عمل می بایست این ستون ابتدا به عنوان کلید اصلی جدول تعریف شود. کافیست بر روی فیلد PARENT_ID کلیک راست کنید و سپس گزینه set primary key را انتخاب کنید. سپس در کادر پایین یا همان کادر column properties گزینه Identity Specification را جستجو کرده و is Identity آن را برابر با yes قرار دهید. با این کار، شروع شمارش به صورت خودکار از عدد یک آغاز می شود.

 

زی فریم

 

می توان برای فیلد Parent_Type یک view تعریف کرد که در آن دو رکورد وارد شده باشد. این رکوردها شامل پدر و مادر هستند. می بایست که برای عدم ایجاد مشکل هنگام نمایش در مرورگر، نوع متن داخل کادر مرتبط با فیلد عناوین، به زبان انگلیسی انتخاب شوند.

 

زی فریم

 

حال جداول را مطابق با آموزش های مقدماتی از SQL_Server به درون زی فریم واکشی کرده و سپس caption ها و نوع کنترل ها را تغییر می دهیم. در تصویر زیر فرم مرتبط با جدول PARENTS آمده است.

 

زی فریم

 

بهتر است مقادیر Student_ID در فرم والیدن در خروجی نمایش داده نشود. از آنجایی که فیلد Parent_Type مقادیرش را باید از View_Parent_Type بگیرد، بر query editor واقع در سمت راست کلیک کرده و مطابق تصویر زیر و از view ساخته شده، مقادیر استخراج را استخراج کنید.

 

زی فریم

 

فرم نهایی ساخته شده از جدول Student شبیه به تصویر زیر خواهد شد.

 

زی فریم

 

در ادامه، تمامی Action Query ها برای هر دو جدول باید ست شود. برای این کار کافیست در پنل فرم ها که در سمت چپ زی فریم قرار گرفته است، بر روی گزینه Action Query کلیک شود و در آنجا بر روی دکمه write all query واقع در پایین کادر مربوطه کلیک شود تا تمام کوئری های لازم برای فرایندهای ویرایش و حذف و ایجاد، به صورت خودکار نوشته شود (دکمه ذخیره فراموش نشود).
پس از ساخت فرم های لازم، وارد مرحله اصلی کار که همان ساخت فرم فرزند است می شویم. دکمه این فرم هم مانند Action Query در پنل فرم ها قرار گرفته است.

 

زی فریم

 

محیط حاضر محیط ساخت یک فرم فرزند است. در نوار ابزار این فرم چهار دکمه قرار داده شده است که به ترتیب برای ایجاد، ذخیره سازی و حذف فرم های فرزند به کار می روند. علاوه بر این سه دکمه، یک دکمه design query نیز قرار داده شده است که برای درج query لازم در قسمت Load Query قرار داده شده است (در ادامه درمورد Load Query توضیحات لازم داده خواهد شد).حال برای ساخت یک فرم فرزند باید در فیلد Child Form Name یک نام لاتین برای این فرایند در نظر گرفته شود. محیط فرم فرزند شبیه به تصویر ذیل است. در قسمت Caption هم می توان عنوانی به زبان فارسی و متناسب با کسب و کار مورد نظر درج نمود. از این نام برای دکمه مورد نظر نیز استفاده خواهد شد. در قسمت مربوط به Reference Form باید فرم PARENTS به عنوان فرم مقصد انتخاب گردد. بعد از آن می بایست در کادر Key Name، فیلد مورد استفاده برای ارتباط با فرم PARENTS انتخاب گردد. لذا از میان موارد موجود در این لیست، بر روی Student_ID کلیک می شود.

 

زی فریم

 

همچنین برای مشاهده فرم فرزند در فرم والد، باید بر روی Active checkbox کلیک نمایید تا به حالت تیک خورده تبدیل شود. در قسمت Load Query می بایست یک query درج شود که فهرست اطلاعات مورد نظر را بر اساس مقدار فیلد انتخاب شده نمایش دهد. همچنین این query به یک مساوی ختم می شود تا به وسیله آن زی فریم بتواند برای تکمیل مقدار query، از مقدار موجود در کنترلی که به عنوان Key Name انتخاب شده است، استفاده کند. برای کمک به کاربران، نمونه Query مناسب در قسمت query های کمکی واقع در منوی Help قرار داده شده است.

 
SELECT
DBO.COMPANY.COMPANY_ID,
DBO.COMPANY.DATE_OF_ESTABLISHMENT,
DBO.COMPANY.REGISTER_DATE,
DBO.COMPANY.REGISTERNUMBER
FROM
DBO.COMPANY
WHERE
PARTIES_ENTITIES_ID =

 

همچنین می توان برای پیدا کردن کد SELECT مناسب و گنجاندن آن در ساختاری مشابه با ساختار بالا، از کدهای نوشته شده در SQL Server استفاده نمود. برای این کار، کافیست بر جدول PARENTS کلیک راست نموده و مسیری مشابه با تصویر ذیل را طی نموده تا به کدهای SELECT دست یابید.

 

زی فریم

 

در نهایت با استفاده از کدهای نمونه تولید شده، query مناسب برای قسمت Load Query ایجاد می شود.
در این مثال، فیلد Student_ID در خروجی نمایش داده نخواهد شد، زیرا نیازی نیست که کاربر محتویات این فیلد را مشاهده کند. به همین دلیل در query نوشته شده، این فیلد حذف می گردد. بعد از درج جستجو، می بایست بر روی دکمه ذخیره سازی واقع در بالای کادر فرم فرزند کلیک شود. فرم فرزند ساخته شده بلافاصله در لیست فرمهای فرزند واقع در همان صفحه، نمایش داده خواهد شد.

 

زی فریم

 

برای تکمیل کار کافیست تا با کلیک بر روی دکمه Application Cache Management و بعد از آن کلیک بر روی دکمه Clear Cache Data تغییرات را اعمال و در مرورگر مشاهده کنید. پس از آنکه به مرورگر مراجعه کردید، مشاهده خواهید کرد که با کلیک بر روی دکمه ویرایش رکوردهای دانش آموزان، یک دکمه جدید به نام "اولیا" ایجاد شده است (زمانی که بر روی دکمه ایجاد رکورد جدید کلیک شود، این گزینه مشاهده نخواهد شد). در شکل ذیل نمایی از پنجره ویرایش یک رکورد که دکمه جدید درون آن قرار گرفته است، نمایش داده شده است.

 

زی فریم

 

با کلیک بر روی این دکمه، وارد پنجره جدیدی می شوید که در آنجا فهرست نام اولیای ثبت شده مشاهده می شود (اگر هیچ داده ای وارد نشده باشد هم یک صفحه خالی برگشت داده می شود). در این محیط می توانید به جدول PARENTS رکوردهایی را اضافه نمائید. این فرم در اصل همان فرم فرزند است که مشخصاتش را در فرم دانش آموزان وارد کرده بودیم. شکل ذیل نمایی از محیط فرم فرزند را در صورت وجود داده برای رکورد دانش آموز منتخب نشان می دهد.

 

زی فریم

 

برای ایجاد یک رکورد جدید، می توان طبق روال عادی درج رکورد جدید در فرم های grid عمل کرد. پس در نوار ابزار موجود، بر روی دکمه ایجاد یک رکورد جدید (New) کلیک کنید. در آنجا می توانید اطلاعات اولیا را وارد نمائید. در شکل ذیل یک نمونه از فرم فرزند به صورت تکمیل شده آورده شده است.

 

زی فریم

 

در صورتی که اطلاعات با موفقیت ذخیره گردد، پیامی را در این رابطه مشاهده خواهید کرد. حال می توان با کلیک بر روی دکمه ضربدر، این فرم را بسته و هرآنچه را که ذخیره کرده اید مشاهده نمایید.

best tracker