感谢lixy的大力支持,按优先级排序的事情大概可以这样解决一下:
DataSetTaskIndex.SQL.Text := SysUtils.Format('SELECT %s, pn = case FPRIORITY when ''tpHigh'' then 1 when ''tpLow'' then 3 else 2 end FROM TTASK ' +
' WHERE FGROUPGUID = ''-1'' AND (FKIND in (''ftkActivity'', ''ftkReturn'', ''ftkTransmit'', '
+' ''ftkNotify'', '''', ''ftkHasten'') or FKIND IS NULL) '
+' ORDER BY pn, FCREATETIME DESC', [lTaskFileds]);
DataSetTaskIndex.Order := 'pn, FCREATETIME desc';
由于原有的优先级的枚举值存在一些天然的缺陷,通过case加工一下就可以了。 |