PDA

View Full Version : رفتن به رکورد datagrid



fazel-d
پنج شنبه 18 بهمن 1386, 12:52 عصر
چه جوری میشه بعد از اینکه کاربر بر روی dbgrid جستجو کرد و اون نام مورد نظر در db grid بود کنترل روی همون dbgrid برود
البته dbgrid به sql متصله
مثل وقتی که dbgridبه اکسس وصله و بعد از جستجو اون موضوع کنترل dbgrid روی رکورد قرار می گیره

dkhatibi
پنج شنبه 18 بهمن 1386, 19:23 عصر
به طور خودکار این کار انجام می شه!
از Locate استفاده کنید.

fazel-d
جمعه 19 بهمن 1386, 13:12 عصر
اقا locate متوجه نشدم
لطفا یه مقدار توصیح
تشکر هم از شما فراموشم نمی شه

Answer
جمعه 19 بهمن 1386, 15:25 عصر
شکل کلی دستور:

Table1.Locate('fildname',value,option)

fildname : نام فیلد
value: مقدار کلید
option: دارای دو مقدار است که بین [] قرار میگیرد:
[loCaseInsensitive] بین حروف کوچک و بزرگ متفاوت عمل میکند
,[loPartialKey]: که قسمتی از فیلد را جست و جو میکند

SYNDROME
جمعه 19 بهمن 1386, 17:21 عصر
[loPartialKey]: که قسمتی از فیلد را جست و جو میکند
به این نکته توجه کنید که این پارامتر از اول مقادیر جستجو می کند.یعنی اگر شما کلمه "ب" را جستجو کنید بر روی رکوردی می ایستد که با مقدار "ب" شروع شده باشد.
موفق باشید

fazel-d
شنبه 20 بهمن 1386, 18:45 عصر
مرسی از لطفتون
فقط اینکه من ازadoconnecton , adoQuery,datasoure
, dbgrid استفاده می کنم
منظور از table1 چیه؟
table رو به جای کدوم موارد قرار بدم

vcldeveloper
یک شنبه 21 بهمن 1386, 02:17 صبح
table رو به جای کدوم موارد قرار بدم
بجای هیچکدوم، بلکه بجای Table در مثال بالا از AdoQuery در برنامه خودتون استفاده کنید.

fazel-d
یک شنبه 25 فروردین 1387, 19:08 عصر
مقادیر قسمت option رو error می ده
و می گه تعریف نشده !

SYNDROME
یک شنبه 25 فروردین 1387, 21:05 عصر
مقادیر قسمت option رو error می ده
و می گه تعریف نشده !
کلمات را با املاء درست نوشته اید؟(loCaseInsensitive,loPartialKey)
موفق باشید

vcldeveloper
دوشنبه 26 فروردین 1387, 02:14 صبح
مقادیر قسمت option رو error می ده
و می گه تعریف نشده !
چک کنید که یونیت DB به uses یونیت شما اضافه شده باشه.

fazel-d
پنج شنبه 29 فروردین 1387, 19:58 عصر
از لطفطون ممنون
سوال دیگه اینکه دستور locate روی یک فیلد مقدار می گیره . حال گه بخواهیم مثلا روی دو فیلد چه طور مثل شکل زیر ؟

SYNDROME
پنج شنبه 29 فروردین 1387, 20:26 عصر
اینطور بنویسید.


ado.Locate('Field1;Field2' , VarArrayOf([Value1,Value2]) , []);

هر چند تا هم که فیلد باشد به شکل بالا اضافه کنید

moslemaram
سه شنبه 18 خرداد 1389, 21:10 عصر
با سلام چطور میشه تو دیتا گرید
با زدن دکمه تب کیبورد به سلول روبرو رفت و این کار تا آخر ادامه داشته باشه و بعد بره به ردیف دوم

حسین شهریاری
سه شنبه 18 خرداد 1389, 22:37 عصر
سلام

بهتر بود سوالتونا توی تاپیک جدید مطرح میکردید!
برای این کار کافی است کد زیر را توی برنامتون شبیه سازی کنین و تو یرویداد OnKeyDown گرید بنویسید:

if key = 13 then
begin
case DBGrid1.SelectedIndex of
0:DBGrid1.SelectedIndex:=1;
1:DBGrid1.SelectedIndex:=2;
2:DBGrid1.SelectedIndex:=3;
3:DBGrid1.SelectedIndex:=4;
4:
begin
Datasource.Next;
DBGrid1.SelectedIndex:=0
end;
end;
end;
یکی یکی جلو میره و وقتی به آخرین سلول برسه میره رکورد بعدی و مکان نما به سلول اول در همان رکورد منتقل میشه.البته من فرض کردم جدولم 4 تا فیلد داره!!

موفق باشید