PDA

View Full Version : Multi Select نمودن رکوردها



ali190
دوشنبه 17 آبان 1389, 19:11 عصر
با سلام و عرض خسته نباشید محضر تمامی عزیزان
دوستان بنده میخوام بتونم رکوردها مو multi select کنم و بعد عملیات دلخواهم رو روشون انجام بدم (مثلاً حذف اطلاعات انتخاب شده)
البته معیار انتخاب رکوردها هم فیلد id هست
من در فایل ضمیمه از data grid استفاده کردم
آیا data grid پتانسیل انجام یک همچین کاری رو داره؟
من در واقع نیازمند کنترلی هستم که چک باکس هم داشته باشه ، که ابتدا رکوردهای مورد نیاز مارک بشه سپس عملیات مورد نظر روشون انجام بشه
در واقع اینطور بگم که نتیجه اطلاعات select شده رو هم بشه به یک کنترل سورس یک adodc نسبت داد و هم بشه با یک command سلکت شده ها رو حذف کرد یا ازشون گزارش گرفت
از لیست باکس نمیتونم استفاده کنم چون نیاز دارم چندین ستون رو نمایش بدم

ممنون میشم کمکم کنید
فایل پیوست رو جهت اصلاح خدمتتون قرار میدم
ممنون
یاعلی

mpmsoft
دوشنبه 17 آبان 1389, 21:17 عصر
بهترین گزینه VsFlexGrid هست و امکان چک باکس رو هم داره
لطفا درخواست لینک دانلود نفرمائید.خودتون سرچ کنید

ali190
دوشنبه 17 آبان 1389, 21:34 عصر
سلام
mpmsoft ممنون از راهنماییتون
یک نمونه با VsFlexGrid درست کردم
اگر المکانش هست میخوام :
1-یک ستون چک باکس بهش اضافه بشه
2-بتونم رکوردهای دلخواهم رو سلکت (multi select) کنم و رکوردهای انتخاب شده رو حذف کنم
البته رکوردها بر حسب id ای که دارن باید شناسایی شوند (معیار select شدن)
ممنون میشم کمکم کنید
یاعلی

ali190
سه شنبه 18 آبان 1389, 12:07 عصر
باسلام خدمت همه اساتید
در تالار سرچ کردم ، منتها مطلبی در این خصوص نیافتم
میشه کمکم کنید:تشویق:
ممنون

vbhamed
سه شنبه 18 آبان 1389, 15:59 عصر
سلام

يك فيلد به نام Selected تو جدول تعريف كنيد و در گرايد به صورت چك باكس نمايش بدين و معيار انتخابتون باشه اون فيلد
بعد از انتخاب مي تونيد آي دي رو هم بدست بياريد (كاري مشابه سؤال قبليتون در مورد حذف از Treeview)

ali190
سه شنبه 18 آبان 1389, 19:14 عصر
سلام

يك فيلد به نام Selected تو جدول تعريف كنيد و در گرايد به صورت چك باكس نمايش بدين و معيار انتخابتون باشه اون فيلد
بعد از انتخاب مي تونيد آي دي رو هم بدست بياريد (كاري مشابه سؤال قبليتون در مورد حذف از Treeview)
با راهنمایی vbhamed عزیز تونستم مشکلم رو حل کنم
نمونه اصلاح شده رو خدمت دوستان جهت استفاده قرار میدم
ممنون و متشکر
یاعلی

ali190
سه شنبه 18 آبان 1389, 22:15 عصر
سلام
دوستان نمونه ای دیگه از جابجایی اطلاعات بین دو VSFlexGrid (که امیدوارم مورد قبول واقع بشه ) که درست کردم خدمتتون قرار میدم
مجدداً از راهنمایی vbhamed عزیز تشکر میکنم
یاعلی

vbhamed
چهارشنبه 19 آبان 1389, 11:08 صبح
سلام

فقط دستور انتقال رو ساده تر هم مي شد نوشت چون همه فيلدها منتقل شدن و ساختار 2 تا جدول هم يكي هست

INSERT INTO Table2 SELECT * FROM Table1 WHERE (Table1.[select])=Yes

ali190
جمعه 21 آبان 1389, 20:55 عصر
با سلام و عرض خسته نباشید
دوستان من از طریق کدنویسی بین دو جدول table1 و table2 ام رابطه یک به چند برقرار نمودم
حالا میخوام زمانیکه بر روی رکورد والد قرار میگیرم علاوه بر رکورد والد کلیه رکوردهای فرزند نیز حذف شوند
کدهای لازم رو پشت دکمه "حذف نوشتم"
ولی متاسفانه در کمال تعجب کدها کار نمیکنند و فقط رکوردهای فرزند اولین رکورد والد (بجز خود رکورد والد اول) حذف میشوند و دیگر کدها کار نمیکنند
نمونه رو جهت ویرایش خدمتتون قرار میدم
نمونه با استفاده از VSFlexGrid کار شده است
ممنون و متشکر
یاعلی

vbhamed
یک شنبه 23 آبان 1389, 11:18 صبح
سلام


Private Sub Command1_Click()

On Error Resume Next

Adodc1.Recordset.Delete adAffectCurrent
Adodc1.Refresh
Adodc1.Refresh

Dim RES As String

If Adodc2.Recordset.State = 1 Then Adodc2.Recordset.Close
Adodc2.Recordset.Open "delete * FROM Table2 WHERE id='" & Text1.Text & "'"
Adodc2.Refresh
Adodc2.Refresh

End Sub


تو كد بالا كه مربوط به دكمه حذف هست شما اول ركورد پدر رو حذف كردين بعد فرزندان
وقتي پدر حذف بشه خب مقدار Id درون Text1 هم تغيير مي كنه پس با دستورات بعدي فرزندان يك ركورد ديگه حذف ميشن نه ركورد مورد نظر

كافيه عكس عمل بالا رو انجام بدين
يعني اول فرزند بعد پدر

ali190
یک شنبه 23 آبان 1389, 17:14 عصر
سلام
ممنون از راهنماییتون جناب vbhamed عزیز
جای کدها عوض شد ، منتها رکورد های فرزند حذف میشه ولی از حذف شدن رکورد پدر خبری نیست
نمونه پیوستی رو جهت مشاهده خدمتتون قرار میدم
ممنون و متشکر
یاعلی

vbhamed
یک شنبه 23 آبان 1389, 17:31 عصر
سلام

برنامه شما اكتيوايكس هاي لازم همراش نيست

ali190
یک شنبه 23 آبان 1389, 19:20 عصر
سلام
شرمنده
آپ کردم
ممنون
یاعلی

ali190
چهارشنبه 26 آبان 1389, 11:43 صبح
سلام
دوستان عزیز مشکل رو متوجه شدید؟
برای خودم بروز این مشکل خیلی عجیب و غیرمنتظره بود
ظاهراً دستورات که مشکل ندارند :متعجب:

mahmood_s
پنج شنبه 27 آبان 1389, 08:21 صبح
براي حذف ركوردهاي مرتبط نيازبه كار خاصي نيست

زمان تعريف رابطه بايد وضعيت تاثير update و delete رو هم فعال كرد

بعد هر موقع كه فيلد پدر را حذف كنيد فيلدهاي فرزند هم حذف مي شوند

ali190
جمعه 12 آذر 1389, 09:30 صبح
باسلام
اندازه ستونهای VSFlexGrid منطبق با تعداد کاراکترهای موجود در فیلدها تغییر پیدا میکنه
چطوز میتونم اندازه ستونها رو ثابت در نظر بگیرم ، بطوریکه اندازه تعداد کاراکترها تاثیری در اندازه ستونها نداشته باشه و اندازه اونها تغییر پیدا نکنه
ممنون میشم کمکم کنید
یاعلی

mahmood_s
شنبه 13 آذر 1389, 15:50 عصر
خاصیت AutoResize رو false کن