PDA

View Full Version : سورت کردن گرید در دلفی 2010



accpascal
چهارشنبه 11 فروردین 1389, 00:22 صبح
دستور زیر در دلفی 7 کار می کند اما در دلفی 2010 کارنمی کند

if (TCustomADODataSet(Self.DataSource1.DataSet).Sort= '')Or(Pos('DESC',TCustomADODataSet(Self.DataSource 1.DataSet).Sort)> 0) then
TCustomADODataSet(Self.DataSource1.DataSet).Sort := Column.FieldName+' ASC'
else
TCustomADODataSet(Self.DataSource1.DataSet).Sort := Column.FieldName+' DESC';

ارور دلفی 2010 ارور syntax وبشرح زیر است

Ambigous overloaded call to 'pos'
آیا می توان مشابه این دستور را در دلفی 2010 نوشت؟
ممنون از توجه شما

mrm0101
جمعه 13 فروردین 1389, 01:42 صبح
ُسلام براي سورت روي دي بي گريد از كد زير هم مي توانيد استفاده كنيد

در قسمت TitleClick



سورت صعودي
DataModule2.adoquery1.Sort :=DBGrid1.SelectedField.FieldName +' ASC ';


سورت نزولي

DataModule2.adoquery1.Sort :=DBGrid1.SelectedField.FieldName +' DESC ';

accpascal
یک شنبه 15 فروردین 1389, 10:27 صبح
ُسلام براي سورت روي دي بي گريد از كد زير هم مي توانيد استفاده كنيد

در قسمت TitleClick



سورت صعودي
DataModule2.adoquery1.Sort :=DBGrid1.SelectedField.FieldName +' ASC ';


سورت نزولي

DataModule2.adoquery1.Sort :=DBGrid1.SelectedField.FieldName +' DESC ';


کدی که من نوشتم قابلیت تبدیل سورت نزولی به صعودی و بالعکس را دارد ضمنا من کد خود را بشرح زیر اصلاح کردم و مشکل حل شد

procedure form1.DBGridTitleClick(Column: TColumn);
var s:string;
begin
s:=TCustomADODataSet(Self.DataSource1.DataSet).Sor t;
if (s='')Or(Pos('DESC',s)> 0) then
TCustomADODataSet(Self.DataSource1.DataSet).Sort := Column.FieldName+' ASC'
else
TCustomADODataSet(Self.DataSource1.DataSet).Sort := Column.FieldName+' DESC';
dbgrid.SetFocus;
end;

saeed19
پنج شنبه 19 فروردین 1389, 10:44 صبح
sortیک متغیر است
procedure TPersonal_info.Pay_DBGEh_PersonelTitleClick(Column : TColumnEh);
{$J+}
const
PreviousColumnIndex: Integer = 0;
{$J-}
begin
if (pos(Column.Field.FieldName, sort) = 1) and (pos(' DESC', sort) = 0) then
sort := Column.Field.FieldName + ' DESC'
else
sort := Column.Field.FieldName + ' ASC';
if Column.Title.SortMarker = smNoneEh then
begin
Column.Title.SortMarker := smDownEh;
end
else if Column.Title.SortMarker = smUpEh then
begin
Column.Title.SortMarker := smDownEh;
end
else if Column.Title.SortMarker = smDownEh then
begin
Column.Title.SortMarker := smUpEh;
end;
DM1.StP_personely.sort := sort;
end;