PDA

View Full Version : برنامه دفترچه تلفن بهمراه نمودار ER و وتوضیحات جداول



asghar2008
دوشنبه 09 بهمن 1391, 23:17 عصر
سلام

با اجازه از اساتید گرامی و دوستان محترم

اینو برای آزمایشگاه پایگاه داده آماده کرده بودم.گفتم اینجا بذار شاید به درد بعضی از دوستان بخوره.

تصاویری از برنامه:


99180
99181
99182
99183
99184


فردا نمودار ER به همراه توضیحات رو میذارم.

از دوستان گلم ممنون میشم در مورد ظاهر برنامه نظر بدن.میدونم برنامه ساده است(من خودم مبتدی ام). اما خوشحال میشم انتقاد و پیشنهاد کنید.(برای بهتر شدن کارهای آینده !)

asghar2008
دوشنبه 09 بهمن 1391, 23:32 عصر
سلام

اینم نمودار ER بهمراه فایل Word که ضمیمه شده.

تصویر:

99186

اینم فایل وردش:

JaVa
دوشنبه 09 بهمن 1391, 23:41 عصر
سلام . خسته نباشید.

برنامه خوبی نوشتید. و اکثر فرماتون هم کاربر پسند هستند بغیر از فرم حذف و ویرایش - فرم مشاهده و جستجو. می تونستید در فرم حذف و ویرایش اون گرید رو بالای فرم قرار می دادید و همچنین خاصیت SelectionMode رو برابر FullRowSelect قرار می دادید که کاربر وقتی روی یکی از رکوردهای گرید کلیک می کنه کل سطر انتخاب بشه. و من اینجور تصور می کنم که به احتمال زیاد شما برای بدست آوردن کلید که می خواستید از طریق اون رکورد رو حذف کنید گفتید "حداقل یکبار بر روی رکورد کلیک کنید" بجاش می تونستید هیچی ننویسد و نیازی به گفتن این قضیه نبود خود کاربر واقعا نمی فهمید که باید روی رکورد کلیک کنه بعد دکمه حذف رو بزنه کافی بود برای شرط مثلا اینجور می نوشتید DGV.CurrentRow.Cells(0).Value که دیگه نیازی به کلیک کاربر نیاشه که شماره رکورد رو بدست بیارید.(البته اینی که گفتم فقط یه فرض هست) در ضمن فرم مشاهده و جستجو هم می تونست از لحاظ گرافیکی قشنگتر باشه.

بازم آفرین به شما که پروژه پایانی(آزپایگاه) رو برای دانلود گذاشتید توی سایت برنامه نویس.:تشویق::تشویق:

اگه امکانش هست یه توضیحی هم در خصوص برقراری ارتباط با بانکتون هم بگید که از چه روشی استفاده کردید.((همراه پروژه ویژوال استودیو))

بازم تشکر:لبخندساده:

asghar2008
سه شنبه 10 بهمن 1391, 00:03 صبح
اگه امکانش هست یه توضیحی هم در خصوص برقراری ارتباط با بانکتون هم بگید که از چه روشی استفاده کردید.((همراه پروژه ویژوال استودیو))

بازم تشکر:لبخندساده:

بنده هم از شما دوست عزیز تشکر میکنم.

برنامه با VS2008 و پایگاه داده آن توسط SQL Express2005 که همراه خود VS2008 نصب میشه پیاده سازی شده.

برای اتصال به بانک از رشته اتصال زیر استفاده شده:
con.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database\dbphone.mdf;Integrated Security=True;User Instance=True"

و هم چنین برای ذخیره داده ها از ADO.NET استفاده شده که دوست گرامی اوبالیت به بو در اینجا (http://barnamenevis.org/showthread.php?133060-ADO.NET-%D8%AF%D8%B1-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA) توضیحات کامل رو داده اند

asghar2008
سه شنبه 10 بهمن 1391, 00:18 صبح
فرم اصلی برنامه:


99189


وبقیه فرم ها:

99190

99191

99192

99193

M.KH-SH
سه شنبه 10 بهمن 1391, 01:26 صبح
نرم افزار جالبی هستش ولی دوست عزیز بهتر نبود خاصیت allow add rows رو false میکردی و خاصیت delete row.

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

دوست گلم میدونم بلد هستی ولی برای عکس گرفتن از فرم ها از دکمه alt+ print screen استفاده کن که فقط خود فرم بیوفته که نیاز به ویرایش نداشته باشه و شکل فرم هم دست نخورده باشه.

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

asghar2008
سه شنبه 10 بهمن 1391, 09:26 صبح
نرم افزار جالبی هستش ولی دوست عزیز بهتر نبود خاصیت allow add rows رو false میکردی و خاصیت delete row.

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

دوست گلم میدونم بلد هستی ولی برای عکس گرفتن از فرم ها از دکمه alt+ print screen استفاده کن که فقط خود فرم بیوفته که نیاز به ویرایش نداشته باشه و شکل فرم هم دست نخورده باشه.

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

سلام
ممنون از راهنماییتون.
تنظیماتی که گفتین رو اعمال میکنم.

به نکته ی خیلی جالبی(alt+printscreen) اشاره کردین.بازم ممنون .

خیلی خوشحال میشم که اساتیدی مثل شما اشکالات و نواقص برنامه رو گوشزد میکنند.:لبخندساده:
با تشکر

ghayour
سه شنبه 10 بهمن 1391, 11:25 صبح
سلام
به نظر من فرم مشاهده و جستجو کمی گیج کننده باشه به خاطر تعداد زیاد دیتاگریدویو. همچنین اگه دیتاگریدویو اصلی بزرگتر باشد خیلی بهتر است چون کاربر به تعداد افراد بیشتری اشراف دارد.
به نظر من بهتره دیتاگریدویو اضافه رو برداری و در صورتی که کاربر دوبار روی اسم فرد کلیک کرد مشخصات کامل با عکس فرد بر روی فرمی زیبا ظاهر شود.
ضمنا چرا اسکرول بار پایین همین فرم از چپ به راست هست؟!! بهتره اصلاحش کنی.
همچنین کنترلهای Close , Maximize , Minimize بهتره در سمت راست فرم باشه چون کاربر به این طرف عادت کرده.

و در آخر هم در مورد تصویر برداری از فرم هم میتونی در ویندوز 7 و 8 از Sniping Tool استفاده کنی که خیلی جالب هست و چهار حالت خاص برای تصویر برداری از صفحه داره.

موفق باشید

amirmms
سه شنبه 10 بهمن 1391, 12:09 عصر
نرم افزار خوبیه ولی چون منم خودم دارم یکیشو میزنم سعی کن یه چندتا چیز بذاری توش :
1- تاریخ تولد مخاطب را دریافت کنه و روز تولد به کاربر اعلام کنه که تولد مخاطب هست /.
2- سعی کنه کارت ویزیت بزنه ، یعنی نام مخاطب رو داره شمارشم داره و .... ، راحت میتونه کارت ویزیت رو بزنه/.

در آخر خوب هست /. به امید موفقیت روز افزون شما:لبخند:

asghar2008
سه شنبه 10 بهمن 1391, 12:11 عصر
سلام
به نظر من فرم مشاهده و جستجو کمی گیج کننده باشه به خاطر تعداد زیاد دیتاگریدویو. همچنین اگه دیتاگریدویو اصلی بزرگتر باشد خیلی بهتر است چون کاربر به تعداد افراد بیشتری اشراف دارد.
به نظر من بهتره دیتاگریدویو اضافه رو برداری و در صورتی که کاربر دوبار روی اسم فرد کلیک کرد مشخصات کامل با عکس فرد بر روی فرمی زیبا ظاهر شود.
ضمنا چرا اسکرول بار پایین همین فرم از چپ به راست هست؟!! بهتره اصلاحش کنی.
همچنین کنترلهای Close , Maximize , Minimize بهتره در سمت راست فرم باشه چون کاربر به این طرف عادت کرده.

و در آخر هم در مورد تصویر برداری از فرم هم میتونی در ویندوز 7 و 8 از Sniping Tool استفاده کنی که خیلی جالب هست و چهار حالت خاص برای تصویر برداری از صفحه داره.

موفق باشید

سلام

ممنون دوست عزیز

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

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

نام--------------------------------نام خانوادگی------------------------موبایل

علی-------------------------------مولایی-----------------------------09125555
علی-------------------------------مولایی-----------------------------09128888
علی-------------------------------مولایی-----------------------------09123333
علی-------------------------------مولایی-----------------------------09126666

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

به نظر شما و دوستان از دیتا گرید های متعدد استفاده کنم یا همشون Join کرده ودر یک گرید بریزم؟


در مورد Close , Maximize , Minimize نظر شما درسته . دلیل چپ چین کردن این بود که گفتم فرم ها RTL باشه . اینهارم تغییر میدم.

بازم مرسی از انتقادات وپیشنهادات سازنده تون.

asghar2008
سه شنبه 10 بهمن 1391, 12:46 عصر
نرم افزار خوبیه ولی چون منم خودم دارم یکیشو میزنم سعی کن یه چندتا چیز بذاری توش :
1- تاریخ تولد مخاطب را دریافت کنه و روز تولد به کاربر اعلام کنه که تولد مخاطب هست /.
2- سعی کنه کارت ویزیت بزنه ، یعنی نام مخاطب رو داره شمارشم داره و .... ، راحت میتونه کارت ویزیت رو بزنه/.

در آخر خوب هست /. به امید موفقیت روز افزون شما:لبخند:

سلام
ممنون دوست عزیز

در مورد 1 : پیشنهاد قشنگیه. ان شاء الله پیاده سازی میشه.
در مورد2: دقیقا نمیدونم چطوری باید پیاده سازی شه.ممنون میشم روش پیاده سازی رو مختصر توضیح بدین.

مرسی

M.KH-SH
سه شنبه 10 بهمن 1391, 13:02 عصر
در مورد2: دقیقا نمیدونم چطوری باید پیاده سازی شه.ممنون میشم روش پیاده سازی رو مختصر توضیح بدین.

قبل از گفتن این بهتره که تمام کنترل ها را در یک group box قرار بدین و group box رو هم dock کنین اینجوری کار خیلی تمیز تر میشه و قابلیت re size فرم رو هم تا حدی میدی البته بهتر هستش که از table layout panel استفاده کنی و کنترل ها رو این سوار کنی (یکم کارت سخت میشه)

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

ببین دوست من برای این شما نیاز به استفاده از توابع drawing استفاده کنی و از graphic ها شما باید یک عکس رو انتخاب کنی به عنوان زمینه کار و بر روی اون شماره ها و توضیحات خاصی رو بنویسی که برنامه باید به صورت auto این کار رو انجام بده.

روش دوم اینه یک فرم none بسازی و عکسی رو به صورت back ground قرار بدی و بر روی اون از label با back ground = transparent استفاده کن و اطلاعات روش قرار بده
بعد هم مثل همیشه یک پرینت قرار بده و تمام.

asghar2008
سه شنبه 10 بهمن 1391, 13:27 عصر
ببین دوست من برای این شما نیاز به استفاده از توابع drawing استفاده کنی و از graphic ها شما باید یک عکس رو انتخاب کنی به عنوان زمینه کار و بر روی اون شماره ها و توضیحات خاصی رو بنویسی که برنامه باید به صورت auto این کار رو انجام بده.

متاسفانه با توابع Drawing کار نکردم.


روش دوم اینه یک فرم none بسازی و عکسی رو به صورت back ground قرار بدی و بر روی اون از label با back ground = transparent استفاده کن و اطلاعات روش قرار بده
بعد هم مثل همیشه یک پرینت قرار بده و تمام.

با روش دوم که فرمودید میشه پیاده سازی کرد. فقط باید کل فرم رو به Printer بفرستیم. درسته؟

M.KH-SH
سه شنبه 10 بهمن 1391, 13:31 عصر
بله کل فرم رو به پرینت بفرستین البته قبل از ارسال باید فرم حتما none بشه و هرچی button و امثال اینا هست رو به صورت hide در بیارین که در print نمایش داده نشه.

MOR_MS
سه شنبه 10 بهمن 1391, 14:12 عصر
با سلام
من متوجه نشدم شما براي هر كدام از شماره تلفن يا موبايل و ديگر مشخصات يك جدول ايجاد كردين ؟

اگه انيطوري ميشه تمام شماره تلفن ها و ادرس هار اكتر.نكي فرد را در يك جدول اورد و در نمايش روي فرم يك گريد مشخصات فردي و در گريد دوم تمام شماره تلفنها و ادرسهاي الكترونكي را نمايش داد و اينطوري فرم زيبا تر ميشه و ميتوني اطلاعت ديگه را هم نمايش بدين تصوير ضميمه مربوط به برنامه سپرده است كه يك فرم جهت نمايش اطلاعات درست كردم
99204

asghar2008
سه شنبه 10 بهمن 1391, 14:48 عصر
با سلام
من متوجه نشدم شما براي هر كدام از شماره تلفن يا موبايل و ديگر مشخصات يك جدول ايجاد كردين ؟

99204

توضیحات کامل رو دوست عزیزمون mrg_vb دادند




فقط من اینجا توی یه چیز گیر کردم الان کلید خارجی اینا چیه ؟

در نمودار ER پست شماره 2# (http://barnamenevis.org/showthread.php?381523-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AF%D9%81%D8%AA%D8%B1%DA%86%D9%87-%D8%AA%D9%84%D9%81%D9%86-%D8%A8%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%86%D9%85%D9%88%D8%AF%D8%A7%D8%B1-ER-%D9%88-%D9%88%D8%AA%D9%88%D8%B6%DB%8C%D8%AD%D8%A7%D8%AA-%D8%AC%D8%AF%D8%A7%D9%88%D9%84&p=1688232&viewfull=1#post1688232) نکته اصلی رو مشخص کردم.

من یه فیلدی با نام IDS در جدول مشخصات در نظر گرفتم که با اضافه کردن شخص جدید بعلاوه 1 میشه.

نکته : اگر یک شخص هر کدام از موجودیت های (تلفن ثابت ، موبایل ، ایمیل ،وب سایت و فکس ) را داشته باشد آن موقع ID شخص(IDS) در کنار آنها ظاهر می شود.

JaVa
سه شنبه 10 بهمن 1391, 15:09 عصر
توضیحات کامل رو دوست عزیزمون mrg_vb دادند
ببخشید که پاکشون کردم. الان دوباره می نویسمشون


کار ایشون کاملا درسته.

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

و هر فردی هم می تونه چندین شماره تلفن - چندین پست الکترونیکی - چندین شماره فکس و... داشته باشه.

ایشون هم اومده به این موضوعات به عنوان یک مجودیت جدید نگاه کرده که بازم این ایرادی نداره.

در ضمن ممنون از پاسخگویی به سئوال بنده

موفق باشید.

MOR_MS
سه شنبه 10 بهمن 1391, 16:05 عصر
99209با سلام
من براي شماره تلفن هاي مشتري ها جدولها را به اين صورن تنظيم كردم
با توجه به توضيحاتي كه داديد در مورد نرمال سازي در اين روش من به مشكلي بر نخواهم خورد ؟ لطفا راهنماي كنيد

M.KH-SH
سه شنبه 10 بهمن 1391, 17:29 عصر
چرا مشکل میخورد به شدت:دی

دوست من مگر اینکه در هنگام ویرایش کد ملی شما بیای 3 تا کوئری update بنویسی ;)
بهتر نبود به جای اینا و این کد ملی از id کاربر برای بقیه استفاده میکردی تا دیگه هیچ وقت مشکل نخوری؟
انوقت تنها برای delete کاربر باید چند عدد کوئری کوچک برای پاک کردن بنویسی نه اینکه برای update هم بنویسی.

asghar2008
سه شنبه 10 بهمن 1391, 18:08 عصر
99209


به نظر دوستان بهتر نبود در جدول آدرس بجای فیلد های (استان-شهر-آدرس) یه فیلد با نام آدرس قرار داده میشد؟

اگه میخوای آدرس رو وارد کنی به نظرم بهتره فیلد های استان وشهر رو حذف کنید ویه فیلد آدرس قرار بدین.

asghar2008
سه شنبه 10 بهمن 1391, 18:12 عصر
اینم از ارتباط جداول .


99221


اگه ایراد و مشکلی داره ، دوستان وعزیزان محبت کنند وبگند تا تغییرات رو اعمال کنیم.

باتشکر

MOR_MS
سه شنبه 10 بهمن 1391, 20:41 عصر
سلام
خوب هر برنامه اي يك سري مشخصات خاص خودشو داره برنامه من به اين اطلاعات نياز داره اين قسمت اطلاعاتشو از ساير قسمتها ميگيره كه برام فيلتر كردن استانها و شهر ها جهت آمار گيري مهمه

MOR_MS
سه شنبه 10 بهمن 1391, 20:45 عصر
بهتر نبود به جای اینا و این کد ملی از id کاربر برای بقیه استفاده میکردی تا دیگه هیچ وقت مشکل نخوری؟

سلام
كد ملي من همان ids دوستمون توي جدولهاش است بقيه جدولها هم id خودشونو دارند و اينكه كد ملي قابل ويرايش نخواهد بود
درضمن من توي جدولها از رابطه ها استفاده نمي كنم ترجيح ميدم از كد نويسي استفاده كنم

amirmms
سه شنبه 10 بهمن 1391, 22:00 عصر
سلام
ممنون دوست عزیز

در مورد 1 : پیشنهاد قشنگیه. ان شاء الله پیاده سازی میشه.
در مورد2: دقیقا نمیدونم چطوری باید پیاده سازی شه.ممنون میشم روش پیاده سازی رو مختصر توضیح بدین.

مرسی

خوبه
در مورد 2 :
شما یه فیلد دیگه به دیتا بیستون اضافه کنید که عکس مخاطب رو بگیره و سپس ، یک کارت ویزیت برای طرف بزنه
کارت ویزیت میتونه شامل موارد ذیل باشه :
1- نام و نام خانوادگی مخاطب
2- تخصص یا شغل شخص
3- عکس مخاطب
4- تلفن همراه + تلفن ثابت مخاطب
5- ایمیل مخاطب
6- سایت مخاطب
همین /.
می تونی با تمام موتور های ریپورت درست کنی .
موفق باشی

asghar2008
چهارشنبه 11 بهمن 1391, 15:33 عصر
كد ملي من همان ids دوستمون توي جدولهاش است بقيه جدولها هم id خودشونو دارند و اينكه كد ملي قابل ويرايش نخواهد بود

سلام

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



درضمن من توي جدولها از رابطه ها استفاده نمي كنم ترجيح ميدم از كد نويسي استفاده كنم


رابطه ها باعث یکپارچگی جداول میشه. بهتره از رابطه ها استفاده کنید.

MOR_MS
چهارشنبه 11 بهمن 1391, 17:08 عصر
بهتر از یه id جداگونه استفاده کنید . اگه کاربر کد ملی رو اشتباه وارد کنه اون موقع واست مشکل ساز میشه.




باسلام
منظور از اشتباه چيه ؟ يعني كد ملي كسي ديگه رو ؟ در غير اينصورت اول بررسي ميكنم كه درست باشد يا نه

asghar2008
چهارشنبه 11 بهمن 1391, 17:32 عصر
بله ، منظورم کد ملی شخص دیگه است.