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

نام تاپیک: انتخاب چند ركورد از دي بي گريد با استفاده از اديت

  1. #1

    Tick انتخاب چند ركورد از دي بي گريد با استفاده از اديت

    با سلام خدمت دوستان گرامي
    و با عرض شرمندگي از مزاحمتهاي هميشگي براي دوستان
    سوال من اين است آيا ميشه در يك اديت عددهايي را كه وارد مي كنيم و اين عدد ها را با جداكننده " ، " از هم جدا كنيم بتوان ركوردهاي شامل اين عددها را انتخاب كرد( مولتي سلكشن )
    مثلا من چند ركورد دارم كه شماره آنها از 5 تا 40 است و من مي خواهم ركوردهايي كه شماره آنها مثلا 6و8و12و23 است را در يك اديت بنويسم و اين ركوردها انتخاب شوند
    با تشكر

  2. #2
    کاربر دائمی آواتار shervin farzin
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    مشهد - shervinfarzin@gmail.com
    پست
    256

    نقل قول: انتخاب چند ركورد از دي بي گريد با استفاده از اديت

    سلام
    براي اين كار ابتدا ليستي از اعدادي كه كاربر در Edit1 وارد كرده رو درون متغييري از نوع
    Stringlist ذخيره ميكنيم . اين كار به كمك تابعي به نام Fill_list انجام ميشه كه در ادامه تعريف
    خواهد شد . پس در قسمت Public فرم مينويسيم :
        tmp:TStringList;
    Procedure Fill_list(x:string);

    تابع Fill_list به شكل زير تعريف ميشه :
    procedure TForm1.Fill_list(x: string);
    var
    i,j:integer;
    begin
    tmp:=TStringList.Create;
    j:=1;
    for i := 1 to length(x) do
    begin
    if copy(x,i,1) = ',' then
    begin
    tmp.Add(copy(x,j,i-j));
    j:=i+1;
    end;
    end;
    tmp.Add(copy(x,j,i-j));
    end;

    حالا روي دكمه اي در فرم كد نهايي رو مينويسيم :
    procedure TForm1.Button1Click(Sender: TObject);
    var
    i:integer;
    begin
    dbGrid1.SelectedRows.Clear;
    Fill_list(edit1.Text);
    for i := 0 to tmp.Count-1 do
    begin
    ADOQuery1.RecNo:=strtoint(tmp.Strings[i]);
    dbGrid1.SelectedRows.CurrentRowSelected := True;
    end;
    end;

    در ضمن به اين نكته هم توجه كنيد كه در هر لحظه شما فقط امكان انتخاب يك ركورد در Dataset
    رو داريد . Highlight شدن چندين سطر از DBGrid فقط جنبه نمايشي داره و در واقع آخرين عددي كه
    در ليست درج شده موقعيت واقعي در Dataset رو نشون ميده .
    موفق باشيد .

  3. #3

    نقل قول: انتخاب چند ركورد از دي بي گريد با استفاده از اديت

    shervin farzin عزيز سلام
    ضمن تشكر و قدرداني فراوان از زحمات شما مي خواستم بپرسم منظورتون از اينكه فقط آخرين ركورد، انتخاب شده واقعي است اينه كه اگه ما ركوردهاي سلكت شده را بخواهيم با هم منتقل كنيم فقط ركورد آخر منتقل مي شود ؟
    متشكرم

  4. #4
    کاربر دائمی آواتار shervin farzin
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    مشهد - shervinfarzin@gmail.com
    پست
    256

    نقل قول: انتخاب چند ركورد از دي بي گريد با استفاده از اديت

    سلام
    بله همينطوره كه مي فرماييد .
    اطلاعاتي كه توسط دستور Select برگردونده ميشه و درون Grid نمايش داده ميشه داخل
    محيطي قرار داره به نام Dataset . در اين محيط يك اشاره گر هم هست كه در هر لحظه ميتونه
    فقط به يك ركورد اشاره كنه . اگه شما ركورد شماره 4 رو انتخاب كنيد ، اشاره گر به ركورد 4 اشاره
    ميكنه . اگه بعدش ركورد شماره 9 رو انتخاب كنيد اشاره گر از ركورد 4 به ركورد 9 منتقل ميشه و به
    خودي خود راهي نداره كه متوجه بشيد اين اشاره گر قبل از ركورد 9 ، به چه ركوردي اشاره مي كرده
    مگر اين كه به يه ترتيبي ، ردپايي از اين اشاره گر رو خودتون ذخيره كنيد . مثلا با هر بار انتخاب يك
    ركورد در Grid ، شماره اون ركورد وارد يك آرايه بشه . بعد يه حلقه For كه به اندازه مقادير درون آرايه
    تكرار ميشه ، تشكيل بديد و داخل اينFor اون فرايند انتقالي رو كه مورد نظرتون هست ، براي تك تك
    ركوردها اجراء كنيد .
    موفق باشيد .
    آخرین ویرایش به وسیله shervin farzin : پنج شنبه 12 دی 1387 در 01:23 صبح

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

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