2012-05-08 30 views
6

Có thể thêm trường tổng hợp trên trường được tính toán không?Tổng hợp trường được tính toán trong TClientDataset

Giả sử có một CD với các lĩnh vực sau:

  • ID (autoincrement)
  • Tên (string)
  • Giá (float)
  • Số lượng (số nguyên)
  • Tổng số (số nguyên) - trường được tính toán - Giá * Số lượng

và tôi muốn thêm tổng hợp để lấy tổng của cột Tổng. Có thể không?

Trả lời

5

Có, điều đó có thể xảy ra nếu bạn thay đổi trường được tính toán thành trường InternalCalc. Tính toán vẫn được thực hiện trong sự kiện OnCalcFields, nhưng bạn phải kiểm tra trạng thái cho InternalCalc khi bạn thực hiện phép tính cho trường đó.

+0

Còn về ['trường tổng hợp'] (http://edn.embarcadero.com/article/29272)? Họ có vẻ tốt hơn cho mục đích này. – TLama

+3

@TLama, tất nhiên bạn có thể tạo một trường tổng hợp với SUM (Giá * Số lượng), nhưng câu hỏi là làm thế nào để tổng hợp trên một trường được tính toán. Điều này sẽ chỉ hoạt động nếu trường được tính toán có FieldKind = fkInternalCalc. –

+3

Nó chủ yếu là chuỗi đánh giá: các trường InternalCalc được calcluated trước khi tổng hợp và sắp xếp, vì vậy chúng có thể được sử dụng trong tập hợp và làm chỉ mục. Các trường được tính toán được đánh giá sau đó. Các trường InternalCalc chỉ được hỗ trợ trong TClientDataSets. –

Các vấn đề liên quan