PDA

View Full Version : تغییر دسته جمعی اطلاعات توسط گرید



javadt
چهارشنبه 30 دی 1388, 13:34 عصر
سلام
من مثلا یکسری اطلاعت دارم توی بانکم
حالا اینها رو توی یک گرید نمایش می دم
حالا میخوام اونهایی رو که انتخاب کردم و دکمه تایید زدم توی اطلاعات داخل بانک اینها تغییر ایجاد بشه
حالا چطوری می تونم این کار رو بکنم؟
بهترین روش برای این کار چیه؟
با تشکر

vbhamed
چهارشنبه 30 دی 1388, 14:03 عصر
سلام

گریدتون چی هست ؟
چطوری انتخاب می كنید ؟
با ADO وصل شدید یا DAO ؟

javadt
چهارشنبه 30 دی 1388, 21:00 عصر
VSFlexGrid Pro
ADODB

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

vbhamed
پنج شنبه 01 بهمن 1388, 17:37 عصر
سلام

برای انتخاب ركورد یك فیلد Boolean به نام Sel داخل بانك قرار می دیم
از VSFlexGrid هم استفاده كنید بهتره
می تونید از تو ابزارهای CompoentOne بردارید

اطلاعات رو در گراید تیك بزنید برای انتخاب

حالا اگر مثلا قراره فیلد شهر برابر تهران بشه

دستور Sql زیر رو اجرا كنید


Update Table1 Set City = 'Tehran' Where Sel = True

اگر تو اجرای Sql مشكلی داشتید پیام بدین

javadt
دوشنبه 05 بهمن 1388, 22:35 عصر
تشکر دوست عزیز
اما حجم اطلاعات زیاده مثلا 2000 فیلد که از این ها باید 950 فیلد انتخاب بشه
اینجوری که تک تک نمی شه انتخاب کنم
برای این چه پیشنهاد می کنید؟
با تشکر

javadt
یک شنبه 25 بهمن 1388, 15:11 عصر
سلام

برای انتخاب رکورد یک فیلد Boolean به نام Sel داخل بانک قرار می دیم
از VSFlexGrid هم استفاده کنید بهتره
می تونید از تو ابزارهای CompoentOne بردارید

اطلاعات رو در گراید تیک بزنید برای انتخاب

حالا اگر مثلا قراره فیلد شهر برابر تهران بشه

دستور Sql زیر رو اجرا کنید


Update Table1 Set City = 'Tehran' Where Sel = Trueاگر تو اجرای Sql مشکلی داشتید پیام بدین

من با این کد نتونستم این کاری رو انجام بدم
میشه لطف کنید یک مثال برام بزارید

با select خود vs نمیشه این کار رو کرد؟

با تشکر

HjSoft
دوشنبه 26 بهمن 1388, 17:13 عصر
من توي يك برنامه حسابداري شاهكار ديده م كه از Datagrid عادي استفاده مي كرد و سلول ها رو رو باكشيدن موس خط مي گرفتي و انتخاب مي شدن . البته اينم بگم كه در ado يك ايونت براي selectall داره شايد بشه از اون استفاده كرد .

javadt
دوشنبه 26 بهمن 1388, 22:51 عصر
درسته اما اگر باselect خود vs بشه کار من رو راه میاندازه
با تشکر

vbhamed
سه شنبه 27 بهمن 1388, 08:13 صبح
تشکر دوست عزیز
اما حجم اطلاعات زیاده مثلا 2000 فیلد که از این ها باید 950 فیلد انتخاب بشه
اینجوری که تک تک نمی شه انتخاب کنم
برای این چه پیشنهاد می کنید؟
با تشکر

سلام

احتمالا منظورتون از 2000 فيلد، 2000 ركورده

در هر حال مي تونيد يك دكمه بزاريد كه همه ركوردهاي ليست رو انتخاب كنه (يعني فيلد Sel رو True كنه) بعدش مي تونيد اونهايي كه نمي خواين، تيكش رو بردارين،

يا اينكه با يك دستور جستجو اطلاعات گرايد رو طبق دلخواه خودتون فيلتر كنيد و بعد همه رو تيك بزنيد و دوباره يك دستور جستجوي ديگه و تا آخر

مثلا يك بار افرادي با نام خانوادگي محمدي رو فيلتر و تيك بزنيد و يك بار افرادي با نام حسيني

بعد كه موارد مورد نظر تيك خورد عمليات دلخواه رو روي اونها طبق دستور پست قبلي انجام بدين

ضمنا VsFlexGrid براي انتخاب كردن حالتي داره كه ميشه بيش از يك مورد رو در اون HighLight كرد با كمك ماوس و كليد شيفت، يا شيفت و كليدهاي جهتي و با Control و ماوس ميشه يك مورد رو از انتخاب خارج كرد

براي اين كار خاصيت SelectionMode رو روي گزينه 3 بزاريد و بعد در اجراي برنامه دكمه ماوس رو روي گرايد نگه داريد و ماوس رو حركت بدين

javadt
سه شنبه 27 بهمن 1388, 10:08 صبح
سلام


ضمنا VsFlexGrid براي انتخاب كردن حالتي داره كه ميشه بيش از يك مورد رو در اون HighLight كرد با كمك ماوس و كليد شيفت، يا شيفت و كليدهاي جهتي و با Control و ماوس ميشه يك مورد رو از انتخاب خارج كرد

براي اين كار خاصيت SelectionMode رو روي گزينه 3 بزاريد و بعد در اجراي برنامه دكمه ماوس رو روي گرايد نگه داريد و ماوس رو حركت بدين

بعد چطوری می تونم بفهمم که کدوم رکورد ها انتخاب شدند؟
با تشکر

vbhamed
سه شنبه 27 بهمن 1388, 15:13 عصر
سلام

اگر فرض كنيم Id هر ركورد تو ستون اول گرايد نشون داده ميشه، دستورات زير Id سطرهاي انتخاب شده رو نمايش مي ده
براي ديدن خود شماره سطر مي تونيد اون دستور پرينت قرمز كه Rem شده رو فعال كنيد


With VSFlexGrid1
Dim i%
For i = 0 To .SelectedRows - 1
Print .TextMatrix(.SelectedRow(i), 0)
'Print .SelectedRow(i)
Next
End With