Saludos
No conozco ese componente, entonces lo que te diré estara basado en otro.
Creo que
MacroByName funciona como
ParamByName (espero no equivocarme). Si es asi, no veo el parametro declarado en la sentencia.
Nunca he usado un Param para ordenar una sentencia pues el componente hace el arreglo correspondiente dependiendo si es AsString(' '), AsInteger, AsVariant.
Prueba con un campo qeu esté en la tu tabla antes de usar el nombre de la columna.
Código Delphi
[-]
ModuloDatos1.MySQLQReporte.MacroByName('ORDER').AsVariant:='ORDER BY campoorden desc' ;
ModuloDatos1.MySQLQReporte.Open;
Suerte