QDataSet 生成交叉数据函数 Cross 说明

我们在许多时候,通过脚本从数据库查询出来的统计结果集是面向行的,而实际报表却是面向列。我们不得不自己实现它的行列置换操作。

QDataSet 提供了一个全新的 Cross 函数来完成这一功能:

procedure Cross(AColField, AKeyField, AValueField, AKeyName: QStringW);

我们对函数的几个参数做个简单的说明:

  • AColField : 定义了用于作为字段名列表的字段
  • AKeyField : 定义了用于作为行关键字的字段
  • AValueField : 定义了用于作为交叉值的字段
  • AKeyName : 定义了用于做为行关键字字段的字段名,如果不指定,则为 AKeyField

我们来看一个例子效果,左侧为原始结果集内容,右侧是复制左侧的结果集后,使用下面的代码转换的结果:

FDest.Cross('Year','Animal','Total','Animal');

dscross

分享到: