Tôi có một dữ liệu trong hàng như thế này cho id 1Báo cáo tinh thể; Kết hợp dòng dữ liệu vào một giá trị duy nhất
id1 a1
id1 b2
id1 c3
id1 d4
id1 e5
Tôi muốn kết hợp nó là "a1b2c3d4e5" thành một giá trị duy nhất cho id1. Cảm ơn trước.
Tôi có một dữ liệu trong hàng như thế này cho id 1Báo cáo tinh thể; Kết hợp dòng dữ liệu vào một giá trị duy nhất
id1 a1
id1 b2
id1 c3
id1 d4
id1 e5
Tôi muốn kết hợp nó là "a1b2c3d4e5" thành một giá trị duy nhất cho id1. Cảm ơn trước.
Nó sẽ phụ thuộc vào loại dữ liệu cho các cột a1-e5 và những gì bạn đang cố gắng làm với một giá trị duy nhất.
Nếu bạn chỉ muốn hiển thị giá trị, bạn có thể tạo công thức sử dụng hàm ToText() của Crystal để chuyển đổi chúng thành chuỗi và sau đó ghép chúng lại với nhau bằng '+'.
ToText({id1.a1}) + ToText({id1.b2}) + ToText({id1.c3}) + ToText({id1.d4}) + ToText({id1.e5})
Bạn cũng có thể thực hiện điều tương tự ở phía DBMS.
Nếu bạn có thể cung cấp thêm thông tin, chúng tôi có thể đưa ra giải pháp tốt hơn.
Vì vậy, bạn muốn nối dữ liệu từ nhiều hàng hàng vào một hàng duy nhất để hiển thị? Crystal Reports thực sự không được xây dựng cho loại điều đó. Ngay cả khi bạn có thể, tôi vẫn đề nghị thực hiện phía máy chủ đó trước, sau đó cho nó vào Crystal.
Sẽ không quá khó khăn, một vòng lặp đơn giản thông qua dữ liệu bằng ngôn ngữ bạn chọn. Nhưng Crystal được xây dựng để hiển thị và định dạng dữ liệu, với một bộ công cụ thao tác dữ liệu phong phú (nhưng không mở rộng). Tôi không nghĩ đó là cách tốt nhất để đi.
Cảm ơn bạn đã bình luận của bạn. Tôi không có quyền truy cập vào máy chủ và tôi đã cố tạo một mảng hoặc ma trận để giữ dữ liệu, sau đó hiển thị chúng. Nhưng nó đã không thành công. Cảm ơn sự giúp đỡ của bạn. – Helen
Một mảng trong âm thanh Pha lê giống như nó có thể làm các trick cho những gì bạn đang muốn làm ... rắc rối gì bạn đã có với nó? Bạn có thể nhóm theo khách hàng, khởi tạo mảng và numbervar để theo dõi kích thước trong tiêu đề và tự động tăng mảng (Sử dụng REDIM PRESERVE) với mỗi sản phẩm mới mà bạn gặp phải trong chi tiết. Ở chân trang, bạn sẽ có một mảng của từng sản phẩm mà khách hàng đã mua. – Ryan
Một cách tiếp cận là phương pháp "Công thức 3". Bạn thiết lập một công thức khởi tạo trong mỗi tiêu đề, với chỉ thị thời gian đánh giá "WhilePrintingRecords". Cách tiếp cận này là phương pháp duy nhất có sẵn để thực hiện các tổng số chạy trong "ngày tốt", trước khi các đối tượng RunningTotal có sẵn.
Ví dụ:
Trong Nhóm Header: - Có một công thức @InitiliseRT
WhilePrintingRecords;
StringVar ConcatenatedID;
If Not InRepeatedGroupHeader Then
ConcatenatedID := "";
Trong Details Section: - Có một công thức @UpdateRT
WhilePrintingRecords;
StringVar ConcatenatedID := ConcatenatedID + id1;
Cuối cùng, trong Chân trang nhóm, bạn có thể xem kết quả: - Công thức @ShowRT
WhilePrintingRecords;
StringVar ConcatenatedID;
Điều này sẽ cung cấp cho bạn chuỗi cuối cùng của "a1b2c3d4e5".
Nếu cần, bạn có thể thêm công thức bổ sung cho các nhóm bổ sung, một biến cho mỗi nhóm (ví dụ: ConcatenatedIDGroup1, ConcatenatedIDGroup2). Điều quan trọng là luôn luôn có được tên ngay giữa các nhóm, và để khởi tạo biến trong tiêu đề nhóm.
Có những hạn chế đối với việc sử dụng các công thức này.Các hàm tổng hợp dựng sẵn (Tổng, Tối đa, Đếm, ...) hoặc RunningTotals không thể sử dụng chúng, và bạn không thể nhóm chúng.
Tôi đã theo dõi ví dụ của bạn, nhưng nó không hoạt động khi ở nhiều trang. Vui lòng trợ giúp hoặc chia sẻ một số yếu tố đầu vào, vì nó hoạt động khá tốt khi báo cáo chỉ có một trang – rickyProgrammer
Tôi đã quên vấn đề với nhiều trang. Tôi đã cập nhật mã cho @InitialiseRT để bao gồm kiểm tra cho InRepeatedGroupHeader. Lần đầu tiên trang được in này sẽ là false và chuỗi đã làm trống. Đối với bất kỳ trang nào khác, InRepeatedGroupHeader là đúng và chuỗi sẽ bị bỏ lại một mình. Tâm trí bạn tôi đã không thử nghiệm này, tôi chỉ cần đi ra khỏi bộ nhớ của tôi, vì tôi không còn có Crystal cài đặt. –
Tôi đã thực sự kết thúc sau đó vấn đề trong nhiều trang bằng cách đặt công thức khởi tạo ở phần chân trang nhóm. – rickyProgrammer
Tôi gần như upvoted câu trả lời của bạn, nhưng sau đó tôi nhận ra đây không phải là câu hỏi của cô ấy. Nếu đó là, tuy nhiên, bạn trả lời nó hoàn hảo. – PowerUser
Vâng, tôi đã xem xét điều đó nhưng đã đưa ra giả định đó là một snafu ngữ nghĩa và rằng nhiều khả năng id1 đó là một hàng/bản ghi. – Ryan
Cảm ơn bạn đã trả lời câu hỏi của tôi. Id1 là một id khách hàng, custome này đã mua sản phẩm a1, b2, c3 ở thời điểm khác nhau, vv Tôi muốn biết khách hàng nào mua a1 cũng đã mua d4. cảm ơn rất nhiều – Helen