جدید ترین عناوین خبری امروز
جالب فا

توجه: رمز عبور شما به صورت اتوماتیک به ایمیل شما ارسال خواهد شد.

  • admin
  • آذر 9, 1400
  • 9:05 ق.ظ

مکانیزه کردن انبار کارخانه صنعتی

توضیحات

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

این برنامه این امکان را برای انبار دار فراهم آورده تا انبار دار با زدن چند کلید از آخرین موجودی انبار و خروجی و ورودی انبار و همچنین موقعیت یک مرسوله ( از نظر تاریخ ورودی و تاریخ خروجی آن ) با خبر شود .

می باشد و اطلاعات ثبت شده در بانک اطلاعات Vb.net محیط برنامه نویسی این پروژه SQL Server 2000 ( که این بانک از امنیت بالایی برای حفاظت اطلاعات را دارا میباشد )
ذخیره می شود .

مکانیزه کردن انبار کارخانه صنعتی

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

برنامه تنها با وجود دو جدول اطلاعات ، موجودی و مشتری اطلاعات را ذخیره و بازیابی میکند و این امر باعث کم حجم تر شدن برنامه و درنتیجه سرعت بالاتر آن شد .

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

 

سپاس گذاری

 

فهرست مطالب

فصل عنوان صفحه

مقدمه ای بر Vb.net

مقدمه ای بر Sql server 2000

فصل اول فرم اصلی برنامه

1 – 1 فرم موجودی

1 – 2 فرم ورود کالا

1 – 3 فرم خروج کالا

1 – 4 فرم کالای مرجوعی

1 – 5 فرم جستجو ساده

1 – 6 فرم جستجو پیشرفته

1 – 7 منابع

فصل دوم جداول اطلاعات

1 – 1 جدول موجودی کالا

1 – 2 جدول مشتری

مقدمه ای برVb.net

يک برنامه کامپيوتری ، از مجموعه ای دستورالعمل که نوع و نحوه انجام يک فعاليت را برای کامپيوتر مشخص می نمايند ، تشکيل می گردد. دستورالعمل های نوشته شده بعنوان نمونه ممکن است به کامپيوتر اعلام نمايند  که تعدادی از اعداد را با يکديگر جمع  و يا دو عدد را بايکديگر مقايسه و بر اساس نتيجه  بدست آمده ، اتخاذ تصميم نمايد. دستورالعمل های نوشته شده ، صرفا” برای کامپيوتر قابل فهم و اجراء خواهند بود.کامپيوتر دستورالعمل های نوشته شده را اجراء و ماحصل آن رسيدن به اهدافی خواهد بود که بر اساس آن برنامه طراحی و پياده سازی  شده  است . دستورالعمل ها  ، می بايست با استفاده از يکی از زبانها ی برنامه نويسی نوشته شده ( کد ينگ ) و در ادامه در اختيار کامپيوتر قرار داده شوند. زبانهای برنامه نويسی متعددی نظير : فرترن ، بيسيک ، کوبال ، پاسکال، ،C ، جاوا ، ويژوال بيسيک و  … وجود دارد.

برنامه نويسی کامپيوتر ، مشابه آموزش گره زدن کفش به کودکان  است . برای نيل به هدف فوق ، می بايست تمامی مراحل لازم  بصورت شفاف به کودکان آموزش داده شود . کودکان با دنبال نمودن دستورالعمل های ارائه شده ، قادر به گره زدن کفش خود خواهند بود ( روش انجام اين کار برای آنان مشخص شده و بر اساس آن ، امکان نيل به هدف مورد نظر توسط کودکان فراهم می گردد )  . VB.NET ، زبانی است که می توا ن نحوه نيل به يک خواسته را بکمک آن بصورت شفاف ( نظير آموزش گره زدن کفش به کودکان )  مشخص و کامپيوتر با دنبال نمودن مراحل مشخص شده ، خواسته مورد نظر را محقق نمايد. با استفاده از VB.NET ، می توان محصولاتی راايجاد  که زمينه استفاده از آنان  در محيط ويندوز و اينترنت ، وجود خواهد داشت . فراموش نکنيم در زمان فراگيری يک تکنولوژی در ابتدا می بايست شيوه راه رفتن را بياموزيم  و در ادامه اقدام به دويدن نمود .
VB.NET يکی از زبان های  حمايت شده در دات نت می باشد . با استفاده از زبان فوق علاوه بر اينکه می توان برنامه های مبتنی بر ويندوز را پياده سازی نمود ، امکان استفاده از آن بعنوان زبان مورد نظر در زمان ايجاد برنامه های مبتنی بر وب که از تکنولوژی ASP.NET استفاده می نمايند ، نيز وجود خواهد داشت . با توجه به اهميت و جايگاه خاص اين زبان  در دات نت ، مجموعه مقالاتی در رابطه با آموزش اصولی اين زبان آماده شده که بتدريج بر روی سايت قرار خواهند گرفت . در اولين مقاله از اين مجموعه به معرفی اوليه VB.NET خواهيم پرداخت . در ابتدا لازم است با  ويژگی های منحصر بفرد برنامه های مبتنی بر ويندوز در قياس با برنامه های مبتنی بر DOS ، آشنا شده و پس از مروری مختصر به روند شکل گيری نسخه های متعدد ويژوال بيسيک ، با نحوه نصب آن نيز آشنا شويم .

برنامه نويسی مبتنی بر DOS در مقابل ويندوز

برنامه نويسی مبتنی بر  ويندوز دارای تفاوت های عمده ای نسبت به برنامه نويسی سنتی در محيط DOS است.برنامه های  DOS ،  مسيری دقيق و مشخص  را ازابتدا تا پايان دنبال می نمايند . رويکرد فوق ، باعث بروز محدوديت هائی در رابطه با عملکرد برنامه ها  از يکطرف و تحميل محدوديت هائی به کاربران در طی نمودن مسير مشخص شده ، می گردد. از زاويه ای خاص می توان عملکرد  يک برنامه مبتنی بر  DOS را  مشابه قدم زدن در يک راهرو ( سالن )، در نظر گرفت . بمنظور رسيدن به نقطه انتهائی سالن ،  می بايست طول سالن  طی تا به انتهای آن رسيد . در اين راستا از موانع متعدد موجود در مسير ، می بايست عبور تا سرانجام به مقصد مورد نظر رسيد . در زمان پيمودن مسير ، صرفا”   امکان بازنمودن درب های خاصی  ، وجود خواهد داشت . ويندوز ، دنيای جديدی از برنامه نويسی مبتنی بر “رويداد”  را ايجاد نموده است . کليک نمودن موس ، تغيير اندازه پنجره ، تغيير محتويات يک  Textbox ، نمونه هائی از يک “رويداد” می باشند. کدهای  نوشته شده ، نحوه برخورد با يک رويداد را مشخص می نمايد.  برای رسيدن به انتهای يک سالن کافی است بر روی “انتهای سالن ” ، کليک نمود و ديگر ضرورتی به پيمودن تمامی مسير تا رسيدن به انتهای سالن نخواهد بود . درصورتيکه به انتهای سالن رسيده باشيم و متوجه گرديم که اين مکان ، محلی نيست که انتظار آن را داشته ايم ، بسادگی می توان مقصد جديدی را برای خود انتخاب ، بدون اينکه ضرورتی به برگشت در نقطه آغازين مسير وجود داشته باشد. برنامه نوشته شده عکس العمل های لازم در ارتباط با حرکت شما  را بهمراه عمليات مربوطه بمنظور تکميل فعاليت ها ی مورد نظر انجام خواهد داد .  با استفاده از VB.NET ، می توان کدهای لازم بمنظور ارائه عکس العمل لازم در زمان تحقق يک رويداد را نوشت .در اين راستا ، برنامه نويسان می توانند  کدهای لازم  در رابطه با رويدادهائی که امکان  تحقق آنها وجود دارد را نوشته تا در زمان بروز رويداد مورد نظر ، عکس العمل لازم از طرف برنامه صورت پذيرد.در اين زمينه می توان از نوشتن کدهای ديگر بمنظور برخورد با رويدادهای غيرضروری ، صرفنظر کرد. مثلا” ويندوز قادر به تشخيص رويداد”کليک ” از “کليک مضاعف ” است . اين بدان معنی است که اگر می خواهيد برنامه مورد نظر شما ،عکس العمل لازم در ارتباط با رويداد  “کليک” را داشته باشد ، می بايست صرفا” کد مربوط به رويداد ” کليک”،  نوشته گردد و الزامی به نوشتن کدهای  لازم بمنظور برخورد با رويداد  “کليک مضاعف” ، وجود نخواهد داشت . در دنيای برنامه نويسی DOS ، کاربر عکس العمل لازم را نسبت به برنامه انجام می دهد در صورتيکه در ويندوز ، برنامه ها عکس العمل لازم را با توجه به رفتار کاربران ، انجام خواهند داد .

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

روتين های عمومی اصطلاحا” Windows (API ) Application Programming Interface ناميده می شوند .

 تاريخچه ويژوال بيسيک

قبل از معرفی ويژوال بيسيک در سال 1991 ، پياده کنندگان نرم افزار مجبور به تسلط و مهارت در زمينه  استفاده از   ++C   بهمراه  موارد پيچيده ای در اين خصوص  بودند . بدين  ترتيب ، صرفا” افراد خاص آموزش ديده،  قادر به خلق نرم افزارهای قدرتمند  بمنظور اجراء در محيط ويندوز بودند. ويژوال بيسيک ، محدوديت فوق را تغيير و می توان اين ادعا را داشت که امروزه خطوط زيادی از برنامه های نوشته شده  با استفاده از ويژوال بيسيک کد شده است . ويژوال بيسيک ، ظاهر برنامه نويسی تحت ويندوز را با حذف عمليات اضافی برای نوشتن کدهای لازم جهت طراحی بخش رابط کاربر (UI) ، تغيير داده است . در اين راستا ،  زمانيکه بخش رابط کاربر ، ترسيم می گردد ، برنامه نويس می تواند کدهای لازم بمنظور انجام عکس العمل مناسب در رابطه با رويداد ها را به آن اضافه نمايد . زمانيکه ماکروسافت نسخه شماره سه ويژوال بيسيک را ارائه نمود ، مجددا” دنيای برنامه نويسی با تغيير مهمی مواجه گرديد. در اين راستا امکانات مناسبی برای نوشتن برنامه های مبتنی بر بانک های  اطلاعاتی ، در اختيار برنامه نويسان قرار گرفت. ماکروسافت بدين منظور محصول جديدی با نام DAO)Data Access Objects) را ارائه نمود . برنامه نويسان با استفاده از DAO ، امکان انجام عمليات متفاوت در رابطه با داده ها را ، بدست آوردند . نسخه های شماره چهار و پنج ، قابليت های نسخه سه را افزايش و اين امکان را  برای  پياده کنندگان نرم افزار فراهم نمود  تا برنامه های خود را جهت اجراء در محيط ويندوز 95 ، طراحی و پياده سازی نمايند . در اين زمينه ، برنامه نويسان قادر به نوشتن  کدهائی گرديدند که امکان استفاده از آنان  توسط ساير پياده کنندگان نرم افزار که از زبانی ديگر استفاده می کردند، فراهم گرديد. نسخه شماره شش ويژوال بيسيک ، روش جديدی بمنظور دستيابی به بانک های اطلاعاتی را ارائه نمود: ADO)ActiveX Data Objects )  . يکی از اهداف اوليه  طراحی  ADO ، امکان دستيابی به بانک های اطلاعاتی برای پياده کنندگان برنامه های مبتنی بر وب است که از تکنولوژی ASP ، استفاده می نمايند.

همزمان با ارائه جديدترين نسخه ويژوال بيسيک که VB.NET ناميده می شود ، بسياری از محدوديت های مرتبط با ويژوال بيسيک برطرف گرديد . در گذشته  ويژوال بيسيک با انتفادات  فراوان مواجه ( عدم وجود امکانات مناسب در مقايسه با جاوا و يا ++C ) و بسياری آن را نظير يک اسباب بازی در دنيای وسيع زبان های برنامه نويسی می پنداشتند. VB.NET با  غلبه بر مشکلات نسخه های پيشين ، توانسته است در مدت زمان کوتاهی ، بعنوان يک ابزار پياده سازی بسيار قدرتمند مطرح و گزينه ای مناسب برای برنامه نويسان در تمامی سطوح باشد .

نصب VB.NET

برای نصب VB.NET ، از دو رويکرد متفاوت می توان استفاده کرد :

         نصب بهمراه  ويژوال استوديو دات نت

         نصب نسخه استاندارد

هر يک از گزينه های فوق ، امکان ايجاد برنامه های مبتنی بر ويندوز را فراهم می نمايند . مراحلی که در ادامه ذکر می گردد ، نحوه نصب ويژوال استوديو را تشريح  می نمايد .

         مرحله اول : برنامه Setup.exe را از روی CD مربوطه فعال نمائيد.

         مرحله دوم : جعبه محاوره ای ، مراحل و اولويت های عمليات  نصب را نشان خواهد داد. بمنظور صحت عملکرد  VB.NET ، چندين Component نصب و يا بهنگام خواهند شد . اولين مرحله نصب، بهنگام سازی عناصر (Components) است . بر روی گزينه Windows Component Update ، کليک نمائيد.

         مرحله سوم : برنامه نصب در ادامه سيستم را بررسی تا نوع عناصری را که می بايست بهنگام گردند، مشخص گردد. دامنه فرآيند بهنگام سازی به وضعيت ماشينی که بر روی آن ويژوال استوديو دات نت نصب می گردد، بستگی خواهد داشت .

         مرحله چهارم : با توجه به اينکه ممکن است در زمان بهنگام سازی لازم باشد چندين مرتبه سيستم راه اندازی گردد ، از شما درخواست نام و رمز عبور شده تا ضرورتی به نشستن و نگاه کردن به کامپيوتر و واکنش لازم ( درج نام و رمز عبور به سيستم ) پس از هر مرتبه راه اندازی سيستم نباشد .  بدين ترتيب در زمان راه انداری سيستم ،  عمليات مربوطه بصورت اتوماتيک و بدون نياز به تايپ نام و رمز عبور ، انجام خواهد شد . عمليات فوق ، اختياری است و در صورتيکه گزينه فوق انتخاب نگردد ، با هر مرتبه راه اندازی سيستم، پيام مناسب ارائه و می بايست واکنش لازم ( تايپ نام و رمز عبور)  را انجام داد .

         مرحله پنجم : در اين مرحله با فشردن دکمه ! Install Now  ، بهنگام سازی عناصر (Components) آغاز می گردد . با اتمام هر يک از آيتم ها يک Check mark بمنزله اتمام مرحله مربوطه نشان داده می شود  . در مقابل عنصر جاری برای بهنگام سازی نيز يک فلش قرمز رنگ نسان داده می شود.

         مرحله ششم : پس از بهنگام سازی عناصر ، مجددا” به صفحه اصلی Setup مراجعت و امکان نصب ويژوال استوديو دات نت فراهم می گردد.( کليک نمودن برروی گزينه Visiual Studio.NET )
نکته : در صورتيکه قصد داريد که از طريق ماشين فوق ، يک برنامه تحت وب پياده سازی نمائيد ، لازم است IIS و FrontPage Extensions  قبلا” نصب شده باشد( بصورت پيش فرض در زمان نصب ويندوز 2000 نصب خواهد شد ) در صورتيکه ويژوال استوديو دات نت ، بر روی کامپيوتری نصب می گردد که دارای سيستم عامل ويندوز 2000 نسخه Professional  است ، با يک پيام خطاء مواجه خواهيم شد( عدم وجود عناصر لازم ) با فشردن دکمه Install Component ، عمليات نصب IIS و Frontpage Extensions انجام خواهد شد . در صورتيکه دکمه Continue ، انتخاب گردد ، در آينده نمی توانيد برنامه های تحت وب را بصورت محلی بر روی کامپيوتر خود پياده سازی نمائيد .

         مرحله هفتم : نظير اکثر برنامه های نصب ، ليستی از گزينه های موجود ( شامل عناصر ) برای نصب در اختيار شما قرار می گيرد . شما می توانيد ، صرفا” آنچيزی را که بدان نياز داريد ، نصب نمائيد . مثلا” در صورتيکه ظرفيت درايو شما پايين و يا ضرورتی به استفاده از ويژوال ++C دات نت را نداريد ، می توان در اين مرحله از نصب آن صرفنظر کرد. هر گزينه ای که در اين مرحله انتخاب نمی گردد ، می توان در صورت ضرورت آن را در آينده نصب کرد. برای هر يک از امکاناتی  که قرار است نصب گردند ، سه بخش اطلاعاتی متفاوت نمايش داده می شود :

بخش Feature Properties . فايل ها ی مورد نظر برای نصب و ميزان فضای مورد نياز را نشان می دهد .

بخش Feature description . هر Feature چيست و چه عملياتی را انجام می دهد .
بخش Space Allocation ، وضعيت  فضای ذخيره سازی هارد را  با توجه به گزينه های انتخاب شده ، نشان خواهد داد .

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

         مرحله هشتم : ويژوال استوديو دات نت ، شامل مجموعه ای گسترده از فايل های مستندات ( راهنما )  است . در اين مرحله می توان تنظيمات لازم در خصوص اجرای مستندات از طريق CD و يا دايرکتوری نصب شده بر روی هارد را انجام داد . در اين زمينه می توان يک مسير بر روی هارد را مشخص تا مستندات نصب و يا گزينه Run From Source را انتخاب تا بر اساس آن مستندات همچنان بر روی CD باقی بمانند .

         مرحله نهم : پس از انتخاب عناصر مورد نظر برای  نصب  ، با فشردن دکمه ! Install Now ، عمليات نصب آغاز می گردد . مدت زمان نصب ، بستگی به موارد انتخابی  و نوع سيستم دارد . مثلا”  نصب تمام ويژوال استوديو دات نت بهمراه تمامی مستندات بر روی يک ماشين با دارا بودن 256 مگابايت حافظه اصلی، سرعت  650 مگاهرتز و دوازده گيگابايـت هارد ديسک  ،  حدود يک ساعت طول خواهد کشيد .

         مرحله دهم : پس از اتمام مرحله قبل ، با انتخاب گزينه Service Release ، بررسی لازم در خصوص بهنگام سازی  انجام می گيرد . اين عمليات از طريق اينترنت انجام خواهد شد . در اين زمينه به يک خط پرسرعت و مطمئن نياز خواهد بود .

مقدمه ای بر sql

فهرست مندرجات

  • ۱ تاریخچه SQL
  • ۲ حوزه و وسعت
  • ۳ واژه‌های کلیدی SQL
    • ۳.۱ دستورات بازیابی داده
    • ۳.۲ دستورات عملیات داده
    • ۳.۳ دستورات تراکنش داده
      • ۳.۳.۱ دستورات تعریف داده
    • ۳.۴ دستورات کنترل داده
  • ۴ معایب SQL
  • ۵ محاسن SQL
  • ۶ مدل‌های مشابه SQL
  • ۷ منابع
  • ۸ جستارهای وابسته
  • ۹ پیوند به بیرون

تاریخچه SQL

واژه ی SQL به صورت سی کو ال باید تلفظ کنیم و اس کیو ال نا صحیح می باشد. منشا اصلی SQL به مقاله Edgar F. Codd تحت عنوان « مدل رابطه‌ای داده‌ها برای بانک‌های داده‌ای اشتراکی » که در سال ۱۹۷۰ منتشر شد،باز می‌گردد. در دهه ۷۰ گروهی از شرکت IBM در شهر San Jose بر روی سیستم پایگاه داده ای (System R) بدون توجه به این مقاله کار می‌کردند و زبان (SEQUEL(Structured English Query Language را به منظور عملیات و بازیابی اطلاعات ذخیره شده در System R ایجاد کردند. اگر چه SQL ناشی از تلاشهای کاد بود اما Donald D. Chamberlin و Raymond F. Boyce را به عنوان طراحان زبان SEQUEL می‌دانند.
سمینارهایی در زمینه فناوری بانک اطلاعاتی و مباحثاتی در مورد مزایای مدل رابطه‌ای جدید برگزار گردید. تا ۱۹۷۶ مشخص بود که IBM طرفدار جدی فناوری بانک اطلاعاتی رابطه‌ای بوده، توجه زیادی نسبت به زبانSQL دارد. تبلیغات در زمینه System/R باعث جذب گروهی از مهندسین در Menlo Park در کالیفرنیا گردید، و این گروه به این نتیجه رسیدند که تحقیقات IBM منجر به یک بازار تجاری برای بانک‌های اطلاعاتی رابطه‌ای خواهد گردید.

در ۱۹۷۷ این گروه شرکتی بنام Inc وRelational Software تأسیس نمودند تا یک DBMS رابطه‌ای بر اساس SQL بسازند. محصولی بنام Oracle در۱۹۷۹ عرضه گردید، و اولین DBMS رابطه‌ای بوجود آمد. به این ترتیب محصول Oracle باعث گردید اولین محصول IBM برای مدت ۲ سال در بازار دچار رکود باشد. این محصول بر روی مینی کامپیوترهای VAx Digital’s اجرا می‌شد که خیلی از کامپیوترهای بزرگ IBM ارزان تر بودند.
امروزه این شرکت با نام Oracle Corporation اولین فروشنده سیستم‌های مدیریت بانک اطلاعاتی رابطه‌ای است. استادان آزمایشگاههای کامپیوتر در دانشگاه برکلی کالیفرنیا نیز در نیمه دهه ۱۹۷۰ مشغول تحقیق در زمینه بانک‌های اطلاعاتی رابطه‌ای بودن (مانند تیم تحقیق IBM)، گروه فوق نیز یک نمونه از DBMS رابطه‌ای ایجاد نمودند و سیستم خود را Ingres نام نهادند.

پروژه Ingres شامل یک زبان پرسش یا Query language بود بنام QUEL، اگر چه از SQL خیلی ساخت یافته تر بود، اما شباهت آن به زبان انگلیسی کمتر بود.

در حالیکه Oracle و Ingres برای ارائه محصولات تجاری در رقابت بودند، پروژه System/R شرکت IBM در تلاش بوده‌است که یک محصو ل تجاری با نام SQL/Data system (یاSQL/DS) عرضه نماید. IBM موجودیت SQL/DS را در ۱۹۸۱ اعلام، و در ۱۹۸۲ شروع به عرضه محصول خود نمود. در سال ۱۹۸۳ IBM یک نسخه SQL/DS را برای VM/CMS (سیستم عاملی که در کامپیوتر بزرگ IBM غالبا استفاده شده بود)، اعلام نمود.
همچنین در سال ۱۹۸۳ شرکتIBM، محصول Database۲ یا DB۲ را معرفی نمود که یک DBMS رابطه‌ای بود برای سیستم‌های بزرگ آن شرکت. DB۲ تحت سیستم عامل IBM’s VMS(سیستم عامل مراکز کامپیوتری بزرگ) اجرا می‌شد. اولین نسخه DB۲در ۱۹۸۵ عرضه گردید، و مسئولین IBM اعلام نمو دند که این محصول یک برنامه استراتژیک برای تکنولوژی نرم افزاری IBM می‌باش DB۲ .از آن تاریخ تاکنون DBMS رابطه‌ای شاخص بوده و IBM از آن حمایت نموده و زبان DB۲’s SQL استاندارد عملی زبان بانک اطلاعاتی بوده‌است.
SQL استاندارد (ANSI (American National Standards Institute را در سال ۱۹۸۶ و ISO (International Organization for Standardization) را در سال ۱۹۸۷ اتخاذ نمود. استانداردهای مختلفی از SQL تاکنون عرضه شده که در جدول زیر بیان می‌کنیم:

SQL-۸۷
SQL-۸۹
SQL-۹۲
SQL:۱۹۹۹
SQL:۲۰۰۳

 

حوزه و وسعت

بسیاری از اصطلاحات توسعه یافته SQL تحت استاندارد بین المللی بوده و در نتیجه از آنها شبیه بقیه زبانهای استاندارد مثل محصولات شرکت اوراکل PL/SQL یا Sybase و SQL PL (مدل رویه‌ای) از شرکت IBM می‌باشد.

SQL برای کارهای ویژه و محدودی (گزارش گیری از داده‌ها در پایگاه داده رابطه‌ای) طراحی شده‌است. بر خلاف زبانهای دستوری مثل بیسیک یا سی که برای حل مسائل طراحی شده، SQL زبانی بر پایه اعلان است. زبانهای توسعه یافته‌ای مثل PL/SQL به دنبال کامل کردن زبان به هدف ایجاد زبان برنامه نویسی با حفظ مزیت‌های SQL می‌باشد. شیوه دیگر کار این است که به کدهای زبان برنامه نویسی اجازه دسترسی به پایگاه داده به کمک دستورات SQL داده شود مثلاً PostgreSQL به توابعش اجازه می‌دهد که درون کدهای Perl، Tcl و C نوشته شوند. گاهی به شوخی گفته می‌شود که SQL نه ساخت یافته‌است،نه محدود به گزارش گیری‌ها و اصلاً یک زبان نیست!

واژه‌های کلیدی SQL

واژه‌های کلیدی SQL به گروه‌های مختلفی تقسیم می‌گردد، در زیر به برخی از آنها اشاره می‌کنیم آنهایی که آشنا تر هستند را تنها با یک مثال شرح می‌دهیم:

  • دستورات باز یابی داده(SELECT)
  • دستورات عملیات داده(INSERT، UPDATE، MERGE،TRUNCAT و DELETE)
  • دستورات تراکنش داده(COMMIT و ROLLBACK)
  • دستورات تعریف داده(CREATE وDROP)
  • دستورات کنترل داده(GRANT و REVOKE)

دستورات بازیابی داده

دستور SELECT جهت بازیابی برشی سطری از یک یا چند جدول به کار میرود. این دستور پرکاربردترین دستور DML می‌باشد و برای گزارش گیری‌های موثر مورد استفاده قرار می‌گیرد. ساختمان این دستور می‌تواند از اجزای زیر تشکیل شده باشد:

  • FROM : مشخص کردن جداول و نحوه اتصال آنها به هم.
  • WHERE : انتخاب سطر‌هایی با شرایط خاص.
  • GROUP BY : ترکیب سطر‌ها با مقادیر مربوط به مجموعه‌ای از سطرهای کوچکتر.
  • HAVING : مشخص کردن سطرهای ترکیبی.
  • ORDER BY : مشخص کردن اینکه کدام ستونها برای مرتب کردن داده‌ها به کار میرود.

مثال ۱) نشان دادن رکوردهای تمام کتاب‌های بیش ۱۰۰٫۰۰ واحد قیمت. نتایج بر اساس نام کتاب مرتب می‌گردد. نماد ستاره(*) به معنای نشان دادن تمام ستون های(صفات) جداول(ها) می‌باشد:

SELECT * FROM books WHERE price > ۱۰۰٫۰۰

ORDER BY title

مثال ۲) این مسئله نحوه استفاده از جداول چندگانه را نشان می‌دهد. bk و ba نام مستعار جداول می‌باشد. در این مثال تعداد مولفان مختلف هر کتاب را نشان داده می‌شود:

SELECT bk.title, count(*) AS Authors

FROM books AS bk, book_authors AS ba

WHERE bk.book_number = ba.book_number

GROUP BY bk.title

دستورات عملیات داده

این دستورات به اختصار (DML( Data Manipulation Language گفته می‌شود و شامل دستوراتی همچون زیر است:

INSERT : اضافه کردن سطر‌هایی (تاپل‌هایی) به جدول موجود.

UPDATE  : جهت تغییر مقادیر سطرهای موجود جدول.

MERGE : ترکیب کردن داده‌ها در جداول چندگانه این دستور جدید در SQL:۲۰۰۳ اضافه شده‌است، پیش از این پایگاه داده‌ها از دستور UPSERT استفاده می‌کردند.

TRUNCAT : تمام داده‌های جدول را حذف می‌کند(از دستورات غیر استاندارد اما پر کاربرد SQL می‌باشد)
DELETE : حذف سطر‌هایی از جدول موجود.

مثال ۳)

Example:
INSERT INTO my_table (field۱, field۲, field۳) VALUES (‘test’, ‘N’, NULL);
UPDATE my_table SET field۱ = ‘updated value’ WHERE field۲ = ‘N’;
DELETE FROM my_table WHERE field۲ = ‘N’;

دستورات تراکنش داده

(START TRANSACTION (BEGIN WORK : جهت آغاز یک تراکنش پایگاه داده به کار می‌رود تا کنترل کند که تراکنش یا به پایان برسد یا اصلاً بی تأثیر باشد.

COMMIT : با عث می‌شود که تغییرات درون ترانش به طور دائمی ثبت گردد.

ROLLBACK : باعث می‌شود که تغییرات ار آخرین COMMIT یا ROLLBACK دور انداخته شود، در نتیجه وضعیت داده‌ها به قبل از درخواست دخییرات آنها بر می‌گردد.

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

مثال ۴)

START TRANSACTION;

UPDATE inventory SET quantity = quantity – ۳ WHERE item = ‘pants’;

COMMIT;

دستورات تعریف داده

دومین دسته دستورات SQL دستورات تعرف داده یا (DDL (Data Definition Language می‌باشد. این دستورات به کاربر اجازه تعریف جداول جدید و اجزای آنها را می‌دهد. بیشتر SQL‌های تجاری دستوراتی با این خصوصیات را دارند. مهم‌ترین گزینه‌های پایه‌ای DDL دستورات زیر است:

CREATE : ایجاد یک شی (مثلاً یک جدول).

DROP : حذف شی تعریف شده‌ای در پایگاه داده.

بیشتر پایگاه‌های داده دستور ALTER را نیز دارند که اجازه تغییر یک شی موجود را به شیوه‌های مختلف می‌دهد ( مثلاً اضافه کردن یک ستون به جدول).

مثال ۵)

CREATE TABLE my_table (

my_field۱ INT UNSIGNED,

my_field۲ VARCHAR (۵۰),

my_field۳ DATE NOT NULL,

PRIMARY KEY (my_field۱, my_field۲)

)

دستورات کنترل داده

سومین دسته از دستورات SQL دستورات کنترل داده یا (DCL (Data Control Languageمی باشد. این دستورات جنبه‌های اجازه دسترسی به داده‌ها را مشخص می‌کند و تعیین می‌کند کدام کاربر می‌تواند روی پایگاه داده عملیات انجام دهد یا کدام کاربر تنها می‌تواند قابلیت خواندن آنها را داشته باشد. دو دستور اصلی به قرار زیر است:
GRANT : اجازه دادن به یک یاچند کاربر برای اجرا کردن یک یا مجموعه‌ای ازدستورات بر روی یک شی.
REVOKE  : حذف یا محدود کردن قدرت اجرای کاربران.

مثال ۶)

Example: SELECT * FROM inventory — Retrieve everything from inventory table

معایب SQL

در کاربرد عملی از SQL معایب زیر بر آن وارد است:

  • دستورات نحوی(syntax) آن تا حدی مشکل است به نحوی که گاهی آنرا با COBOL مقایسه می‌کنند.
  • شیوه استانداردی را برای دستورات چند تکه بزرگ ندارد.
  • نمونه‌های مختلف آن‌ها که توسط فروشندگان مختلف ارائه می‌شود گاهی با هم سازگاری ندارد.
  • وجود برخی دستورات بلند
  • اشتباه گرفتن وظیفه‌های دستوراتی مثل UPDATE و INSERT .

محاسن SQL

ولی SQL دارای محاسنی هم هست:

  • سازگاری با اکثر زبانهای دستوری
  • سازگاری با اکثر پایگاه‌های داده مثل SQL Server,Oracle و حتی MS ACCESS
  • پس از اینکه برنامه نویس این زبان را درک کرد استفاده از آن بسیار ساده‌است
  • کاربرد در زبانهای جدید و پیشرفته

مدل‌های مشابه SQL

  • IBM BS۱۲ (Business System ۱۲)
  • Tutorial D
  • TQL Proposal
  • HQL ( بر پایه ابزار JAVA
  • OSQL(برپایه ابزارهای شی گرای PHP برای عملیات و گزارش گیری)
  • Quel (در سال ۱۹۷۴ در دانشگاه برکلی ایجاد شد)
  • ODMG (Object Data Management Group)

 

منابع

۱- ویکی پدیای انگلیسی

۲- وبلاگ ایفجام ( http://www.ifjam.50megs.com)

۳- Donald D. Chamberlin and Raymond F. Boyce, ۱۹۷۴. «SEQUEL: A structured

English query language», International Conference on Management of Data, Proceedings of the ۱۹۷۴ ACM SIGFIDET (now SIGMOD) workshop on Data

description, access and control, Ann Arbor, Michigan, pp. ۲۴۹-۲۶۴

۴- Discussion on alleged SQL flaws (C۲ wiki)

۵- Web page about FSQL: References and links.

۶- Galindo J., Urrutia A., Piattini M., «Fuzzy Databases: Modeling, Design and Implementation». Idea Group Publishing Hershey, USA, ۲۰۰۵

فرم اصلی برنامه :

C:\Documents and Settings\PISHRO\My Documents\My Pictures\form.JPG

 

فرم اصلی برنامه تشکیل شده از 5 باتون ((button :

  • موجودی انبار
  • ورود کالا به انبار
  • خروج کالا از انبار
  • کالاهای مرجوعی
  • جستجو

همچنین از نوار منو (Menu) که شامل :

  • فایل ، که همان باتون ها را در خود دارد
  • ابزارها ، که شامل 2 مدل جستجو میباشد (پیشرفته و ساده)

فرم موجودی انبار :

C:\Documents and Settings\PISHRO\My Documents\My Pictures\mojoodi.JPG

حال با کلیک کردن بر روی باتون موجودی انبار این فرم فعال میشود

در این فرم کلیه فیلد های موجود در جدول موجودی را فراخوانی می کند که شامل فیلد های :

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

متن برنامه برای فراخوانی از جدول داده و نمایش آن در DataGridView و ارسال به Crystal Report به این صورت میباشد :

Public Class mojoodi

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Form1.Enabled = True

Form1.Show()

Me.Close()

End Sub

Private Sub mojoodi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

SqlDataAdapter1.Fill(DataSet21, “mojoodi”)

End Sub

Private Sub mojoodi_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed

Form1.Enabled = True

Form1.Show()

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

crs1.Show()

End Sub

End Class

فرم ورود کالا :

C:\Documents and Settings\PISHRO\My Documents\My Pictures\vorood.JPG

با کلیک بر روی باتون ورود کالا فرم بالا ظاهر میشود :

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

از جمله مزایایی که این فرم دارد میتوان به این مورد اشاره کرد که وقتی کد کالایی راوارد کنیم و این کد قبلا در جدول ثبت شده باشد نام کالایی که این کد برایش در نظر گرفته شده است نمایان میشود و همچنین با گذاشتن هشدار کاربر را از اطمینانش نسبت به تکراری بودن کد با خبر می سازیم .

متن برنامه برای ارسال اطلاعات موجود در Text box ها به فیلد های مورد نظر در جدول داده (موجودی) به این صورت است :

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Me.Close()

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim cmdclasf As SqlCommand

Dim strsql1 As String

Dim marjoo As String

rooz = txtrooz.Text

mah = txtmah.Text

sal = txtsal.Text

cod = Txtcod.Text

name = Txtkala.Text

tedad = Txttedad.Text

fi = Txtfi.Text

forushande = Txtforushande.Text

Me.BindingContext(DataSet31, “mojoodi”).AddNew()

strsql1 = “insert into mojoodi(rooz,mah,sal,kharidar,codekala,namekala,tedad,fi) values(‘” & rooz & “‘,'” & mah & “‘,'” & sal & “‘,'” & forushande & “‘ ,'” & cod & “‘,'” & name & “‘,'” & tedad & “‘,'” & fi & “‘)”

SqlConnection1.Open()

cmdclasf = New SqlCommand(strsql1, SqlConnection1)

cmdclasf.ExecuteNonQuery()

SqlConnection1.Close()

txtrooz.ResetText()

txtmah.ResetText()

txtsal.ResetText()

Txtcod.ResetText()

Txtkala.ResetText()

Txttedad.ResetText()

Txtfi.ResetText()

Txtforushande.ResetText()

End Sub

Private Sub Txtcod_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Txtcod.LostFocus

If IsNumeric(Txtcod.Text) Then

SqlDataAdapter1.SelectCommand.Parameters(“@param1”).Value = Txtcod.Text

SqlDataAdapter1.Fill(DataSet31, “mojoodi”)

MsgBox(“لطفا از تکراری نبودن کد کالا مطمئن شوید”, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, “اخطار”)

Else

MsgBox(“لطفا عدد وارد کنید”, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, “اخطار”)

Txtcod.ResetText()

End If

End Sub

Private Sub Txtcod_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txtcod.TextChanged

End Sub

Private Sub SqlDataAdapter1_RowUpdated(ByVal sender As System.Object, ByVal e As System.Data.SqlClient.SqlRowUpdatedEventArgs) Handles SqlDataAdapter1.RowUpdated

End Sub

Private Sub vorudi_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp

If e.KeyCode = Keys.Enter Then

SendKeys.Send(“{tab}”)

End If

End Sub

فرم خروج کالا :

C:\Documents and Settings\PISHRO\My Documents\My Pictures\khorooj.JPG

با کلیک بر روی باتون خروخ کالا فرم بالا ظاهر میشود ، در ردیف اول با زدن کد کالا نام کالا و تعداد و فی آن از جدول داده فراخوانی شده و به نمایش در می آید و کاربر متواند از تعداد کالای موجود در انبار نیز مطلع شود .

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

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

متن برنامه برای فراخوانی و ثبت در جدول مشتری به این صورت میباشد :

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

If ComboBox1.SelectedItem = “پرداخت چک” Then

GroupBox1.Enabled = True

Else

GroupBox1.Enabled = False

End If

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Me.Close()

End Sub

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim rooz, mah, sal, codekala As Integer

Dim namekala, namebank, nameshobe As String

Dim shomarechek, fi, gheymat, mablaghchek As Long

Dim kharidar, strsql1 As String

Dim cmdclasf, cmdclasf1 As SqlCommand

Dim tedad As Integer

If txtrooz.Text <> “” And txtmah.Text <> “” And txtsal.Text <> “” And txtkala.Text <> “” And txtcod.Text <> “” And txtfi.Text <> “” And txtgheymat.Text <> “” And txtkharidar.Text <> “” Then

namekala = txtkala.Text

rooz = Val(txtrooz.Text)

mah = Val(txtmah.Text)

sal = Val(txtsal.Text)

codekala = Val(txtcod.Text)

kharidar = txtkharidar.Text

fi = Val(txtfi.Text)

gheymat = Val(txtgheymat.Text)

shomarechek = Val(txtshomare.Text)

namebank = txtbank.Text

nameshobe = txtshobe.Text

tedad = Trim(Val(txttedad.Text))

mablaghchek = gheymat

strsql1 = “update mojoodi set tedad=tedad-” & tedad & ” where codekala=” & codekala

SqlConnection1.Open()

cmdclasf = New SqlCommand(strsql1, SqlConnection1)

cmdclasf.ExecuteNonQuery()

DataSet41.Clear()

SqlConnection1.Close()

SqlDataAdapter1.Fill(DataSet41, “mojoodi”)

strsql1 = “insert into moshtari(rooz,mah,sal,codekala,namekala,tedad,fi,kharidar,mablaghchek,shomarechek,namebank,nameshobe)values(‘” & rooz & “‘,'” & mah & “‘,'” & sal & “‘,'” & codekala & “‘,'” & namekala & “‘,'” & tedad & “‘,'” & fi & “‘,'” & kharidar & “‘,'” & mablaghchek & “‘,'” & shomarechek & “‘,'” & namebank & “‘,'” & nameshobe & “‘)”

SqlConnection1.Open()

cmdclasf1 = New SqlCommand(strsql1, SqlConnection1)

cmdclasf1.ExecuteNonQuery()

MsgBox(“اطلاعات مورد نظر ثبت شد”, MsgBoxStyle.Information + MsgBoxStyle.OkOnly, “اخطار”)

txtkala.ResetText()

txtrooz.ResetText()

txtmah.ResetText()

txtsal.ResetText()

txtcod.ResetText()

txtkharidar.ResetText()

txtfi.ResetText()

txtgheymat.ResetText()

txtshomare.ResetText()

txtbank.ResetText()

txtshobe.ResetText()

txttedad.ResetText()

End If

End Sub

Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtcod.LostFocus

SqlDataAdapter1.SelectCommand.Parameters(“@param1”).Value = Trim(Val(txtcod.Text))

SqlDataAdapter1.Fill(DataSet41, “mojoodi”)

txtgheymat.Text = Val(txtfi.Text) * Val(txttedad.Text)

End Sub

Private Sub txttedad_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txttedad.LostFocus

txtgheymat.Text = Val(txtfi.Text) * Val(txttedad.Text)

End Sub

 

Private Sub khoruj_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp

If e.KeyCode = Keys.Enter Then

SendKeys.Send(“{tab}”)

End If

End Sub

End Class

فرم مرجوعی کالا

C:\Documents and Settings\PISHRO\My Documents\My Pictures\marjoo.JPG

در صفحه اصلی زمانی که بر روی باتون کالای مرجوعی کلیک کنیم فرم بالا ظاهر میشود .

در این فرم نیز با زدن کد کالا و زدن اینتر نام کالا فراخوانی میشود و با وارد کردن تعداد کالای مرجوعی و علت آن و فشردن باتون ثبت اطلاعات در جدول موجودی ثبت میشود .

(به جدول موجودی اضافه می شود )

متن برنامه برای فراخوانی و ثبت در جدول به ای صورت است :

Public Class marju

Private Sub marju_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed

Form1.Enabled = True

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Me.Close()

End Sub

Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtCode.LostFocus

SqlDataAdapter1.SelectCommand.Parameters(“@param1”).Value = Trim(Val(txtCode.Text))

SqlDataAdapter1.Fill(DataSet61, “mojoodi”)

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim strsql1 As String

Dim cmdclasf As SqlCommand

strsql1 = “update mojoodi set tedad=tedad +” & Trim(txttedad.Text) & ” where codekala=” & Trim(Val(txtCode.Text))

SqlConnection1.Open()

cmdclasf = New SqlCommand(strsql1, SqlConnection1)

cmdclasf.ExecuteNonQuery()

SqlConnection1.Close()

MsgBox(“تغییرات اعمال شد”, MsgBoxStyle.Information + MsgBoxStyle.OkOnly, “هشدار”)

End Sub

Private Sub marju_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp

If e.KeyCode = Keys.Enter Then

SendKeys.Send(“{tab}”)

End If

End Sub

End Class

فرم جستجو :

jostoju.jpg

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

در این فرم با نوشتن کد کالا و زدن کلید اینتر DataGridViewمقدار جستجو شده را نمایش میدهد . که با زدن باتون چاپ (p) به صفحه parameter values رفته و مجدد باید پارامتر مورد نظر را وارد کنیم (کد کالا) و پس از زدن باتون finish این جستجو به حالت چاپ دربرگه ظاهر میشود .

متن برنامه برای جستجو در جدول و چاپ پارامتر به این نحو میباشد :

Public Class search

Private Sub search_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed

Form1.Enabled = True

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Me.Close()

End Sub

Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus

Dim switch As Boolean = False

If switch = False Then

DataSet71.Clear()

SqlDataAdapter1.SelectCommand.Parameters(“@param1”).Value = Val(TextBox1.Text)

SqlDataAdapter1.Fill(DataSet71, “mojoodi”)

switch = True

Else

SqlDataAdapter1.SelectCommand.Parameters(“@param1”).Value = Val(TextBox1.Text)

SqlDataAdapter1.Fill(DataSet71, “mojoodi”)

End If

End Sub

 

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Form3.Show()

End Sub

Private Sub TextBox1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp

If e.KeyCode = Keys.Enter Then

SendKeys.Send(“{tab}”)

End If

End Sub

End Class

فرم جستجو پیشرفته :

jostoju pishrafte.jpg

C:\Documents and Settings\PISHRO\My Documents\My Pictures\pishrafteh.JPG

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

در این فرم با وارد کردن کد کالا و وارد کردن ماه اولیه و پس از آن ماه ثانویه و زدن اینتر یا باتون جستجو ، جستجو بین این دو بازه زمانی ، در جدول داده ها (مشتری) صورت میپذیرد و با زدن باتون چاپ به قسمت پارامتر چاپ رفته و کد کالا سپس ماه اول و ماه دوم را وارد کرده و finish را میزنیم ،اینک آمار خروج این کالا در انبار را بین دو بازه زمانی داریم و میتوان آن را روی کاغذ چاپ کرد .

متن برنامه برای جستجوی پیشرفته به این صورت است :

Public Class search2

Private Sub search2_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp

If e.KeyCode = Keys.Enter Then

SendKeys.Send(“{tab}”)

End If

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Me.Close()

End Sub

Private Sub search2_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed

Form1.Enabled = True

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Form2.Show()

End Sub

End Class

C:\Documents and Settings\PISHRO\My Documents\My Pictures\5.jpg C:\Documents and Settings\PISHRO\My Documents\My Pictures\hde.jpg جداول اطلاعات :

جدول مشتری

جدول موجودی

جدول موجودی :

محل ذخیره اطلاعات مربوط به کالاها میباشد (ورودی کالا و مرجوع کالا )

جدول مشتری :

محل ذخیره اطلاعات مربوط به مشتریان میباشد (خروج کالا )

 

دیدگاه ها 0

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *