نمایش نتایج 1 تا 12 از 12

نام تاپیک: sort شدن ستون dbgrid با کلیک بر روی عنوان آن

  1. #1
    کاربر دائمی آواتار MNosouhi
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    پست
    883

    sort شدن ستون dbgrid با کلیک بر روی عنوان آن

    با سلام
    در یک برنامه که با dbisam نوشته شده و در حدود 20 Table در برنامه استفاده شده از جمله درخواست های مشتری این بوده که با کیک بر عنوان DbGrid ، ستون مربوطه Sort شود . حالا سوال من این است که به نظر شما از کدام روش برای این کار استفاده کنم:
    1- برای همه فیلدهایی که در DbGrid نمایش داده می شوند که حدود 90 درصد از فیلدها چنین هستند ایندکس تعریف شود.
    2- هر بار که روی عنوان ستونی کلیک شود با استفاده از دستور CreatIndex بر روی آن ستون اینکس ایجاد کرده و ایندکس قبلی را که به همین روش ایجاد شده پاک گردد.
    3-با استفاده از دستورات Sql این کار رو انجام بدم که نیازی هم به تعریف ایندکس نباشه.
    دوستان اگه لطف کنند نظات خودشون رو با دلیل توضیح بدن ممنون میشم.
    اگه یه نفر از اساتید هر 3 مورد رو کاملا تحلیل کنه و معایب و مزایای هر کدوم رو توضیح بده که دیگه خیلی عالی میشه.




  2. #2
    کاربر دائمی آواتار Kamyar.Kimiyabeigi
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    تهران
    پست
    1,276
    اگر شما از ADO استفاده میکنین کد زیر در OntitleClick مشکلتونو حل میکنه

    if Pos('ASC', ADOTable1.Sort) > 0 then
    ADOTable1.Sort := Column.FieldName + ' DESC '
    else
    ADOTable1.Sort := Column.FieldName + ' ASC ';

  3. #3
    کاربر دائمی آواتار MNosouhi
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    پست
    883
    دوست عزیز ، لطفا سوال رو کامل بخونید ، گفته ام که از DbIsam استفاده کرده ام. با Ado مشکلی ندارم.
    به هر حال از لطف شما ممنون.

  4. #4
    کاربر دائمی آواتار Kamyar.Kimiyabeigi
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    تهران
    پست
    1,276
    نقل قول نوشته شده توسط Pesare_khob
    دوست عزیز ، لطفا سوال رو کامل بخونید ، گفته ام که از DbIsam استفاده کرده ام. با Ado مشکلی ندارم.
    به هر حال از لطف شما ممنون.
    دوست عزیز من نگفتم که شما با ADO مشکل دارین گفتم که اگه از ADO جهت وصل شدن به DbIsam استفاده میکنین راه حلش همون کدی که نوشتم

  5. #5
    کاربر دائمی آواتار MNosouhi
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    پست
    883
    دوست عزیز من نگفتم که شما با ADO مشکل دارین گفتم که اگه از ADO جهت وصل شدن به DbIsam استفاده میکنین راه حلش همون کدی که نوشتم
    مگه میشه با Ado به DbIsam متصل شد؟میشه بیشتر توضیح بدین

  6. #6
    کاربر دائمی آواتار babak869
    تاریخ عضویت
    اسفند 1383
    محل زندگی
    کرمانشاه
    پست
    1,251
    با سلام
    در سایت DelphiAbout یه مثال هست که دقیقا اون چیزی رو که شما میخواید توضیح داده
    اینجا رو ببین !!!
    http://delphi.about.com/od/usedbvcl/l/aa042203a.htm
    موفق باشید

  7. #7
    کاربر دائمی آواتار MNosouhi
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    پست
    883
    اون که با Ado توضیح داده .

  8. #8
    محروم شده آواتار محسن شمس
    تاریخ عضویت
    خرداد 1384
    محل زندگی
    ُShams1366@yahoo.com
    پست
    243
    با BDE کسی بلد نیست Sort کنه

  9. #9
    با BDE می تونی از این کد استفاده کنی(این کد رو تو OnTitle Click بذار

    if Column.Field.FieldKind=fkData Then
    Begin
    TClientDataSet(Column.Field.DataSet).IndexFieldNam es:=Column.Field.FieldName;
    Column.Title.Font.Style:=[FsBold];
    End

    البته اگه از ClientDataSet استفاده نمی کنی می تونی با یه پل از اون استفاده کنی ولی فکر کنم با بقیه dataSet ها هم جواب بده. در هرحال اگر هم جواب نده میتونی هر چی که هست اونو به ClientDataSet وصل کنی اینجوری می تونی Calculated fields هم روشون سورت داشته باشی ( البته نه CalcField هائی که تو ClientDataSet تعریف شدن

  10. #10
    کاربر دائمی آواتار MNosouhi
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    پست
    883
    آقای شمس اگه سوال دارید در یک تاپیک جدید مطرح کنید و موضوع تاپیک رو تغییر ندهید ، در اولین پست گفته ام که سوال من درباره DbIsam هستش.
    در ضمن جالبه که یه نفر هم سوالم رو جواب نداده.

  11. #11
    کاربر جدید آواتار linspire
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    Los Angeles
    پست
    29
    با سلام
    به وسلیه دستورات sql به راحتی متونید این کار رو انجام بدید
    procedure TSearch.Search_grideTitleButtonClick(Sender: TObject;
    AFieldName: String);
    begin
    if saodi then
    begin
    dm1.search.SQl[3]:='order by '+ AFieldName +' asc';
    saodi:=false;
    end
    else
    begin
    dm1.search.SQl[3]:='order by '+ AFieldName +' desc';
    saodi:=true;
    end;
    dm1.search.open;
    end;
    امیدوارم به دردتون بخوره
    برای من که خوب جواب داده

  12. #12
    کاربر دائمی آواتار MNosouhi
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    پست
    883
    این تابع شما درسته اما یه اشکال بزرگ داره که تو یه تاپیک دیگه هم درموردش سوال کردم ولی کسی نتونست جواب بده.وقتی شما در DbIsam برای سورت کردن از دستورات Sql استفاده کنی داده های جدیدی که وارد میکنی بصورت واقعی ذخیره نمیشن.کافیه یه بار جدولت را ببندی و دوباره باز کنی . میبینی که اطلاعاتی که بعد از سورت کردن وارد کرده ای ذخیره نشده.
    آخرین ویرایش به وسیله MNosouhi : سه شنبه 26 مهر 1384 در 00:32 صبح

تاپیک های مشابه

  1. export dbgrid to excel وپرینت اطلاعات یک dbgrid
    نوشته شده توسط amir_rahimi در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: چهارشنبه 05 دی 1386, 08:37 صبح
  2. sort کردن یه فیلد راست به چپ به صورت از چپ به راست
    نوشته شده توسط sarasara در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: یک شنبه 27 آبان 1386, 13:16 عصر
  3. کامپوننت خوب Farsi DBGrid برای دلفی 7 ترجیحا با قابلیت Sort, Combo , Check
    نوشته شده توسط FirstLine در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 3
    آخرین پست: پنج شنبه 29 شهریور 1386, 14:16 عصر
  4. sort
    نوشته شده توسط probit در بخش VB.NET
    پاسخ: 10
    آخرین پست: چهارشنبه 17 مرداد 1386, 11:47 صبح
  5. sort در dbgrid
    نوشته شده توسط zarin_web در بخش برنامه نویسی در 6 VB
    پاسخ: 7
    آخرین پست: چهارشنبه 25 بهمن 1385, 09:46 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •