PDA

View Full Version : طراحی واسط کاربر



iman_pc_love
چهارشنبه 19 بهمن 1390, 21:57 عصر
فرض کنید یه برنامه برای ثبت شماره تلفن و آدرس افراد می خایم طراحی کنیم برنامه باید طوری باشه که نام و نام خانوادگی و تعداد نا مشخصی (0 الی ...) آدرس و تعداد نا مشخصی تلفن برای هر نفر را بگیرد خوب برای دریافت نام و نام خانوادگی از TextBox معمولی استفاده می کنیم حالا 2 تا سوال دارم 1-برای دریافت آدرسها یا تلفنها چه راهی را پیشنهاد می دید؟ 2- برای نمایش مشخصات هر فرد از چی استفاده کنم؟ با توجه به اینکه هر فرد ممکنه چند آدرس و چند شماره تلفن داشته باشه

shadi khanum
چهارشنبه 19 بهمن 1390, 22:35 عصر
میتونی از گرید استفاده کنی واسه نشون دادن چند ردیف

iman_pc_love
چهارشنبه 19 بهمن 1390, 23:57 عصر
گرید ساده ترین راه حله برای ورود اطلاعات هم بد ولی باید راه بهتر و زیبا تری هم باشه - برای نمایش اطلاعات که فکر نکنم خوب باشه

Parham.D
پنج شنبه 20 بهمن 1390, 07:33 صبح
قبل از اینکه مسئله واسط کاربر را حل کنید این مشکل را حل کنید که گرفتن تعداد نامحدود شماره تلفن و آدرس چه معنایی داره؟ یعنی اگر قرار باشه یک کاربر تعداد 3 میلیون شماره تلفن وارد کنه برنامه شما اون تعداد را دریافت میکنه؟؟!! با این کار چه در سطح ویندوز، چه در سطح وب برنامه شما با مشکل امنیتی و غیره مواجه میشه. اول بهتر هست که تعدادی مشخص ورودی داده از انواع مختلف برای هر نفر در نظر بگیرید و بر اساس اون طراحی را شروع کنید. برای دریافت اطلاعات، یک فرم پویا به نظر جالب میاد. یعنی بخشی از کنترلها در زمان طراحی و بخشی در زمان اجرا اضافه بشن. برای مثال یک شماره دریافت کنه و یک دکمه به نام اضافه کردن شماره جدید داشته باشید. اگر کاربر روی این دکمه کلیک کرد اندازه فرم بیشتر بشه و کنترلهای دریافت شماره جدید ظاهر بشن. برای نمایش توسط گرید بستگی به مهارت شما در استفاده از این کنترل داره. میشه این کنترل را زیبا و سفارشی نمایش داد.

ehsan_starlight
پنج شنبه 20 بهمن 1390, 08:32 صبح
سلام دوست من...

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

خودم حدود یک هفته پیش شروع به ساخت همچین برنامه ای کردم (البته برای نیاز خودم)
تصویرش رو ضمیمه میکنم ، شاید برات مفید باشه

iman_pc_love
پنج شنبه 20 بهمن 1390, 11:21 صبح
قبل از اینکه مسئله واسط کاربر را حل کنید این مشکل را حل کنید که گرفتن تعداد نامحدود شماره تلفن و آدرس چه معنایی داره؟ یعنی اگر قرار باشه یک کاربر تعداد 3 میلیون شماره تلفن وارد کنه برنامه شما اون تعداد را دریافت میکنه؟

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

AliSaeedi_v
پنج شنبه 20 بهمن 1390, 11:43 صبح
سلام شما اگه جداول پایگاه داده خودتون رو اول به خوبی و کاملا نرمال طراحی کنید طراحی واسط کاربر هم خیلی ساده میشه.برای ربط دادن آدرس باید مثلا مشخص کنید آدرس محل کار-خونه-همراه هستش یا نوع دیگه ای

ehsan_starlight
پنج شنبه 20 بهمن 1390, 12:15 عصر
برای اینکار به نظر من :
1)مثلا برای آدرس یک User Control بساز
2)یه کلید بزار تا کاربر با هر بار کلیک روی اون به پنل برنامه همون User Control آدرس اضافه بشه
3)میمونه بانک که میتونی با دستور Alter table به صورت Runtime ستون جدید اضافه کنی

shadi khanum
پنج شنبه 20 بهمن 1390, 12:32 عصر
ببین بالاخره وقتی میخوای تعدادی از یه چیز رو ذخیره کنی باید یا گرید یا لیست باکس استفاده کنی دیگه یا میتونی یه کار دیگه هم بکنی که یه خورده کد نویسیش سخته و شاید شکل فرمت رو هم خیلی قشنگ نکنه.. میتونی کاربر جایی که میخواد شماره تلفن وارد کنه یه دکمه + بذاری که به ازای کلیک روی اون یه textbox جدید runtime اضافه کنی به فرم و توش کاربر شماره تلفن جدیدش ر وارد کنه..

AliSaeedi_v
پنج شنبه 20 بهمن 1390, 12:37 عصر
برای اینکار به نظر من :
1)مثلا برای آدرس یک User Control بساز
2)یه کلید بزار تا کاربر با هر بار کلیک روی اون به پنل برنامه همون User Control آدرس اضافه بشه
3)میمونه بانک که میتونی با دستور Alter table به صورت Runtime ستون جدید اضافه کنی

احسان جون اضافه کردن ستون جدید اصلا نرمال نیست و استاندارد نیست.

ya30ien2
پنج شنبه 20 بهمن 1390, 13:03 عصر
من فکر میکنم تعداد محدودی تکست باکس برای تلفن بزاری کافی و حتی بهتر باشه که کاربر هرچندتا رو خواست پر کنه
برای آدرس هم یه آدرس منزل و یه آدرس محل کار
اینجوری فکر میکنم کارت هم شیکتر و بهتر جواب بده
فکرش رو بکن کسی که مثلا 10 تا شماره تلفن داشته باشه چطور میخوای پیداش کنی
بازم من نمیدونم واسه چی میخوای این کار رو بکنی

m2_farzan
پنج شنبه 20 بهمن 1390, 14:07 عصر
* برای دریافت تعداد نامحدودی از شماره میتونید از ComboBox و یا حتی یک فرم جداگانه استفاده کنید.

* برای نمایش آنها هم میتوانید از همان ComboBox استفاده کنید و یا آنها را زیر هم و در رکورد های جدید بگذارید.

* برای ذخیره آنها در پایگاه داده هم میتونید اونها رو به صورت String ذخیره کنید و آنها را با یک کاراکتر خاص از هم جدا کنید.

iman_pc_love
پنج شنبه 20 بهمن 1390, 19:30 عصر
اصلا مشکل پیاده سازی نیست فقط ظاهر حتی اگر روی کاغذ هم شده مفیده

AliSaeedi_v
پنج شنبه 20 بهمن 1390, 19:56 عصر
* برای دریافت تعداد نامحدودی از شماره میتونید از ComboBox و یا حتی یک فرم جداگانه استفاده کنید.

* برای نمایش آنها هم میتوانید از همان ComboBox استفاده کنید و یا آنها را زیر هم و در رکورد های جدید بگذارید.

* برای ذخیره آنها در پایگاه داده هم میتونید اونها رو به صورت String ذخیره کنید و آنها را با یک کاراکتر خاص از هم جدا کنید.
ذخیره در دیتابیس با این روش اصلا نرمال نیست

iman_pc_love
پنج شنبه 20 بهمن 1390, 23:18 عصر
مثل اینکه موضوع بحث منحرف شده، از طراحی واسط رفته رو پایگاه داده

m2_farzan
جمعه 21 بهمن 1390, 10:46 صبح
ذخیره در دیتابیس با این روش اصلا نرمال نیست

موافقم. شاید سازنده ی برنامه راه بهتری داشته باشه. به هر حال بحث اصلی مربوط به طراحیه.