خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
28. آموزش برنامه نویسی به زبان ساده . طراحی فرم ویرایش اطلاعات

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

پروژه دفتر تلفن را باز کنید. یک فرم جدید با نام FrmEditContact به پروژه اضافه کنید. این فرم را باز کنید و ویژگیهای زیر را برای آن تنظیم نمایید.
کاملا مشابه فرم افزودن تماس، تمامی کنترلها را با همان اسامی و همان ویژگیها در این فرم نیز قرار دهید. بهتر است برای راحتی کار و بالا رفتن دقت کار از عملیات کپی و چسباندن استفاده نمایید.
در پایان فرم ویرایش تماس شما باید مشابه تصویر زیر باشد.
فرم مدیریت تماس را باز کنید و برای رویداد کلیک دکمه "ویرایش" کد زیر را اضافه نمایید.
این کد باعث می شود تا موقعی که کاربر بر روی دکمه ویرایش کلیک کند، فرم ویرایش نمایش داده شود. برنامه را اجرا کنید، این مورد را تست نمایید و سپس برنامه را متوقف کنید.
یک نکته مهم در طراحی فرمهای ویرایش اطلاعات اینست که ابتدا باید اطلاعات رکوردی را که کاربر جهت ویرایش انتخاب کرده است نمایش بدهیم، تا کاربر اطلاعات قبلی را بتواند ببینید و اگر اشتباهی مشاهده کرد آن را ویرایش نماید. پس صورت مساله فعلی ما اینست که اولا چگونه انتخاب کاربر را تعیین نماییم و دوما چگونه اطلاعات مربوط به انتخاب کاربر را نمایش بدهیم.
وارد محیط کد نویسی فرم ویرایش (FrmEditContact) شوید. و کد زیر را در بالای صفحه عینا بنویسید.
کدی که در بالای صفحه نوشتیم یک کد خاص است که در آموزشهای قبلی نمونه اش را نداشتیم. در این کد یک متغیر از نوع Integer معرفی شده است. نوع Integer یک شیء برنامه نویسی است که می تواند مقادیر عددی را در خودش ذخیره کند. برخلاف همیشه که برای معرفی نمونه ای از یک شیء از دستور Dim استفاده می کردیم، اینبار از دستور Public استفاده کرده ایم. این دستور هم مشابه دستور Dim عمل می کند، اما یک تفاوت کلی با دستور قبلی دارد. وقتی شما از دستور Dim استفاده می کنید، نمونه شما فقط در سطح همان تکه کد و یا در سطح همان فرم قابل استفاده می باشد. اما استفاده از دستور Public باعث می شود تا از طریق سایر فرمها نیز بتوانید این متغیر را مقداردهی کنید و یا مقدارش را بخوانید.
حالا وارد محیط کدنویسی فرم مدیریت تماسها شوید و در کد مربوط به رویداد کلیک دکمه "ویرایش" تغییرات زیر را اعمال کنید.
در اینجا ما متغیر RowID را که در فرم ویرایش تماسها معرفی شده است مقدار دهی کرده ایم. در واقع مقدار آن را از روی ردیفی که کاربر در گرید انتخاب کرده است پر کرده ایم.
در بخشی از کدهای بالا ما با استفاده از دستور زیر مقدار یک سلول در گرید را خواندیم.
عبارت CurrentRow اشاره به ردیف انتخاب شده توسط کاربر دارد. در زمان اجرای برنامه کاربر هر ردیفی را انتخاب کند یک مثلث کوچک در کنار آن ظاهر می شود و آن ردیف از سایر ردیفها متمایز می شود.
عبارت Cells که پارامتر RowID داخل آن قرار گرفته است، اشاره به نام ستون گرید دارد. در واقع برای خواندن یک سلول از گرید ما باید آدرس سطر و ستون مربوطه را داشته باشیم. در اینجا سطر ما همان ردیف انتخاب شده بود و ستون ما هم ستون RowID بود.
هر سلول از گرید ویژگیهای زیادی دارد، ویژگی Value مربوط به محتویات سلول می باشد. برای همین در انتهای کد بالا از ویژگی Value استفاده شده است.
در اینجا قصد داریم تا در فرم ویرایش تماس، یک روال بنویسیم که اطلاعات رکورد انتخاب شده را در صفحه به کاربر نمایش بدهد. روال زیر را برای همین منظور می نویسیم.
این روال را که نامش را ShowSelectedRecordInfo گذاشته ایم، اطلاعات یک رکورد را بر اساس متغیر RowID که در سطح فرم ویرایش معرفی شده است از جدول پایگاه داده بازیابی می کند و مقادیرش را به کاربر نشان می دهد.
قبل از اینکه به تشرح کدهای روال ShowSelectedRecordInfo بپردازیم، ابتدا بیایید کد فراخوانی آن را هم بنویسیم و بعد از اجرا و تست آن به تشریحش بپردازیم.
کد فراخوانی این روال را در رویداد لود شدن فرم ویرایش تماس قرار داده ایم. برنامه را اجرا کنید تا با هم تستش کنیم.
ابتدا مشابه تصویر بالا یک ردیف را انتخاب کنید، وقتی ردیف را انتخاب می کنید به علامت مثلث کوچکی که در تصویر بالا هایلایت شده است توجه کنید.
سپس بر روی دکمه ویرایش کلیک کنید.
همانطور که خودتان هم متوجه شدید، اطلاعات رکورد مورد ویرایش نمایش داده می شود. این کار را چندین بار با ردیف های مختلف گرید تکرار کنید.
این روال تا حدود زیادی مشابه روال بازیابی اطلاعات از پایگاه داده است که در فرم مدیریت تماسها نوشتیم. تنها تفاوت این دو روال اینست که در آنجا ما بعد از اینکه شیء DataTable را با اطلاعات دیتابیس پر کردیم، مستقیما آن را به ویژگی DataSource گرید منتقل کردیم و گرید خودش بصورت اتوماتیک همه ردیفهای جدول مربوطه را به ما نمایش داد. اما در اینجا چون صرفا با یک رکورد سر و کار داشتیم و در ضمن دیتاگریدی هم در کار نبود و قصد داشتیم تا رکورد مربوطه را در کنترلهای مختلف صفحه بنویسیم یکسری کدهای اضافه جهت این کار نوشتیم.
اولین قسمت کد ما یک شرط است که می گوید اگر تعداد (Count) رکوردهای (Rows) دیتاتیبل (dt) بیش از صفر بود بقیه عملیات انجام شود. این کد یک کد محافظه کارانه می باشد و در واقع با این شرط ما جلوی بروز خطای پیدا نشدن رکورد را در برنامه می گیریم.
نحوه خواندن اطلاعات یک دیتاتیبل تا حدود زیادی مشابه خواندن اطلاعات گرید است. یعنی در اینجا هم ما باید ردیف و ستون مربوطه را مشخص کنیم تا مقدار سلول مد نظر از جدول بازیابی شود.
عدد 0 که بعد از کلمه Rows آمده است یعنی ردیف اول را بخوان. طبیعی است که دیتاتیبل ما فقط یک ردیف داشته باشد، چرا که ما اطلاعات را بر اساس شرط RowID بازیابی کرده ایم و در ضمن از قبل نیز می دانیم که فیلد RowID در جدول ما مقدار یکتایی دارد و تکرار نمی شود، پس حتما و الزاما خروجی دستور ما یک رکورد بیشتر نخواهد بود.
پروژه خود را ذخیره کنید. در آموزشهای بعدی به ادامه تکمیل آن خواهیم پرداخت.
آموزش قبلی : 27. آموزش برنامه نویسی به زبان ساده . نوشتن کد جستجوی اطلاعات
آموزش بعدی : 29. آموزش برنامه نویسی به زبان ساده . تکمیل کد نویسی فرم ویرایش اطلاعات

اگر آموزشهای قبلی را ندیده اید، به مطالعه این آموزش نپردازید، در واقع این آموزش یک مجموعه سریالی است که مطالب آن بصورت تنگاتنگ در ارتباط با یکدیگر می باشند. برای شروع این دوره آموزشی بر روی لینک آغاز دوره آموزشی کلیک کنید.
آغاز دوره آموزشی
فهرست آموزشهای دوره آموزش برنامه نویسی به زبان ساده از مبتدی تا پیشرفته بصورت کاملا کاربردی
آغاز دوره آموزشی
فهرست آموزشهای دوره آموزش برنامه نویسی به زبان ساده از مبتدی تا پیشرفته بصورت کاملا کاربردی
طراحی فرم ویرایش اطلاعات تماس
پروژه دفتر تلفن را باز کنید. یک فرم جدید با نام FrmEditContact به پروژه اضافه کنید. این فرم را باز کنید و ویژگیهای زیر را برای آن تنظیم نمایید.
-
Font = Tahoma, 8.25pt
-
RightToLeft = Yes
-
Size = 589, 283
-
Text = ویرایش اطلاعات تماس
کاملا مشابه فرم افزودن تماس، تمامی کنترلها را با همان اسامی و همان ویژگیها در این فرم نیز قرار دهید. بهتر است برای راحتی کار و بالا رفتن دقت کار از عملیات کپی و چسباندن استفاده نمایید.
در پایان فرم ویرایش تماس شما باید مشابه تصویر زیر باشد.

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

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

کدی که در بالای صفحه نوشتیم یک کد خاص است که در آموزشهای قبلی نمونه اش را نداشتیم. در این کد یک متغیر از نوع Integer معرفی شده است. نوع Integer یک شیء برنامه نویسی است که می تواند مقادیر عددی را در خودش ذخیره کند. برخلاف همیشه که برای معرفی نمونه ای از یک شیء از دستور Dim استفاده می کردیم، اینبار از دستور Public استفاده کرده ایم. این دستور هم مشابه دستور Dim عمل می کند، اما یک تفاوت کلی با دستور قبلی دارد. وقتی شما از دستور Dim استفاده می کنید، نمونه شما فقط در سطح همان تکه کد و یا در سطح همان فرم قابل استفاده می باشد. اما استفاده از دستور Public باعث می شود تا از طریق سایر فرمها نیز بتوانید این متغیر را مقداردهی کنید و یا مقدارش را بخوانید.
حالا وارد محیط کدنویسی فرم مدیریت تماسها شوید و در کد مربوط به رویداد کلیک دکمه "ویرایش" تغییرات زیر را اعمال کنید.

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

عبارت CurrentRow اشاره به ردیف انتخاب شده توسط کاربر دارد. در زمان اجرای برنامه کاربر هر ردیفی را انتخاب کند یک مثلث کوچک در کنار آن ظاهر می شود و آن ردیف از سایر ردیفها متمایز می شود.
عبارت Cells که پارامتر RowID داخل آن قرار گرفته است، اشاره به نام ستون گرید دارد. در واقع برای خواندن یک سلول از گرید ما باید آدرس سطر و ستون مربوطه را داشته باشیم. در اینجا سطر ما همان ردیف انتخاب شده بود و ستون ما هم ستون RowID بود.
هر سلول از گرید ویژگیهای زیادی دارد، ویژگی Value مربوط به محتویات سلول می باشد. برای همین در انتهای کد بالا از ویژگی Value استفاده شده است.
نوشتن کد مربوط به نمایش اطلاعات در فرم ویرایش تماس
در اینجا قصد داریم تا در فرم ویرایش تماس، یک روال بنویسیم که اطلاعات رکورد انتخاب شده را در صفحه به کاربر نمایش بدهد. روال زیر را برای همین منظور می نویسیم.

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

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

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

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

اولین قسمت کد ما یک شرط است که می گوید اگر تعداد (Count) رکوردهای (Rows) دیتاتیبل (dt) بیش از صفر بود بقیه عملیات انجام شود. این کد یک کد محافظه کارانه می باشد و در واقع با این شرط ما جلوی بروز خطای پیدا نشدن رکورد را در برنامه می گیریم.
نحوه خواندن اطلاعات یک دیتاتیبل تا حدود زیادی مشابه خواندن اطلاعات گرید است. یعنی در اینجا هم ما باید ردیف و ستون مربوطه را مشخص کنیم تا مقدار سلول مد نظر از جدول بازیابی شود.

عدد 0 که بعد از کلمه Rows آمده است یعنی ردیف اول را بخوان. طبیعی است که دیتاتیبل ما فقط یک ردیف داشته باشد، چرا که ما اطلاعات را بر اساس شرط RowID بازیابی کرده ایم و در ضمن از قبل نیز می دانیم که فیلد RowID در جدول ما مقدار یکتایی دارد و تکرار نمی شود، پس حتما و الزاما خروجی دستور ما یک رکورد بیشتر نخواهد بود.
پروژه خود را ذخیره کنید. در آموزشهای بعدی به ادامه تکمیل آن خواهیم پرداخت.
آموزش قبلی : 27. آموزش برنامه نویسی به زبان ساده . نوشتن کد جستجوی اطلاعات
آموزش بعدی : 29. آموزش برنامه نویسی به زبان ساده . تکمیل کد نویسی فرم ویرایش اطلاعات
نمایش دیدگاه ها (2 دیدگاه)
دیدگاه خود را ثبت کنید: