View Full Version : حرفه ای: seek بر روی یک رکورد خاص از dbgrid
naeemeh
یک شنبه 02 تیر 1392, 14:41 عصر
با سلام من می خواهم موقع باز شدن صفحه بر روی رکورد خاص در dbgrid دلفی ایستاده باشد . چه کار می توانم انجام بدم.
یوسف زالی
یک شنبه 02 تیر 1392, 15:15 عصر
سلام.
در رویداد OnShow بر روی دیتاست Locate کنید.
بهتره اون هدر "حرفه ای" رو هم از تاپیک بردارید.
naeemeh
سه شنبه 04 تیر 1392, 08:33 صبح
منظور من این است که اگر در گرید 200 رکورد داریم و رکورد موردنظر عدد 200 بیاید روی همون قسمت بایستد
یوسف زالی
سه شنبه 04 تیر 1392, 08:56 صبح
من هم همین رو توضیح دادم.
اگر شماره ردیف رو بخواهید لوکیت کنید می تونید از این روش استفاده کنید:
ADO1.RecNo := 200
naeemeh
سه شنبه 04 تیر 1392, 10:30 صبح
با این دستور شما فقط همین یک رکورد را نمایش می دهد در صورتیکه من می خواهم همه رکوردها باشد ولی روی اون رکورد خاص مکان نما بایستد
یوسف زالی
سه شنبه 04 تیر 1392, 10:57 صبح
شما تست کردید؟!!
شما احتمالا دارید فیلتر هم می کنید.
با لوکیت و یا روش پست 4 باید بدون مشکل بتونید روی یک رکورد خاص بایستید.
naeemeh
سه شنبه 04 تیر 1392, 13:43 عصر
با سلام
من تست کردم ولی متاسفانه جواب نداد . من اطلاعات داخل گرید را توسط یک کوئری فراخوانی می شود .در ضمن فیلتر هم ندارم
یوسف زالی
سه شنبه 04 تیر 1392, 15:27 عصر
بدون این کد چی نمایش می ده؟
با این کد چی؟
دقیقا اختلاف این دو حالت رو در بیارید بگید.
ممکنه اصلا ربطی به لوکیت نداشته باشه.
naeemeh
چهارشنبه 05 تیر 1392, 06:44 صبح
بدون این کد کل اطلاعات که در کوئری در خواست کردم در گرید نمایش داده می شود . حالا این اطلاعات در حدود 1500 رکورد می باشد که من می خواهم مثلاً روی اطلاعاتی مکان نما بایستد که مربوط به تاریخ روز باشدبه طوریکه بقیه اطلاعات از بین نرود.
یوسف زالی
چهارشنبه 05 تیر 1392, 09:29 صبح
کدی که برای RecNo می نویسید بگذارید.
نسخه دلفی + نام کلاس دیتاستتون رو هم بگید (مثلا ADOQuery)
gholami146
چهارشنبه 05 تیر 1392, 11:18 صبح
از پارامتر FilterSql استفاده کنید و در هنگام نمایش اطلاعات این پارامتر رو که بصورت استرینگ هست Empty کنید اینطوری دستورات داخل کوئری شما حذف نمیشه
ado1.Filtersql:='Date='+'1392/04/04';
ado1.Filtersql:=''
البته ممکنه پارامتر sqlfilter باشه که دقیقا یادم نیست
یوسف زالی
چهارشنبه 05 تیر 1392, 18:45 عصر
این کار هم لوکیت رو فراخوانی می کنه.
با این کار شما فقط کلی سربار ایجاد می کنید.
اون هم Filter هست.
naeemeh
پنج شنبه 06 تیر 1392, 11:10 صبح
Dm1.Qsel.Close;
dm1.Qsel.SQL.Clear;
txt:='SELECT [uid],[shomsef],[name],[adress],[tel],[tarsabt] FROM [Sefaresh] order by [tatah] desc';
dm1.Qsel.SQL.Add(txt);
dm1.Qsel.Open;
با adoquery اطلاعات داخل گرید پر می شود
این دستور حدود 1000 رکورد بر می گرداند که من می خواهم در صفحه بازشده همه اطلاعات نمایش داده شود ولی نشانگر بر روی سفارشات تاریخ روز به ایستد . باید بگم که بقیه اطلاعات قبل و بعدش باید باشد.
یوسف زالی
پنج شنبه 06 تیر 1392, 13:14 عصر
procedure TForm1.FormShow(Sender: TObject);
begin
ADOQuery1.Locate('tarsabt', '92/04/03', [])
end;
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.