PDA

View Full Version : سوال: انتخاب یک آیتم از کامبو فعلی و نمایش داده نشدن اون آیتم در کامبوهای دیگر



ali1112
شنبه 12 اسفند 1391, 15:07 عصر
سلام:قلب:

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

با تشکر

ali1112
شنبه 12 اسفند 1391, 16:21 عصر
بذارید واضح تر بگم:
من توی بانک اطاعاتیم یه جدول دارم که توی اون نام کالاها رو برای اجاره نوشتم،حالا اطلاعاتو از این جدول واکشی کرده و توی چهار کمبو باکس گذاشتم(یعنی منبع داده این 4 تا کمبو جدول Tbl_Kala میباشه)مثلا من توی جدول کالاهای بالابر،میکسر و ویبراتور رو دارم حالا میخوام اگه کاربر در کمبو باکس 1 میکسر رو انتخاب کرد در مابقی کمبو باکس میکسر نمایش داده نشه.
فقط میدونم دستورات رو باید توی رویداد Change کمبو باکس 1 باید بنویسم که با تغییر انتخاب عنصر،تغییرات به مابقی کمبو باکس ها اعمال بشه اما کدش رو نمیدونم چطوره دوستان میتونید لطف کنید و برام یه تکه کد در این مورد بذارید،البته به صورت 3 لایه.

veniz2008
شنبه 12 اسفند 1391, 20:23 عصر
سلام. میتونید با دیتاتیبل عمل فیلتر کردن رو انجام بدید. در رویداد selectedindexchange کمبو اول بایستی کمبو دوم رو فیلتر کنی. در کمبو دوم باید کمبو سوم رو فیلتر کنی و در کمبو سوم هم آخرین کمبو رو فیلتر کرد. بذارید بیشتر توضیح بدم. در کمبو اول و در رویداد ذکر شده باید نتیجه select رو که شامل همه کالاها هست درون یک دیتاتیبل بریزد با توجه به مقدار کمبو1 فیلتر کنید و درون کمبو 2 بریزید:


dt.DefaultView.RowFilter = "KalaName = '" + comboBox1.Text + "'";
comboBox2.DataSource = dt;
comboBox2.DisplayMember = "KalaName";

در رویداد ذکر شده برای کمبو 2، باید همزمان از مقادیر کمبو1 و کمبو 2 برای فیلتر کردن استفاده کنید و نتیجه رو درون کمبو 3 بریزید:

dt.DefaultView.RowFilter = "KalaName = '" + comboBox1.Text + "' OR KalaName = '" + comboBox2.Text + "'";
comboBox3.DataSource = dt;
comboBox3.DisplayMember = "KalaName";
و برای کمبو3 و در رویداد ذکر شده، باید همزمان از مقادیر کمبوهای 1 ،2 و 3 باری فیلتر کردن استفاده کنید و نتیجه رو دروم کمبو4 بریزید:

dt.DefaultView.RowFilter = "KalaName = '" + comboBox1.Text + "' OR KalaName = '" + comboBox2.Text + "' OR KalaName = '" + comboBox3.Text + "'";
comboBox4.DataSource = dt;
comboBox4.DisplayMember = "KalaName";
موفق باشی.

khokhan
یک شنبه 13 اسفند 1391, 00:07 صبح
درود بر شما دوست عزیز

من با توجه به گفته های شما این نمونه کوچیک رو ساختم

حالا شما یه نگاه بهش بندازین اگه همونی هست که شما می خواستین

با دیتابیس هم کار می کنیم

بدرود تا بعد

مهرداد صفا
یک شنبه 13 اسفند 1391, 12:07 عصر
سلام:قلب:

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

با تشکر


با سلام.
این طور که من متوجه شدم، شما تعدادی کالا در انبار برای اجاره دادن دارید که با اجاره دادن هر کالا موجودی انبار 0 شده و این کالا در لیست کالاها نمایش داده نمی شود؛ با این حساب به نظر من بهتر است که یک فیلد در جدول به صورت عددی برای تعداد موجودی یا به صورت bit برای تشخیص موجود بودن یا نبودن کالا در نظر بگیرید. در این صورت با اجاره دادن کالا مقدار این فیلد صفر می شود و در query مشخص می کنید که فقط کالاهای موجود را می خواهید.

ali1112
یک شنبه 13 اسفند 1391, 21:56 عصر
سلام. میتونید با دیتاتیبل عمل فیلتر کردن رو انجام بدید. در رویداد selectedindexchange کمبو اول بایستی کمبو دوم رو فیلتر کنی. در کمبو دوم باید کمبو سوم رو فیلتر کنی و در کمبو سوم هم آخرین کمبو رو فیلتر کرد. بذارید بیشتر توضیح بدم. در کمبو اول و در رویداد ذکر شده باید نتیجه select رو که شامل همه کالاها هست درون یک دیتاتیبل بریزد با توجه به مقدار کمبو1 فیلتر کنید و درون کمبو 2 بریزید:


dt.DefaultView.RowFilter = "KalaName = '" + comboBox1.Text + "'";
comboBox2.DataSource = dt;
comboBox2.DisplayMember = "KalaName";

در رویداد ذکر شده برای کمبو 2، باید همزمان از مقادیر کمبو1 و کمبو 2 برای فیلتر کردن استفاده کنید و نتیجه رو درون کمبو 3 بریزید:

dt.DefaultView.RowFilter = "KalaName = '" + comboBox1.Text + "' OR KalaName = '" + comboBox2.Text + "'";
comboBox3.DataSource = dt;
comboBox3.DisplayMember = "KalaName";
و برای کمبو3 و در رویداد ذکر شده، باید همزمان از مقادیر کمبوهای 1 ،2 و 3 باری فیلتر کردن استفاده کنید و نتیجه رو دروم کمبو4 بریزید:

dt.DefaultView.RowFilter = "KalaName = '" + comboBox1.Text + "' OR KalaName = '" + comboBox2.Text + "' OR KalaName = '" + comboBox3.Text + "'";
comboBox4.DataSource = dt;
comboBox4.DisplayMember = "KalaName";
موفق باشی.

سلام خیلی ممنون دوست گلم که جوابمو دادین
اما امتحان کردم نشد،بلد نبودم چطوری تو سه لایه بنویسمش!:اشتباه:

ali1112
یک شنبه 13 اسفند 1391, 21:58 عصر
درود بر شما دوست عزیز

من با توجه به گفته های شما این نمونه کوچیک رو ساختم

حالا شما یه نگاه بهش بندازین اگه همونی هست که شما می خواستین

با دیتابیس هم کار می کنیم

بدرود تا بعد

سلام
ممنون آقای khokhan (http://barnamenevis.org/member.php?131732-khokhan) عزیز
تا چک کنم ببینم آیا جواب میده یا نه؟؟؟

ali1112
یک شنبه 13 اسفند 1391, 22:00 عصر
با سلام.
این طور که من متوجه شدم، شما تعدادی کالا در انبار برای اجاره دادن دارید که با اجاره دادن هر کالا موجودی انبار 0 شده و این کالا در لیست کالاها نمایش داده نمی شود؛ با این حساب به نظر من بهتر است که یک فیلد در جدول به صورت عددی برای تعداد موجودی یا به صورت bit برای تشخیص موجود بودن یا نبودن کالا در نظر بگیرید. در این صورت با اجاره دادن کالا مقدار این فیلد صفر می شود و در query مشخص می کنید که فقط کالاهای موجود را می خواهید.

سلام ممنون از جوابتون اما من فعلا یک تکه کد میخوام که اگه کالایی در کمبو 1 انتخاب شد در کمبو 1 و2 و 3 نشون داده نشه
تکه کد سه لایه!