2012-05-03 30 views
12

Tôi biết đây là một chút chủ quan, nhưng tôi đang xem xét tình huống sau:Làm cách nào để tạo tài liệu (docx hoặc pdf) từ SQL Server?

Tôi cần tạo một số tài liệu tự động từ dữ liệu trong cơ sở dữ liệu SQL Server. Sẽ có một ứng dụng MVC3 ngồi trên cơ sở dữ liệu để cho phép nhập dữ liệu vv và (có thể) một nút "Go" để tạo tài liệu. Cần phải có một số logic kinh doanh về cách các tài liệu này được tạo, đặt tên và lưu trữ (ví dụ: tài liệu "Cha mẹ" có một tên và đi vào một thư mục, tài liệu "Con" có tên được tính và đi vào một phụ thư mục.

các văn bản có thể là PDF hoặc Doc (x) (hoặc thậm chí cả hai), miễn là đầu ra có thể ở EN-US và AR-QA (RTL văn bản)

tôi biết có một số tùy chọn từ SSRS, Crystal Reports, VSTO, "thủ công" PDF trong mã, kết hợp thư từ, v.v ... và chúng tôi đã có công cụ HTML to PDF nếu có bất kỳ việc sử dụng nào?

bất cứ ai có bất kỳ lời khuyên thế giới thực về làm thế nào để đi về điều này và cách tiếp cận "tốt nhất" (thực dụng nhất) sẽ là gì? Các "extras" ít tôi cần phải cài đặt và cấu hình trên máy chủ thì càng tốt - nhanh hơn sự phát triển thì càng tốt (như mọi khi !!)


phát hiện cho đến nay:

Word Mail Merge (hoặc VSTO) Đơn giản là không cung cấp sự đơn giản, kiểm soát và linh hoạt mà tôi yêu cầu - thật sự xấu hổ. Sẽ được tốt đẹp để xác định một dấu chấm và có thể vượt qua trong dữ liệu cho nó trên cơ sở cá nhân để tạo ra các docx. Cách duy nhất tôi có thể đạt được điều này (và tôi có thể sai ở đây) là để lặp qua điều khiển/đánh dấu bằng tên và thay thế các giá trị ... lộn xộn.

OpenXML Tạo tài liệu dựa trên mẫu dotx, ngay cả khi sử dụng OpenXML cũng không đơn giản như (IMHO). Bạn phải thay thế từng Kiểm soát nội dung theo tên, vì vậy việc bảo trì không phải là nhiệm vụ đơn giản nhất.

SSRS Đối mặt với nó đây là giải pháp tốt (mặc dù nó cần SQL Enterprise), tuy nhiên sẽ phức tạp hơn nếu bạn muốn tự động tạo các thư mục và tài liệu. Đăng ký theo hướng dữ liệu rất gần với những gì tôi muốn.

Chuyển đổi HTML sang PDF chuyển đổi * Đây là công cụ chúng tôi đã có (mặc dù phiên bản .Net 2.0). Điều này cho phép tôi tạo các trang HTML và chuyển đổi chúng thành PDF. Một lựa chọn tốt cho tôi kể từ khi tôi có thể chạy điều này trên một trang web MVC3 adn vượt qua các thông số vào bộ điều khiển để tạo ra các PDF. Điều này cho phép tôi kiểm soát tốt hơn nhiều so với cấu trúc thư mục và đặt tên - vấn đề với phương thức này đơn giản là tạo ra các trang theo cách chính xác. Một tiền thưởng là nó tự động mang lại cho tôi một "bản xem trước" ... cơ bản chỉ là trang HTML!

+0

Có thực sự là [Đăng ký theo hướng dữ liệu] (http://msdn.microsoft.com/en-us/library/ms159150 (v = sql.100) .aspx) trong SSRS (điều này đòi hỏi sự cần thiết cho Doanh nghiệp Edition) hoặc chỉ là một báo cáo theo yêu cầu? Tôi nghĩ * bạn có thể sử dụng ứng dụng khách RS được nhúng để hiển thị trực tiếp sang PDF hoặc Word hoặc chỉ trình bày báo cáo cho người dùng trong trang web của bạn và cho phép họ chỉ đạo các tác vụ lưu. – billinkc

+0

Đối với một báo cáo duy nhất, điều này sẽ là tuyệt vời, tuy nhiên kết quả cuối cùng (trong trường hợp này) là một hệ thống phân cấp của nhiều cấp báo cáo. Về cơ bản, chúng tôi cần tạo ra các báo cáo cụ thể cho tất cả khách hàng, cổ đông, thành viên hội đồng quản trị và công ty con của họ - bao gồm cổ đông của THEIR, thành viên hội đồng quản trị, vv cho một cơ quan quản lý. Có các quy tắc về mức độ mà mỗi báo cáo được báo cáo, v.v. – BlueChippy

+0

Bạn có thể chỉnh sửa bài đăng gốc làm tài liệu tham khảo. Bạn đã từng kiểm tra khả năng của các công nghệ như Silverlight và WPF chưa? – Steffe

Trả lời

4

Office OpenXML là cách tạo các tệp văn phòng đẹp và đơn giản. XSLT có thể là công cụ mạnh để định dạng nội dung của bạn. Công nghệ này sẽ không cho phép bạn tạo pdf.

Phát triển nhanh mà không cần sử dụng bất kỳ thành phần nào của bên thứ ba sẽ khó. Nhưng nếu bạn cân nhắc sử dụng máy chủ báo cáo, hãy nhớ xem BIRT hoặc Jasper.

Để tạo pdf, tôi đã sử dụng Report.net không được chấp nhận.Nó có nhiều cổng cho các ngôn ngữ khác nhau và vẫn đủ để tạo các bản pdf đơn giản. Report.net on sourceforge

2

Tôi không nghĩ chính SQL Server có thể tạo tệp pdf. Những gì bạn có thể làm là, như bạn đã đề cập, cài đặt một thể hiện của SSRS và tạo một báo cáo để tạo ra thông tin bạn cần. Sau đó, bạn có thể tạo một đăng ký để gửi báo cáo của bạn đến nơi bạn muốn, khi bạn muốn.

Dưới đây là một ví dụ về một thuê bao đơn giản: enter image description here

+0

SSRS có thể tạo cấu trúc thư mục động/tên tệp không? – BlueChippy

+0

có, theo đăng ký thông thường, bạn có thể tạo tên tệp động (xem các tùy chọn ghi đè) trên màn hình in. Nếu bạn cần một cái gì đó phức tạp hơn, giống như các thư mục động, bạn cần đăng ký data_driven – Diego

0

Go cho SSRS chỉ nếu bạn là OK với cài đặt nó lên trên máy chủ và có một nhu cầu nhất định cho việc báo cáo tiến độ và báo cáo phức tạp.

Nếu bạn có mã để tạo PDF/docx thủ công, tôi khuyên bạn nên tiếp tục với nó. Hy vọng rằng sự phức tạp của mã của nó không phải là vấn đề với bạn.

Tôi đã sử dụng cả hai trong các trường hợp riêng biệt. Chúng tôi sử dụng các lớp excel và các đối tượng từ .NET cho một báo cáo tối thiểu từ một ứng dụng web.

Nhưng đã đi cho một chương trình báo cáo phức tạp cho một hệ thống yêu cầu 1000 báo cáo được tạo theo cách được lên lịch và được phân phối tới nhóm người được chọn.

+0

Cảm ơn - không cần lập lại lịch biểu, trường hợp của nó có thể thay thế sơ khai bằng dữ liệu trong một "mẫu" và sau đó lưu vào các vị trí cụ thể/tên. – BlueChippy

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