2009-04-14 31 views
31

Tôi đang tìm một cái gì đó hoạt động trong PHP và tương tự như các báo cáo tinh thể. Tôi về cơ bản cần phải có một thiết lập bố trí có nghĩa là tôi có thể xuất hóa đơn chỉ bằng cách chèn dữ liệu, và sau đó gửi nó đến một máy in.Điều gì đó giống như Báo cáo tinh thể cho PHP?

Gần nhất tôi đã tìm thấy cho đến nay là PDFB, nhưng Đó là một chút đau vì nó cần phải có vị trí chính xác.

Tôi muốn có cái gì đó có thể tạo ra một hóa đơn dựa trên một mẫu (tốt nhất là dựa trên XML) và sau đó đầu ra nó vào một hình thức dễ dàng cho chúng tôi để in (PostScript sẽ được tốt đẹp!)

Nó cần để có hỗ trợ cho mã vạch quá (mặc dù chúng có thể được tạo ra như một hình ảnh GD)

một yêu cầu khác là điều này phải FLOSS

+11

Bạn có nghĩa là bạn muốn một số phần mềm đắt đỏ đòi hỏi một trang trại máy chủ lớn và có thiết kế mong manh của spaghetti sống? : D –

+0

Xin lỗi, quên đề cập đến. Tôi muốn nó FLOSS – Mez

Trả lời

1

hm .. tôi đã có cùng một vấn đề tại dự án hiện tại của tôi và tôi đã kết thúc bằng báo cáo tinh thể và gọi báo cáo bằng dịch vụ web asp.net được viết bằng C#. dịch vụ web không phức tạp và bạn vẫn có thể sử dụng tất cả các tính năng của báo cáo tinh thể. tôi không nghĩ rằng bạn sẽ tìm thấy bất kỳ công cụ báo cáo nào hoàn toàn dựa trên php có thể được so sánh với các báo cáo tinh thể ... i havent đã có thể tìm thấy một ...

5

Nếu bạn có quyền truy cập máy chủ, bạn cũng có thể thích đi theo số XSL Formatting Objects đến số Apache FOP. XSL-FO dựa trên XML và hỗ trợ rất nhiều trong số output formats bao gồm PostScript và PDF

+0

Rất thích nghe lý do tại sao câu trả lời của tôi đã được bình chọn. –

1

Tôi đã gặp sự cố tương tự khoảng một năm trước. Sau khi tìm kiếm tất cả các giải pháp hiện tại, tôi không tìm thấy giải pháp nào, vì vậy tôi đã viết một báo cáo tinh thể thu gọn bằng cách sử dụng thư viện tạo PDF của Zend Framework. Tôi đã phải điều chỉnh rất nhiều thư viện của họ để hỗ trợ các đối tượng được nhóm, lặp lại các phần và mẫu. Nó hoạt động, nhưng nó thực sự rất khó, và nếu tôi phải làm lại, tôi sẽ tìm cách nối php vào các báo cáo pha lê, hoặc thông qua một dịch vụ web như Gushiken nói, hoặc bằng cách gọi một ứng dụng dòng lệnh. CPAN có giao diện Perl đến C.R .: Win32::OLE::CrystalRuntime::Application.

Nếu một giải pháp PHP đã được phát hành trong năm qua, tôi nghi ngờ nó đủ trưởng thành để so sánh với C.R. Đừng lãng phí thời gian của bạn kéo tóc ra - đi với những gì làm việc. Thời gian là tốn kém. Phần mềm không phải là.

4

Nếu bạn quản lý để gọi một ứng dụng Java trong php-môi trường của bạn (mà nói chung nên có thể) JasperReports có lẽ là điều bạn đang tìm kiếm:

+0

Vâng, đây là những gì chúng tôi đang sử dụng bây giờ, khi chúng tôi sử dụng Jasper ở những nơi khác. – Mez

7

Tôi đã sử dụng Spreadsheet_Excel_Writer trong PHP, và nó đủ tốt . Không phải WYSIWYG, nhưng nó tạo ra các tệp XSL và tôi hài lòng với nó. Sau đó, bạn có thể use OpenOffice macro để chuyển đổi tài liệu sang PDF. Nó hoạt động từ dòng lệnh, ergo, nó cũng hoạt động từ các tập lệnh PHP.

Hoặc đây là cách tốt hơn nữa.

Sử dụng OpenOffice để chuyển đổi mẫu Smarty. Smarty là một công cụ tạo khuôn mẫu thú vị cho PHP, tôi khuyên bạn nên sử dụng nó cho mục đích này. Sau đó, tạo HTML thuần túy bằng cách sử dụng PHP với Smarty. Cuối cùng, chỉ cần chuyển đổi HTML được tạo thành PDF bằng phương pháp đã nói ở trên.

Báo cáo cách mạng (tm).

EDIT Jun6 2009 Đã sửa đổi? Ah, không bao giờ.

Dù sao, phương pháp này hoạt động trên máy chủ không có đầu mà không chạy X11. Tôi đã lấy kịch bản từ mentioned link (ngoại trừ tôi đặt nó trong bộ sưu tập sẵn có "Chuẩn" thay vì "DannysLibrary") và sau đó tôi đã chạy lệnh này từ máy Windows bằng PuTTY, và X bị tắt trên máy từ xa, và Biến DISPLAY không được đặt và ... trong mọi trường hợp, không có cách nào OOo có thể tìm thấy X11 để kết nối.

$ openoffice.org -invisible -headless "macro:///Standard.Conversion.ConvertWordToPDF(`pwd`/logaritamska.doc)" 

Tác phẩm này sẽ hoạt động tốt cho bất kỳ ai cần chuyển đổi từ định dạng khác sang PDF, bao gồm cả sản xuất báo cáo có thể in từ HTML. Bằng cách chỉnh sửa macro bạn có thể, thậm chí có thể nhận OOo đọc trực tiếp từ stdin hoặc từ URL dịch vụ tạm thời của bạn và xuất ra tệp được xác định trước. Kịch bản trên link khá đơn giản khi bạn có mã cơ bản để mở rộng.

Tóm tắt:

  • tạo các báo cáo như XLS hoặc HTML
  • chuyển đổi chúng
  • mặc dù nó OOo, nó hoạt động trên máy không đầu

EDIT 09 tháng 6 năm 2009 tôi đã cố gắng thực hiện một công cụ chuyển đổi trực tuyến theo cách này. Bạn nên làm cho PHP chạy dưới cùng một người dùng mà bạn đã tạo macro. Người dùng này dường như không thể là dữ liệu www. Tôi đã cố gắng sử dụng suphp, nhưng đối với một số lý do nó đã không thay đổi người dùng đúng cách (posix_getuid() tiếp tục trở về 33 đó là www-data). Tôi sẽ chỉnh sửa khi tôi sửa lỗi này.

EDIT 26 tháng 6 năm 2009 Tôi phải mất một thời gian để báo cáo lại. Có, điều này làm việc với suphp. Tuy nhiên tôi không ở vị trí để hiển thị nó trực tiếp, vì máy chủ duy nhất tôi đã chạy một ứng dụng web tương đối quan trọng mà không có kiểm toán bảo mật chuyên nghiệp. Điều này có nghĩa là một trong những điều chúng tôi phụ thuộc vào để bảo vệ phần phụ trợ là người dùng theo đó lối vào chạy là một người dùng rất không có đặc quyền (chẳng hạn như www-data). Đừng hỏi :-)

Hy vọng điều này sẽ giúp ai đó: có, chuyển đổi thành PDF với OO.o khá thực tế. Thậm chí còn có một số hỗ trợ gọi từ xa trong OO.o nhưng tôi đã không nghiên cứu mà chỉ cho mục đích viết này.

+2

Điều này phải được tự động trên một máy chủ gui-less. Đây không phải là giải pháp thích hợp. – Mez

+0

WRONG! Điều này hoạt động trên một máy chủ không đầu. Tôi đã thêm lệnh chính xác vào nhận xét của mình. –

-1

Hãy xem siwapp.org, đây là ứng dụng lập hóa đơn dựa trên Symphony Framework, đang ở giai đoạn beta sớm nhưng rất hứa hẹn.

6

Tôi đã sử dụng các eclpse trong php: "BIRT Dự án"

http://www.eclipse.org/birt/phoenix/

Bạn thiết kế báo cáo của bạn trong Eclipse. Sau đó tải nó lên máy chủ của bạn (nó phải đang chạy tomcat) Tôi biết. Sau đó, bạn có thể gọi báo cáo từ ứng dụng php của bạn bạn có thể gửi các thông số để báo cáo thông qua chuỗi truy vấn:

/myreport.birt?param=var & param2 = var2

Chúng tôi có một 4 năm ứng dụng hoạt động như thế này cho đến nay. Khoảng 100 báo cáo và nó hoạt động thực sự tốt.

Tất nhiên đó là mã nguồn mở.

Chúc may mắn

+0

Tôi đồng ý rằng BIRT là con đường để đi. Xem bài viết trên developerWorks này cho thấy cách tích hợp BIRT với PHP bằng cách sử dụng WebSphere sMash: http://www.ibm.com/developerworks/websphere/techjournal/0903_phillips – rewbs

+0

BIRT tất cả các cách! – FastTrack

0

Hãy thử Tufat

Tôi chỉ xảy ra để thấy rằng ..may là nó sẽ giúp bạn. Tuy nhiên, có một phiên bản miễn phí có sẵn để bạn kiểm tra.

Bạn sẽ thích nó .. Vui lòng chia sẻ bản sao của bạn.

0

tôi đã sử dụng phpreports, và tôi phải thừa nhận nó không phải là xấu đối với báo cáo dựa trên web vì nó có hỗ trợ cho tiêu đề, footers, nhóm, tổng số phụ, vv

1

Các công cụ phù hợp với nhu cầu này là XSL-FO , vì nó hoàn hảo cho phương tiện in được. XSL-FO cũng là một Khuyến cáo của W3C, với XSLT. Tôi đã tạo một công cụ php sử dụng XSL-FO làm ngôn ngữ trung gian để báo cáo, XLS-FO này là kết quả của việc kết hợp (xử lý) mẫu XSLT báo cáo với dữ liệu XML của bạn.

Bạn tạo mẫu tự động bằng MS Word và xuất như được hiển thị trong hướng dẫn sử dụng. Sau đó, bạn cấp nguồn cho Công cụ báo cáo với mẫu và tại thời gian chạy với XML dữ liệu.

Cũng tại thời gian chạy, kết quả báo cáo XSL-FO là ra tới:

a) cùng XSL-FO (nếu bạn muốn gỡ lỗi hoặc chỉ muốn có một XSL-FO)

b) PDF hoàn hảo, (ApacheFOP hiển thị XSL-FO)

c) HTML có chuyển đổi XSLFO2HTML.

Ở đây bạn có dự án, nó một symfony 1.4 plugin: https://github.com/juanmf/sfPlugins/tree/master/reportPlugin

tôi có kế hoạch để tách nó từ sf. Đừng ngần ngại hỏi bất cứ điều gì. Đây là mục Howto: https://github.com/juanmf/sfPlugins/blob/master/reportPlugin/doc/HowToReport.pdf?raw=true

bài này cũng có thể cung cấp cho bạn một số giúp đỡ: https://stackoverflow.com/questions/5519024/report-engine-solution-for-lamp-application/13042656

Trân trọng!

4

Reportico

Theo tôi là một trong những tốt nhất, chi tiết và tính năng phong phú PHP Report Designer.

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