PDA

View Full Version : انتخاب چندین ستون از db gid و انتقال به حافظه



reza_lion67
یک شنبه 11 شهریور 1386, 01:42 صبح
سلام
من میخواستم ببینم چه جوری میشه چندین ستون از dbgrid رو انتخاب کرد و بعد اونا رو به clipboard انتقال داد و در یک db grid دیگه paste کرد
من با خاصیت selected ور رفتم ولی بلد نیستم چه طوری از طریق کد نویسی رکورد هایی که انتخاب شده را کپی کنم.
خواهش میکنم کمک کنید

vcldeveloper
یک شنبه 11 شهریور 1386, 14:00 عصر
شما در خط اول صحبت از انتخاب ستون می کنید، در خط بعد صحبت از رکوردهای انتخاب شده. باید دقت کنید که ستون ها معرف فیلدها هستند و سطرها معرف رکوردها.
DBGrid خودش داده ها را نگه داری نمی کند، بلکه صرفا داده های دریافت شده از بانک را نمایش می دهد. برای انتخاب چند سطر (رکورد) هم Boolmark ایی برای هر یک از رکوردهای انتخاب شده ایجاد می کند که بتوانید از طریق آن به رکورد مربوطه در بانک دسترسی داشته باشید. پس برای ذخیره اطلاعات این رکوردها در جایی (مثل Clipboard) باید داده های هر رکورد (شامل یک یا چند فیلد) از بانک خوانده شود. برای اینکه بتونید هر رکورد را در Clipboard کپی کنید، باید نوع داده جدیدی برای Clipboard بوجود بیارید که بتونه کلیه اطلاعات فیلدهای مختلف آن رکورد را در داخل خود نگه داری کند.

reza_lion67
یک شنبه 11 شهریور 1386, 23:49 عصر
ببخشید منظورم رکورد بود ...... من مشکلم شناسایی از طریق کد نویسی هست یعنی وقتی کاربر چند تا رکورد را با کلید ctrl انتخاب کرد از طریق کد نویسی بتونم بفهمم چه رکوردهایی انتخاب کرده . بعد رکودهای انتخاب شده را در dbgrid دیگه انتقال بدم

vcldeveloper
دوشنبه 12 شهریور 1386, 02:03 صبح
گفتم که، به ازای هر رکوردی که انتخاب میشه، در لیست Selected یک Bookmark برای رکورد انتخاب شده ایجاد میشه که می تونید از طریق آن، به رکورد مربوطه دسترسی داشته باشید.

reza_lion67
دوشنبه 12 شهریور 1386, 23:48 عصر
اره شما درست میگید ..... اگه میشه محبت کنید کدش رو برام بنویسید
ممنون میشم

reza_lion67
پنج شنبه 15 شهریور 1386, 00:01 صبح
سلام
من تازه کارم کمکم کنید
ممنونتون میشم

vcldeveloper
پنج شنبه 15 شهریور 1386, 02:33 صبح
باید توضیحات بیشتری بدید که به چه منظوری می خواید همچین کاری بکنید، و البته خودتون هم شروع به کار بکنید و اگر جایی گیر کردید، مشکل خود را بیان کنید، نه اینکه انتظار داشته باشید کسی کد را برایتان بنویسد.

reza_lion67
شنبه 17 شهریور 1386, 00:28 صبح
باشه ...... یک کم سرم شلوغ بود
اشال نداره میگردم پیداش میکنم
از زحمتاتون ممنونم
خیلی

Valadi
شنبه 17 شهریور 1386, 07:24 صبح
اگر درست متوجه شده باشم شما می خواهید انتقال داده ها موجود در کنترل TDBGrid به Clip Board
آیا شما این مطلب می خواهی ؟

reza_lion67
شنبه 17 شهریور 1386, 23:42 عصر
من می خوام فقط تشخیص بدم چه رکورد هایی از dbgrid انتخاب شده . بعد شماره رکورد شون را یه جا ذخیره کنم ...... بعد این رکورد های انتخاب شده را توی یک dbgird دیگه درج کنم

zman123456
یک شنبه 18 شهریور 1386, 09:27 صبح
سلام
میتونی از Bookmark هم استفاده نکنی.Multiselect‌ رو فعال کن.تو table یا Query‌ که تو dbgrid‌ داری نشون میدی حتما یک فیلد Code داری اونو دونه دونه بخون و با یک Query دیگه تو یک DbGrid دیگه بریز.البته Bookmark‌ یعنی همین ولی این روش دستیه.

Valadi
یک شنبه 18 شهریور 1386, 12:06 عصر
یک کتاب از انتشارات ناقوس
نام کتاب : راهنمای برنامه نویسان دلفی
تالیف : فرهاد نادری پور
در صفحه 106 باب این موضوع بحث کرده است

موفق وموید باشی

vcldeveloper
یک شنبه 18 شهریور 1386, 18:58 عصر
میتونی از Bookmark هم استفاده نکنی.Multiselect‌ رو فعال کن.
MultiSelect در واقع از Bookmark استفاده میکنه تا رکوردهای انتخاب شده را علامت گزاری بکنه.

مصطفی مختاری
دوشنبه 02 دی 1387, 15:29 عصر
با سلام خدمت دوستان برنامه نویس:
آقای خرسندی در پست شماره 4 در این موضوع (http://barnamenevis.org/forum/showthread.php?t=32909) نمونه کدی قرار داده اند که خوب دیدم اینجا باشه تا دوستانیکه
جستجو می کنند زودتر به نتیجه برسند.

پس جستجو جستجو جستجو.


در مورد DBGrid :



procedure TForm1.Button1Click(Sender: TObject);
var
iCounter: Integer;
begin
for iCounter := 0 to DBGrid1.SelectedRows.Count - 1 do
begin
ADOTable1.GotoBookmark(Pointer(DBGrid1.SelectedRow s.Items[iCounter]));
ShowMessage(ADOTable1.FieldByName('au_lname').AsSt ring);
end;
end;

Atlas_softWare
شنبه 07 دی 1387, 12:37 عصر
امیدوارم که منظورتون رو درست متوجه شده باشم.
من یه مثال براتون می ذارم، که رکوردهای انتخابی را داخل یک String Gride می ریزم بعد می تونید از داخل آن به هر جا که می خواهید انتقال دهید.