PDA

View Full Version : سورت کردن dbgrid بر اساس یک فیلد خاص بدون کمک از order by در adoquery؟



oghab
یک شنبه 22 آبان 1384, 16:14 عصر
سلام
اول جستجو کردم. چون احتمال زیاد میدادم جوابم باشه! ولی از نتایج جستجو که پیدا کردم و خوندم جوابمو نگرفتم!
برای سورت کردن یک dbgrid بر اساس یکی از ستونهای مشخص آن با کلیک بر روی عنوان آن ستون. بجز روش کلی که قبلا توسط جناب hedayat در شنبه 14 آبان 1384, 02:12 شامگاه ذکر شده چه روشی دیگری وجود دارد.
بینید dbgrid من به یک adoquery وصل است و قبلا orderby با یک ستون دیگر شده است! می خواهم در صورتی که کاربر خواست بر اساس ستون دیگری مرتب شود بدون اینکه نیاز به از اول گرفتن query باشد! این کار را انجام دهم. و برای همه ستونها هم نمی خواهم. فقط بر اساس یک ستون خاص با نام family.
ممنونم
موفق باشید

vcldeveloper
دوشنبه 23 آبان 1384, 02:41 صبح
استفاده از خصوصیت Sort که بهش اشاره کردید، حتی زمانی که از ORDER BY هم استفاده کنید جواب میده.

oghab
دوشنبه 23 آبان 1384, 09:42 صبح
سلام
خیلی ممنون از راهنماییتون!
من تا حالا فکر می کردم خصوصیت sort باید مربوط به dbgrid باشه و هر جوری می نوشتم روش error میداد که sort وجود نداره! و حالا که sort را برای adoquery گذاشتم. جواب داد! اصلا به فکرم نرسیده بود. که adoquery خصوصیت sort داشته باشه! و من اونا تنظیم کنم!
حالا میمونه یه مشکل دیگه! :خجالت: خب من این کد را توی رویداد ontitleclick کنترل dbgrid ام نوشتم! ولی من می خواهم فقط اگه روی title ستون ششم کلیک کرد این کد اجرا بشه! نه رو هر جایی از title گرید. قبل از این کد باید یه if داشته باشم که اگه روی sj,k ششم کلیک کرد، کد مربوط به sort اجرا بشه! ولی اینم هر کاری کردم نشد و درست از آب در نیامد! یعنی نمی دونم چطور چک کنم روی ستون ششم کلیک شده یا نه!
آیا راهی هست؟
خیلی ممنونم
امیدوارم همیشه موفق باشید!

m-khorsandi
دوشنبه 23 آبان 1384, 11:36 صبح
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
if Column.Index = 2 then
begin

end;

if Column.FieldName = 'au_fname' then
begin
end;
end;

oghab
دوشنبه 23 آبان 1384, 14:02 عصر
خیلی خیلی ممنونم
درست شد
موفق باشید!