[Lazarus-es] rxdbgrid, duda
José Antonio Cuello
josea en artextrading.com
Vie Nov 19 09:32:58 CET 2010
Hola, recuerdo haber tenido problemas con el TColumn.Index, y era por
las columnas visibles o no visibles o por la colocación de las mismas
(si se hace un drag and drop y se cambian de lugar). En Delphi el
TColumn.Index era el indice de creación y existía el
TColumn.VisibleIndex que era el orden de colocación en el grid. Por todo
eso en Lazarus terminé cambiando la manera de plantearlo.
ChangeOrderBy( Column.Field );
ChangeOrderBy es un procedimiento que rehace la clausula ORDER BY del
sql de selección. Para el tema de la ordenación ASC o DESC simplemente
guardo el Field.FieldNo (numero de campo dentro del sql que no me varia)
en myGrid.Tag y si coincide es DESC y si no ASC:
vSql := UpperCase(FQuery.Sql.Text);
if Pos(' ORDER BY ', vSql) <> 0 then
vSql := copy( vSql, 1, (Pos(' ORDER BY ', vSql) - 1) );
vSql := vSql + ' ORDER BY ' + Field.FieldName;
if myGrid.Tag = Field.FieldNo then
begin
vSql := vSql + ' DESC';
myGrid.Tag = 0;
end
else
begin
vSql := vSql + ' ASC';
myGrid.Tag = Field.FieldNo;
end;
FQuery.Sql.Text := vSql;
Solo queda refrescar el dataset. Espero que les sirva o aclare algo.
Un saludo.
________________________________________________________________________
ARTEX TRADING S.A.
José Antonio Cuello Principal
El jue, 18-11-2010 a las 12:34 -0300, Walter Mesón escribió:
> Hola José...
> >
> > Yo lo he hecho hace tiempo con esto:
> >
> > procedure TfrmReport_Oficio.DBGrid1TitleClick(Column: TColumn);
> > begin
> > qryHashAlias.IndexFieldNames:=Column.Title.Caption;
> > qryHashAlias.Refresh;
> > end;
> >
> > Pero claro, sólo ordenaba de menor a mayor y sin información visual,
> > pero el column era el correcto :-?
> >
> El tema es que el Column del parametro que te pasa está corrida una
> columna hacia la derecha, o sea que el valor que obtenés es es de la
> columna siguiente al que clikeaste.
> En las RX para Delphi me cansé de usarlo sin este problema...
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20101119/b460ac3f/attachment-0002.html>
More information about the Lazarus-es
mailing list