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

نام تاپیک: استفاده از ردیف در هنگام فیلتر گیری

  1. #1
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298

    استفاده از ردیف در هنگام فیلتر گیری

    همانطور که اطلاع دارید برای بدست آوردن ردیف در Dbgrid ما یک فیلد محاسباتی برای Table ایجاد می کنیم و در بخش OncalcField کد Dataset['radif'].RecNO; را قرار می دهیم ولی وقتی من از جدول به وسیله Table.filter فیلتر گیری می کنم رکوردهایی که نمایش داده می شوند دارای ردیف درست نمی باشند و سیستم نمی تواند آنها را ترتیب نمایش دهد آیا راه حلی برای این مشکل دارید اگر هست ممنون میشم راهنمایی کنید .

    :oops: :oops:

  2. #2
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    بابا ما را نیز دریابید .

    :gift: :flower:
    پس از دو سال بررسی بلاخره به بازار آمد
    متفاوت و هوشمندانه
    برای ورود کلیک کنید
    IMEN LOCK

  3. #3
    این سوال رو من هم در مورد جداول DBISAM پرسیدم ولی کسی جواب نداد.
    مشکل مربوط به خود شی Table هست چون ClientDataSet این مشکلو نداره. :|

  4. #4
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    اگر شما یک فیلد AutoInc بصورت PK در نظر بگیرید میتوانید از شماره آن بعنوان شماره رکورد استفاده کنید. در این صورت شماره رکوردها هنگام فیلتر کردن ثابت خواهد ماند.

  5. #5
    خوب مشکل اینجاست که نمی خوام شماره ثابت داشته باشه. یعنی با فیلترگیری، شماره ردیف هم عوض بشه چون مثلا پس از فیلترگیری، 3 ردیف بیشتر نیست ولی شماره ردیف ها، مثلا 9 و 11 و 20 هست. :roll:

  6. #6
    کاربر دائمی آواتار مهندس
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    Dedicated Server
    پست
    813
    سلام

    آقا ما نفهمیدیم :( یعنی میخواین بعد از فیلتر گیری شماره ردیف 1 الی آخر بزنه ؟ :idea:

  7. #7
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    هدف این است که پس از فیلتر گیری شماره ردیف ها درست باشد یعنی اگر در فیلتر گیری 15 رکورد نمایش داده شود شماره ردیفها از 1 2 3 و الی 15 باشند .
    ممنون می شوم اگر راهنمایی کنید
    :gift: :flower:
    پس از دو سال بررسی بلاخره به بازار آمد
    متفاوت و هوشمندانه
    برای ورود کلیک کنید
    IMEN LOCK

  8. #8
    همون که گفتم، Table مشکل داره ولی ClientDataSet نه. ضمنا کامپوننت SDAC که برای اتصال به SQLServer هست هم یک شی Table‌داره که اون هم مشکل نداره.

  9. #9
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    آخه مشکل من این هست که دارم از DBISAM 4.08 استفاده می کنم و باید یک جوری مشکل ردیف را پس از
    فیلتر گیری رفع کنم (حتما باید راهی باشه مگر ممکنه نباشه)

    :gift: :flower:

  10. #10
    یعنی ورژن 4.08 هم همین مشکل رو داره؟ :?
    یک راه (البته امتحان نکردم که همیشه درست کار کنه) اینه که Table در DBISAM را به ClientDataSet که مشکلی نداره متصل کنی و در واقع اونو فیلتر کنی.

  11. #11
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    یک راه (البته امتحان نکردم که همیشه درست کار کنه) اینه که Table در DBISAM را به ClientDataSet که مشکلی نداره متصل کنی و در واقع اونو فیلتر کنی.
    دوست عزیز ممنون از راهنمایی شما
    مشکل ردیف حل می شود اما وقتی Table مربوط به DBISAM را رکورد اضافه می‌کنم به ClientDataSet1 رکورد مربوطه اضافه نمی شود برای حل این مشکل چکاری می توان کرد .
    ممنون اگر راهنمایی کنید .

    :gift: :flower:
    پس از دو سال بررسی بلاخره به بازار آمد
    متفاوت و هوشمندانه
    برای ورود کلیک کنید
    IMEN LOCK

  12. #12
    کاربر دائمی
    تاریخ عضویت
    دی 1382
    محل زندگی
    پشت كامپيوتر
    پست
    381
    ّدستور FlashBuffers را امتحان کردی

  13. #13
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    ّ
    دستور FlashBuffers را امتحان کردی
    امتحان کردم ولی متاسفانه جواب نمی دهد .

    :?:
    پس از دو سال بررسی بلاخره به بازار آمد
    متفاوت و هوشمندانه
    برای ورود کلیک کنید
    IMEN LOCK

  14. #14
    فکر کنم دستور ApplyUpdates(0) جواب بده یا Refresh البته هر دو برای ClientDataSet

  15. #15
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    فروردین 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298
    فکر کنم دستور ApplyUpdates(0) جواب بده یا Refresh البته هر دو برای ClientDataSet
    دوست عزیز و گرامی برای کد
     ClientDataSet1.Refresh;


    خطای زیر را می دهد :

     ClientDataSet1: Missing Data Provider or Data Packet 



    و برای کد :
      ClientDataSet1.ApplyUpdates(0);


    خطا نمی دهد ولی هیچ تاثیری بر روی رکوردها ندارد یعنی رکوردها زیاد تر نمی شوند.

    ممنون می شوم اگر روش صحیح را راهنمایی کنید .
    :gift: :flower: :| :?:
    پس از دو سال بررسی بلاخره به بازار آمد
    متفاوت و هوشمندانه
    برای ورود کلیک کنید
    IMEN LOCK

  16. #16
    کاربر دائمی
    تاریخ عضویت
    دی 1382
    محل زندگی
    پشت كامپيوتر
    پست
    381
    داداش اگر فقط برای نمایش، DGrid را می خواهی از Query استفاده کن و خیال خودت را راحت کن ولی خیلی عجیب است رکوردها ذخیره شوند و با این دستوراتی که گفته شده بروز نشود
    اگر هم نتونستی با یک For خودت عمل OnCalc را انجام بده مگر خودش همین کار را نمی کنه
    خدا پدر طراح و نویسنده Ado را بیامرزه که ما را از این دردسرها راحت کرده :lol:

  17. #17
    جناب (دنیای دلفی) مطمئن باشید دچار اشتباه شده اید.
    کدی که من اینجا می نویسم را اجرا کنید.
    فرض بر این است که جدول دارای دو فیلد ID از نوع AutoInc و Name از نوع String می باشد. برای اضافه کردن یک رکورد:

    DBISAMTable1.Append;
    DBISAMTable1['Name']:=Edit1.Text;
    DBISAMTable1['ID']:=DBISAMTable1.LastA utoIncValue+1;
    DBISAMTable1.Append;

    ClientDataSet1.Refresh;


    و کارهای دیگری که باید انجام دهید:
    DataSource1 را به ClientDataSet1 متصل کنید.
    ClientDataSet1 را به DataSetProvider1 متصل کنید از طریق ProviderName.
    DataSetProvider1 را به DBISAMTable1 متصل کنید
    و اگر خواستید، DBISAMTable1 را به DBISAMDatabase1 متصل کنید.

    حالا برنامه رو تست کنید و نتیجه رو به من اطلاع بدید.

    موفق باشید :)

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

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