0

我有一个数据集(TADODataset),它馈送到分配给数据源(TDataSource)的内存数据集(TdxMemData)。当我运行程序并且 SQL 没有按任何顺序排序时,返回的三个记录显示在 3 个单独的报告页面 (ReportBuilder) 上。但是,当我按字段排序时,报告的前两条记录被附加在一起,只有最后一条记录正确显示。

这是神秘的,信息量不是很大,但我想看看我是否遗漏了一些简单的东西。代码不应该产生不同的结果,因为我订购了 SQL,但它确实如此。它让我相信我错过了该组件的设置。有谁知道排序 SQL 数据集可能导致的任何问题以及它与内存数据集交互的方式?我对使用这些组件类型非常陌生,我只是在寻找比我更有经验的人来让我知道我应该把它带到哪里。任何帮助将不胜感激,如果有任何不清楚的地方,我会尽力澄清。提前致谢。

2013 年 8 月 14 日更新:

SQL 语句(在 Order By 之前):

SELECT r.RecordID, r.VisibleRouteID, r.DriverSideStudentsPerSeat,
       r.ServiceSideStudentsPerSeat, v.Vehicle, v.DriverSideRows, 
       v.ServiceSideRows, v.RecordID AS VehicleID 
FROM Route r
LEFT OUTER JOIN Vehicles v ON v.RecordID = r.VehicleID
WHERE r.RecordID = :RouteID 

SQL 语句(添加 Order By 后):

SELECT r.RecordID, r.VisibleRouteID, r.DriverSideStudentsPerSeat,
       r.ServiceSideStudentsPerSeat, v.Vehicle, v.DriverSideRows, 
       v.ServiceSideRows, v.RecordID AS VehicleID 
FROM Route r
LEFT OUTER JOIN Vehicles v ON v.RecordID = r.VehicleID
WHERE r.RecordID = :RouteID
ORDER BY r.VisibleRouteID
4

1 回答 1

0

我在使用 AceReporter 时遇到了类似的问题。根据@AlexSC,听起来您在报告中定义的分组在订购项目时将两条记录放在同一页面上。例如,如果我有一个包含 3 条记录的数据集:

col1, col2
----------
A, 1
B, 2
A, 3

如果我的报告在 col1 上分组,这将显示为 3 组,因为我们使用 ABA。但是,如果我对 col1 进行排序,则行是 AAB,因此第一行也被组合在一起。

于 2016-06-29T15:57:58.037 回答