2010-08-24 31 views

Trả lời

-1

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.

+1

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

+0

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

+0

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

0

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.

+0

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

+0

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

13

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.

+0

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

+0

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. –

+0

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

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