نرم افزار کاربردی فروشگاه

چکیده
این برنامه به طور کلی به ۲ زبان sql server2000 و زبان برنامه نویسی شی گرا به نام delphi7 نوشته شده است که به صورت تحت شبکه نیز می باشد با زبان sql server2000 بانک های اطلاعاتی طراحی گردیده شده است و با Delphi فرم ها و برنامه کاربردی نوشته شده است . در این برنامه سعی شده است تا حد امکان کار را برای کاربر راحت کرده تا بتواند به راحتی به کارهای خود مدیریت داشته باشد .

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

فهرست مطالب
عنوان صفحه

فصل اول
۱-۱ عنوان جداول……………………………………………………………………………………….۶
۲-۱ طراحی جداول در sql server …………………………………………………………..7
3-1 انواع داده ها در sql …………………………………………………………………………….8
4-1بررسی فیلد های مورد استفاده در بانک……………………………………………………۱۰
فصل دوم
۱-۲طراحی صفحه اصلی…………………………………………………………………………….۱۵
۲-۲طراحی مشتری……………………………………………………………………………………۱۶
۳-۲طریقه استفاده صفحات(use unit)………………………………………………………17
4-2unit چیست؟…………………………………………………………………………………….۱۷
۵-۲طریقه ی ارتباط میان sql , Delphi………………..

…………………………………..۱۸
۶-۲طراحی صفحه جستجوی مشتری…………………………………………………………….۲۳
۷-۲اطلاعات مربوط به cash…………………………………………………………………….26
8-2طراحی صفحه کمپانی………………………………………………………………………….۲۸
۹-۲صفحه جستجوی اطلاعات کمپانی…………………………………………………………۳۱
۱۰-۲طراحی صفحه معرف…………………………………………………………………………..۳۳
۱۱-۲طراحی صفحه transaction……………………………………………………………..37
…………………………………………………………39.Transaction 12-2صفحه جستجوی

فهرست اشکال و جداول
عنوان صفحه
فصل اول
شکل(۱-۱)enterprise manager)) …………………………………………………………………………………………….7 شکل(۲-۱)ایجاد بانک جدید…………………………………………………………………………………………………………………۷
شکل(۳-۱)طراحی

جداول…………………………………………………………………………………………………………………….۸
شکل(۴-۱)خصوصیات مشتری…………………………………………………………………………………………………………….۱۰
شکل(۵-۱)خصوصیات transaction ………………………………………………………………………………………………11
شکل(۶-۱)خصوصیات

معرف……………………………………………………………………………………………………………..۱۲
شکل(۷-۱)خصوصیات کمپانی…………………………………………………………………………………………………………….۱۳
شکل(۸-۱)خصوصیات cash ……………………………………………………………………………………………………………13
فصل دوم
شکل(۱-۲)صفحه اصلی………………………………………………………………………………………………………………………۱۵
شکل(۲-۲)فراخانی مشتری………………………………………………………………………………………………………………….۱۶
شکل(۳-۲)فرم اضافه کردن مشتری……………………………………………………………………………………………………….۱۶
شکل(۴-۲)use unit ………………………………………………………………………………………………………………………17
شکل(۵-۲)datamodule……………………………………………………………………………………………………………….18
شکل(۶-۲)ado ………………………………………………………………………………………………………………………………18

 

شکل(۷-۲)build …………………………………………………………………………………………………………………………….19
شکل(۸-۲)data linck …………………………………………………………………………………………………………………..19
شکل(۹-۲)data linck ………………………………………………

…………………………………………………………………..۱۹
شکل(۱۰-۲)datamodule ……………………………………………………………………………………………………………20
شکل(۱۱-۲)ویرایش مشتری ……………………………………………………………………………………………………………….۲۱
شکل(۱۲-۲)کد نویسی ویرایش مشتری…………………………………………………………………………………………………۲۱
شکل(۱۳-۲)کد نویسی اضافه کردن مشتری……………………………………………………………………………………………۲۲
شکل(۱۴-۲)کد نویسی بازخانی فرم مشتری……………………………………………………………………………………………۲۲
شکل(۱۵-۲)فراخانی جستجوی مشتری………………………………………………………………………………………………….۲۳
شکل(۱۶-۲)فرم جستجوی مشتری………………………………………………………………………………………………………..۲۳
شکل(۱۷-۲)کد نویسی جستجوی مشتری……………………………………………………………………………………………….۲۴
شکل(۱۸-۲)Dbgrid ………………………………………………………………………………………………………………………24

شکل(۱۹-۲)نوع جستجوی مشتری………………………………………………………………………………………………………..۲۵
شکل(۲۰-۲)صفحه cash………………………………………………………………………………………………………………….26
شکل(۲۱-۲)کد نویسی اضافه کردن اطلاعات…………………………………………………………………………………………۲۶
شکل(۲۲-۲)فرم ویرایش cash………………………………………………………………………………………………………….27
شکل(۲۳-۲)کد نویسی ویرایش اطلاعات cash……………………………………………………………………………………27
شکل(۲۴-۲)بازخانی فرم cash…………………………………………………………………………………………………………..27
شکل(۲۵-۲)فراخانی صفحه کمپانی………………………………………………………………………………………………………۲۸
شکل(۲۶-۲)فرم اضافه کردن کمپانی…………………………………………………………………………………………………….۲۸
شکل(۲۸-۲)کد نویسی دکمه ذخیره……………………………………………………………………………………………………..۲۹
شکل(۲۹-۲)کد نویسی هنگام وجود شماره تکراری…………………………………………………………………………………۳۰
شکل(۳۰-۲)فرم ویرایش کمپانی…………………………………………………………………………………………………………..۳۰
شکل(۳۱-۲)کد نویسی بازخانی مجدد فرم……………………………………………………………………………………………..۳۱
شکل(۳۲-۲)فرم جستجوی اطلاعات کمپانی…………………………………………………………………………………………..۳۱
شکل(۳۳-۲)کد جستجوی فرم………………………………………………………………………………………………..

……………۳۲
شکل(۳۴-۲)طریقه جستجوی کمپانی…………………………………………………………………………………………………….۳۲
شکل(۳۵-۲)فرم اضافه کردن معرف………………………………………………………………………………………………………۳۳
شکل(۳۶-۲)کد نویسی ذخیره کردن اطلاعات معرف……………………………………………………………………………….۳۴
شکل(۳۷-۲)کد نویسی مربوط به دکمه ذخیره…………………………………………………………………………………………۳۴
شکل(۳۸-۲)کد نویسی مربوط به زدن شماره معرف تکراری……………………………………………………………………..۳۵
شکل(۳۹-۲)کد نویسی فراخانی مجدد فرم……………………………………………………………………………………………..۳۵
شکل(۴۱-۲)طریقه فراخانی فرم transaction…………………………………………………………………………………….37
شکل(۴۲-۲)فرم اضافه کردن transaction………………………………………………………………………………………..37
شکل(۴۴-۲)کد نویسی فراخانی مجدد فرم……………………………………………………………………………………………..۳۸
شکل(۴۵-۲)فرم ویرایش اطلاعات………………………………………………………………………………………………………..۳۸
شکل(۴۶-۲)کد نویسی وارد کردن اطلاعات تکراری……………………………………………………………………………….۳۸
شکل(۴۷-۲)طریقه فراخانی جستجوی transaction……………………………………………………………………………39
شکل(۴۸-۲)صفحه جستجوی transaction………………………………………………………………………………………40
شکل(۴۹-۲)کد جستجوی transaction..

…………………………………………………………………………………………۴۰

۱-۱عنوان جداول

در این قسمت ازبانک اطلاعاتی sql استفاده شده است.
در بانک اطلاعاتی ما table های موجود عبارتند از:

۱- Tbl_Customer که برای مشتری طراحی شده است.
Moaref: که مشخص کننده معرف می باشد.
Zamen: که مشخص کننده ضامن می باشد.
و…
۲-Tbl_cash: که مشخص می کند هر کاربر چه می زان مبلغی را دریافت کردهو بابت چه موضوعی.
۳- Tbl_transaction: که مشخص کننده خرید هر مشتری می باشد.
۴-company: که مربوط به اطلاعات کمپانی ها می باشد.
۵-Tbl_Moaref: که دارای اطلاعات معرف ما می باشد.
۶-user:اشخاصی که می توانند به نرم افزار دسترسی داشته باشند در این مکان مشخص می شود.

۲-۱طراحی جداول در sql server

برای طراحی جدول در sql : همانند شکل زیر باید عمل کرد:
ابتدا sql server را باز می کنیم .

شکل(۱ – ۱)
پس از آن باید به مسیر ی که در شکل زیر به ما نمایش داده شده برویم.

شکل(۲ – ۱)
حال با کلید بر روی new database… (همانند شکل ۲-۱ )صفحهای برای ایجاد data base جدید برای ما باز می شود که با زدن نام آن وok کردن آن یک data base جدید برای ما ایجاد خواهد شد.
حال با رفتن بر روی نام database که ایجاد کرده ایم و پس از آن بر روی table کلید می کنیم حا صفحه ای باز می شود که همانند شکل ۳-۱ می باشد:

 

شکل(۳-۱)
که شامل چهار قسمت می باشد:
Column name: که حاوی نام هر فیلد می باشد.(توجه: اگر کلمه وارد شده هماهنگی با یکی از حروف رزرو شده در sql server داشته باشد آنگاه به دور آن کروشه خواهد گذاش

ت.مثال: data یکی از حروف رزرو شده است به همین دلیل به دور آن کروشه خواهد گذاشت به این صورت[data] .

۳-۱انواع داده ها در sql

Data type : که نوع فیلد در آن مشخص می شود.که دارای انواع مختلفی می باشد.
که ما در این پروژه از انواع:
– nvarchar که نوع رشتهای است که می تواند فارسی و انواع دیگر کاراکتر را پشتی بانی کند.
-int که از نوع داده صحیح می باشد.
-Real که از نوع اعشاری می باشد.
-Char که از نوع کاراکتری می باشد.

Length: که مشخص کننده اندازه هر متغیر می باشد.

Allow nulls: که مشخص می کند متغییر می تواند مقدار خالی داشته باشد یا خیر.
اگر تیک آن گزاشته باشد یعنی فیلد مورد نظر می تواند خالی باشد. در غیر اینصورت خیر.

حال اگر بخواهیم فیلدی را مشخص کنیم که کلید اصلی است کافی است بر روی رکورد مورد نظر راست کلید کرده و گزینه set primery keys را انتخاب می کنیم و به عنوان کلید اصلی مشخص می شود.البته کلید اصلی هیچ گاه نمی تواند مقدار nullداشته باشد.

۴-۱بررسی فیلد های مورد استفاده در بانک

حال به بررسی جدوال در sql می پردازیم:
Tbl_customer(مشتری):
فیلد کلید این جدول شماره مشتری یا (customer_id) می باشد . که نوع آن integer است.
Customer_name : که نام مشتری می باشد.که نوع آن nvarchar(50) می باشد.
(nvarchar نوع داده ای است که می توان در sql server به صورت فارسی نوشت)
Customer_famioly : که نام خانوادگی می باشد. که نوع آن nvarchar(50)
می باشد.
Moaref : که کلید خارجی است . و دارای شماره معرف کننده ان مشتری می باشد.
Zamen : که مشخص می کند چه کسی ضمانت آن شخص را کرده.
Tel: که در آن تلفن مشتری مشخ می شود و نوع آن از nvarchar(50) می باش

 

د.
,…که به صورت شکل زیر می باشد:

شکل(۴-۱)

Tbl_transaction:
فیلد کلید این جدول فیلد transaction_id می باشد که ازنوع integer می باشد و الباقی فیلد ها در تصویر مشخص شده است:

شکل(۵-۱)

Tbl_moaref :
که فیلد کلید آن moaref_id می باشد ونوع آن integer می باشد.الباقی فیلد ها در شکل مشخص شده است:

شکل(۶-۱)

Company:
که فیلد کلید آن name است و نوع آن nvarchar(50) می باشد . الباتقی فیلد ها به صورت زیر می باشد:

شکل(۷-۱)
Tbl_cash:
که دارای فیلد کلید نمی باشدو طراحی و شکل آن به صورت زیر می باشد.

شکل(۸-۱)

فصل دوم
طراحی نرم افزار
(برنامه ی کاربردی)

۱-۲صفحه اصلی
این نرم افزار توسط دلفی نوشته شده است که توضیحات نرم افزار در پایین مشخص شده.

شکل(۱-۲)
این نمایی کلی از صفحهی ابتدایی آن است که با استفاده از منو داخل نرم افزار دلفی آن را طراحی شده که دارای ۵ منو می باشد از قبیل customer,cash,company,moaref,transaction

۲-۲طراحی مشتری
در بر گیرنده ی اطلاعات مشتری ها و افراد دارای حساب می باشد که برای اضافه و یا ویرایش مشتری از این منو و قسمت add استفاده می شود.

شکل(۲-۲)
که پس از زدن دکمه add صفحه ای به شکل زیر برای شما نمایش داده خواهد شد.

شکل(۳-۲)

۳-۲طریقه ی استفاده ی صفحات

برای فراخانی هر صفحه در صفحه ای دیگر انتدا باید آن صفحه use unit شود که این کار از دو روش امکان پذیر می باشد.
۱-بازرفتن به منوی فایل و بعد انتخاب گزینه use unit.
2-با زدن کلید های ترکیبی alt+f11 .
صفحه ای به صورت زیر باز خواهد گردید:

شکل(۴-۲)
در این صفحه تمام صفحات نا آشنا برای صفحه ای که بر روی آن use unit کرده ایم را نشان می دهد.
حال با انتخاب unit مورد نظر می توان از اطلاعات آن form دیگر در این صفحه استفاده کرد.
۴-۲Unit چیست؟
هر فرم دارای ۲ نام می باشد ۱-نام منطقی ۲-نام فیزیکی.
نام منطقی: به نامی که ما آن را در پروژه قرار می دهیم(از طریق خصوصیت name که در پروژه آن را به آن نام می شناسیم.
نام فیزیکی : نامی که فرم با آن نام بر روی هارد کامپیوتر ذخیره می گردد unit آن می نامیم.

۵-۲طریقه ارتباط میان sql , delphi
قبل از هر چیز ما باید ارتباطی بین دلفی و sql server انجام دهیم. ما برای این کار در هر پروژه از یک data module استفاده می کنیم که فرمی است به صورت زیر:

 

شکل(۵-۲)
حا برای ارتباط بین این ۲ نرم افزار از سربرگ ado گزینه adoconnection را انتخاب می کنیم همانند شکل زیر :

شکل(۶-۲)
که دور آنها با دایره مشخص شده است.

حال آن را بر روی datamodule قرار می دهیم
پس از آن از خصوصیت connectionstring آن را به بانک وصل می کنیم. همانند شکل زیر:

شکل(۷-۲)
پس از آن

شکل(۸-۲)
و با انتخاب Microsoft olb db provider for sql server و زدن دکمه next :

شکل(۹-۲)

در شکل بالا ابتدا در گزینه ۱ فقط ۱ نقطه می زنیم. پس از آن use windose nt را انتخاب می کنیمو در گزینه ۳ نام بانک مورد نطر را انتخاب می کنیم.و پس از آن test conection و بعد از آن ok می کنیم. حال برنامه به بانک متصل شده است.
پس از آن یک adoquery از سربرگ ado بر روی datamodule قرار می دهیم.
که آن را از خصوصیت connection به adoconnection مورد نظر که به بانک متصل کرده ایم وصل می کنیم.

پس از آن از سربرگ data access یک datasorceبر روی datamodule خود قرار می دهیم و آن را از خصوصیت dataset به adoquery وصل می کنیم.که شکل datamoduleبه صورت زیر در خواهد آمد:

شکل(۱۰-۲)
حال برای برقراری ارتباط بین بانک و برنامه در هر فرم این datamodule باید use گردد و پس از آن از کد هایی که برای هر صفحه در پایین توضیح داده شده استفاده میدد.

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

شکل(۱۱-۲)
داشته است نمایش داده شده و پس از آن دکمه ذخیره تبدیل به ویرایش می شود.

برای نمایش داده ها به این صورت بر روی edit مورد نظر کلید کرده و در event های آن event – onexit که به هنگام خروج از edit مورد نظر اجرا می شود کد زیر را نوشت:

شکل(۱۲-۲)
این کد باعث می شود یا اطلاعاتی که در بانک است ابتدا جستجو شده پس از آن اگر داده ای پیدا کرد آن را نمایش می دهد.

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

شکل(۱۳-۲)
با زدن دکمه اصراف تمام اطلاعات از صفحه پاک شده و در حالت دریافت اطلاعات جدید می شود.
که کد آن به صورت زیر می باشد:

شکل(۱۴-۲)
این دستورات form را به حالت اولیه باز می گرداند.
با زدن کلید صفحه جستجوی اطلاعات مربوط به مشتری باز می شود و با ۲ با کلید بر روی اطلاعات هرکدام از مشتری ها تمام ازلاعات مربوط به مشتری باز می شود و آماده ویرایش می گردد.

۶-۲طریقه طراحی صفحه جستجوی مشتری
این صفحه برای نمایش اطلاعات مربوط به مشتری بوده و برای جستجوی اطلاعات مشتری به کار میرود.

شکل(۱۵-۲)
وپس از کلید بر روی serch صفحه جستجوی مشتری باز می شود.

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