2010-07-13 28 views
5

Cách Excel có thể được sử dụng để tạo báo cáo tùy chỉnh Người dùng cuối. Dữ liệu cần được lấy từ cơ sở dữ liệu máy chủ oracle/SQL dựa trên một số truy vấn và báo cáo cần được tạo trong Excel.Cách tạo báo cáo Tùy chỉnh dựa trên Người dùng trong Excel

Tôi muốn thiết kế giải pháp cho người dùng cuối (có kiến ​​thức về Excel & viết truy vấn cơ sở dữ liệu) để tạo báo cáo theo yêu cầu thay đổi của mình, để không phụ thuộc vào nhóm phát triển trong ngày hôm nay.

tôi thiết kế kiểu này ứng dụng sử dụng C# & Crystal Report trước đó, đòi hỏi ba điều: 1. báo cáo Crystal mẫu truy vấn cơ sở dữ liệu có 2. tiêu chí lọc (mà trên đó dữ liệu sẽ được đọc từ cơ sở dữ liệu). 3. Điều khiển người dùng động (ví dụ: hộp văn bản, thả xuống vv) thành phần thế hệ theo tiêu chí lọc Kiểm soát được yêu cầu (được xác định trong bảng cơ sở dữ liệu của người dùng cuối).

Nếu người dùng cuối quen với thiết kế báo cáo Crystal thì anh ta có thể thiết kế mẫu báo cáo tinh thể của riêng mình cùng với truy vấn cơ sở dữ liệu được nhúng trong báo cáo tinh thể. Phần mềm của tôi tạo ra các điều khiển người dùng động theo định nghĩa trong cơ sở dữ liệu cho mẫu báo cáo đó. Các tiêu chí lọc này được chuyển đến truy vấn được xác định trong báo cáo Crystal để báo cáo mong muốn có thể được tạo theo tiêu chí bộ lọc của anh ấy. Điều này đã giúp anh ta trong ngày phục vụ ngày hôm nay báo cáo yêu cầu thay đổi liên quan.

Bây giờ tôi muốn thiết kế giải pháp tương tự bằng cách sử dụng Excel, tức là thay thế mẫu báo cáo Tinh thể bằng mẫu Excel. Đề xuất ban đầu của tôi là như thế này mà tôi sẽ thay thế báo cáo tinh thể bằng mẫu excel có vài tham số cố định & vài tham số báo cáo biến (sẽ đến từ cơ sở dữ liệu theo truy vấn), phần còn lại tôi sẽ sử dụng từ giải pháp trước đó của mình.

Tôi không biết

  • Làm thế nào để xác định các thông số báo cáo trong Excel?
  • Cách tạo nhiều trang báo cáo (khi cơ sở dữ liệu trả về số liệu của nhiều bản ghi)?
  • Cách báo cáo phân trang như báo cáo tinh thể sẽ hiển thị khi nào kết quả được hiển thị trên nhiều trang?
  • Cách xác định Đầu trang báo cáo & vùng chân trang trong Excel được hiển thị trên nhiều trang báo cáo?

Tôi biết rằng những điều này có thể được thực hiện bằng cách sử dụng chương trình macro (được xác định trong mẫu báo cáo Excel) nhưng điều đó sẽ không dễ cho người dùng cuối, tôi muốn có một giải pháp tổng quát đơn giản mà tôi có thể triển khai một lần trong Chương trình C# để người dùng cuối (có ít kiến ​​thức excel) có thể thiết kế/sửa đổi báo cáo theo nhu cầu của mình mà không gặp khó khăn về lập trình, như tôi đã làm trong giải pháp trước đây của tôi (C# & Crystal report).

Cảm ơn trước vì đã tiết kiệm thời gian, hỗ trợ và có giá trị của bạn.

Trân trọng. Gopal Parikh.

Trả lời

2

Đây sẽ là một dự án rất khó khăn, chủ yếu là do Excel không thực sự là công cụ báo cáo theo cách mà Báo cáo tinh thể.Tôi đã tạo ra rất nhiều báo cáo trong Excel, và mỗi một trong số đó là một giải pháp tùy chỉnh, phù hợp với nhu cầu của người dùng. Việc tạo một công cụ báo cáo chung trong Excel sẽ yêu cầu rất nhiều "điền đầy khoảng trống" trong bộ tính năng của Excel.

Cách xác định tham số báo cáo trong Excel?

Thực sự không có thông số báo cáo trong Excel, ít nhất là không giống như trong Báo cáo Crystal. Nếu bạn định sử dụng C# và VSTO, thì bạn có thể tạo biểu mẫu (hoặc sử dụng ngăn tác vụ) để người dùng nhập các tham số. Bạn cũng có thể thử sử dụng VBA/VSTO và sử dụng các đối tượng dữ liệu Excel gốc (QueryTables, ListObjects và PivotTables), có thể cung cấp cho bạn một số tùy chọn được xây dựng sẵn cho các tham số. Nếu bạn muốn người dùng có thể tạo báo cáo của riêng mình, thì bạn sẽ cần phải tạo một số loại trình hướng dẫn báo cáo để giúp họ thiết lập và quản lý các 'tham số' này.

Cách tạo báo cáo nhiều trang (khi cơ sở dữ liệu trả về số liệu hơn một bản ghi)?

Làm cách nào để phân trang báo cáo như báo cáo pha lê khi nào kết quả sẽ được hiển thị trên nhiều trang?

Cả hai vấn đề này đều giống nhau, nếu tôi hiểu chính xác. Tất cả các tính năng phân trang bạn thấy trong Báo cáo Crystal (ví dụ: "giữ nguyên mục", "tiêu đề lặp lại", v.v.) sẽ cần phải được mã hóa trong Excel, vì chúng không tồn tại. Bởi vì Excel không thực sự có bất cứ điều gì tương tự như các nhóm của Crystal Reports, đây sẽ là một vấn đề khó khăn để giải quyết, tôi nghĩ vậy. Làm thế nào để bạn xác định một khu vực trong Excel như một cái gì đó bạn sẽ "giữ lại với nhau" khi in trên một trang mới? Làm thế nào để bạn thêm khoảng trắng vào cuối trang trước (Excel thường sẽ cố gắng mở rộng kích thước)? Mô hình đối tượng là có, và nó chắc chắn có vẻ như doable, chỉ thực sự tốn thời gian và khó khăn.

làm thế nào để xác định Báo cáo đầu & chân khu vực trong Excel được hiển thị trên báo cáo trang mulitple?

Điều này không thực sự quá khó vì có các đối tượng đầu trang và chân trang của trang mà bạn có thể sử dụng. Tuy nhiên, bạn sẽ phải cập nhật các giá trị theo cách thủ công, vì bạn thường không thể có thông tin 'động' ở đó (không có công thức, không có đối tượng dữ liệu, v.v.). Bạn cũng có thể sử dụng "Hàng để lặp lại ở đầu" nếu bạn cần linh hoạt hơn.

Nói chung, Excel thực sự là công cụ sai cho loại công việc này. Excel có thể là một công cụ báo cáo mạnh mẽ, nhưng nói chung có một ai đó khá am hiểu trong Excel, và một số tính năng chỉ không có ngay cả đối với người dùng quyền lực (mà không cần viết một số VBA quá đắt).

1

Hãy xem này:

Create Excel (.XLS and .XLSX) file from C#

Nó cho phép bạn tạo ra một mẫu file Excel theo yêu cầu của bạn. Người dùng cuối trong trường hợp cực đoan sẽ chỉ cần tùy chỉnh mẫu. Đó là một điều dễ dàng để làm. Tùy chỉnh để bao gồm hoặc xóa cột, nhãn, công thức, v.v.

Giải pháp này có vẻ hoàn hảo cho người dùng cuối có kiến ​​thức về cách viết truy vấn cơ sở dữ liệu Excel &.

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