ورود

View Full Version : سورت در کامپونت Ehlib



spicirmkh
سه شنبه 15 آذر 1384, 14:41 عصر
سلام

من از بسته Ehlib استفاده می کنم و از کامپونت DbgeridEh استفاده می کنم

توی دمو برنامه می توانیم یک ستون را سورت کنیم این کار کجا و چگونه می شود تنظیم کرد

با تشکر

szabeh
چهارشنبه 16 آذر 1384, 01:35 صبح
یک سر به help اون بنداز اونجا توضیح داده اگر پیدا نکردی میگم

MiRHaDi
چهارشنبه 16 آذر 1384, 01:39 صبح
سلام
تو همون قسمت دموش سورس برنامه که هست !
مشکلتون دقیقا کجاش هست ؟
بای

spicirmkh
پنج شنبه 17 آذر 1384, 10:10 صبح
سلام

من متوجه نشدم کجا باید تنظیم کنم که بشود یک ستون سورت کرد آیا باید یک Onsort تنظیم کرد

spicirmkh
پنج شنبه 17 آذر 1384, 10:16 صبح
کسی فایل PDF برای Help این مجموعه دارد

بهمن بهار
پنج شنبه 17 آذر 1384, 19:21 عصر
با عرض سلام و احترام
من هم این مشگل را دارم و فکر نمی کنم که تنظیم مربوطه در خود Dbgraid Eh باشد چون من در دمو یک جدول جدید ایجاد کردم و بدون هیچ گونه تنظیمی سورت آن کار میکرد و همچنین قسمت STFilter هم به همین صورت . اگر کسی میداند چطور میتوان این دو قسمت را تنظیم کرد لطفا راهنمایی کند.

MNosouhi
جمعه 18 آذر 1384, 08:56 صبح
با سلام
سورت کردن رو خود Dbgrid انجام نمیده و باید در رویداد OnTitelClick متد سورت خود رو بنویسید که بسته به نام پایگاه داده فرق میکنه.

دنیای دلفی
جمعه 18 آذر 1384, 09:32 صبح
شما باید از سایر ابزارهای این کامپوننت ر انصب کنید .

به صورت عادی نمی توانید عملیات سورت را انجام دهید

فیلدهای را که می خواهید سوت کنید مشخص کنید و از کد زیر استفاده کنید

procedure TForm6.DBGridEh1SortMarkingChanged(Sender: TObject);
var
Items:Tstrings;
i:integer;
begin
if dbgrideh1.Columns[DBGridEh1.SelectedIndex].Title.TitleButton then
begin
g.Show;
g.MaxValue:=RecordCount;
g.ForeColor:=clBlack;
Case DBGridEh1.Columns[DBGridEh1.SelectedIndex].Title.SortMarker of
smDownEh:TableIndex.IndexName:=DBGridEh1.Columns[DBGridEh1.SelectedIndex].FieldName;
smUpEh :begin
Items := TStringList.Create;
try
TableIndex.GetIndexNames(Items);
for i:=0 to Items.Count-1 do
if UpperCase(dbgrideh1.Columns[DBGridEh1.SelectedIndex].FieldName+'UP')=UpperCase(Items.Strings[i]) then
begin
TableIndex.IndexName:=DBGridEh1.Columns[DBGridEh1.SelectedIndex].FieldName+'UP';
Break;
end;
finally
Items.Free;
end;
end;
end;
g.Progress:=0;
g.Hide;
end;

end;

بهمن بهار
شنبه 19 آذر 1384, 19:13 عصر
با عرض سلام و احترام
من هنوز کدی را که آقاِ (دنیای دلفی) زحمت کشیده و ذکر کرده امتحان نکردم ولی چون شدیدا احتیاج به این مورد داشتم از راه دیگری این کار را کردم فقط تنها ایرادش این است که سورت فقط یک ردیفی است و نمیتوان برای یک سورت چند شاخص انتخاب کرد ولی بدون تنظیم میتوان از امکان سورت همه ستونها استفاده کرد.
فقط نکته اینجا است که اگر ستونی را قبلا برای سورت کردن تنظیم کرده اید باید غیر فعال شود یعنی هیچ کدام از ستونها نباید smDownEh یا smUpEh داشته باشد. وگرنه برای آن ستون کار نمی کند.


procedure TForm2_listgar.DBGridEh1TitleClick(Column: TColumnEh);
var
strsort0:string;
begin
case Column.Title.SortMarker of
smNoneEh: Column.Title.SortMarker := smDownEh;
smDownEh: Column.Title.SortMarker := smUpEh;
smUpEh: Column.Title.SortMarker := smNoneEh;
end;
if Column.Title.SortMarker=smDownEh then strsort0:=Column.FieldName+' ASC'
else
if Column.Title.SortMarker=smUpEh then strsort0:=Column.FieldName+' DESC';

ADOQuery1.Sort:=strsort0;
end;

fahimi
جمعه 18 شهریور 1390, 20:24 عصر
ضاهراً تنظیمات دیگری داره که با uses عبارت MemTableEh هم حل نشد