2009-04-14 21 views
31

Sto cercando qualcosa che funzioni in PHP ed è simile ai report di cristallo. Fondamentalmente ho bisogno di avere una configurazione del layout che significa che posso emettere fatture semplicemente inserendo i dati e quindi inviarli a una stampante.Qualcosa come Crystal Reports per PHP?

Il più vicino che ho trovato finora è PDFB, ma è un po 'un dolore in quanto ha bisogno di avere un posizionamento preciso.

Mi piacerebbe avere qualcosa che potrebbe generare una fattura basato su un modello (preferibilmente basato su XML) e poi l'uscita in una forma facile e noi lo stamperemo (PostScript sarebbe bello!)

di cui ha bisogno per avere il supporto per i codici a barre troppo (anche se questi possono essere generati come immagine di GD)

un altro requisito è che questo deve essere FLOSS

+11

Vuol dire che vuoi un software troppo costoso che richiede un'enorme server farm e ha la fragilità del design degli spaghetti grezzi? : D –

+0

Mi dispiace, ho dimenticato di menzionare. Lo volevo FLOSS – Mez

risposta

1

hm .. Ho avuto lo stesso problema al mio progetto in corso e ho finito per usare report di cristallo e chiamando il report con un servizio web asp.net scritto in C#. il servizio web non è niente di complicato e puoi ancora utilizzare tutte le funzionalità dei report di cristallo. non penso che troverai un motore di report completamente basato su php che può essere paragonato a report di cristallo ... non sono riuscito a trovarne uno ancora ...

5

Se hai accesso al server potresti anche piace andare per XSL Formatting Objects attraverso Apache FOP. XSL-FO è basato su XML e supporta un sacco di output formats compresi PostScript e PDF

+0

Mi piacerebbe sapere perché la mia risposta è stata downvoted. –

1

Mi sono imbattuto nello stesso problema circa un anno fa. Dopo aver cercato dappertutto una soluzione esistente, non ne ho trovato uno, quindi ho scritto un report di cristallo ridotto utilizzando la libreria di generazione PDF di Zend Framework. Ho dovuto adattare pesantemente la loro libreria per supportare oggetti raggruppati, ripetendo sezioni e modelli. Ha funzionato, ma era davvero goffo, e se dovessi farlo di nuovo, avrei trovato un modo per collegare i report php a quelli cristallini, sia attraverso un servizio web come Gushiken, sia chiamando un'app da linea di comando. CPAN ha un'interfaccia Perl per C.R .: Win32::OLE::CrystalRuntime::Application.

Se una soluzione PHP è stata rilasciata nell'ultimo anno, dubito che sia abbastanza matura da poter essere paragonata a C.R. Non sprecare il tuo tempo a strapparti i capelli - vai con quello che funziona. Il tempo è costoso. Il software non lo è.

4

Se si riesce a chiamare un'applicazione Java nel tuo php-ambiente (che, in generale, dovrebbe essere possibile) JasperReports forse la cosa che stai cercando:

+0

Sì, questo è quello che stiamo usando ora, dato che usiamo Jasper in altri posti. – Mez

7

Ho usato Spreadsheet_Excel_Writer in PHP, ed è abbastanza buono . Non WYSIWYG, ma genera file XSL e sono soddisfatto. Successivamente, è possibile use OpenOffice macro convertire il documento in PDF. Funziona da riga di comando, ergo, funziona anche da script PHP.

O ecco un modo ancora migliore.

Utilizzare OpenOffice per convertire un modello Smarty. Smarty è un fantastico motore di template per PHP, lo raccomando per questo scopo. Quindi genera puro HTML usando PHP con Smarty. Infine, basta convertire l'HTML generato in PDF usando il metodo sopra menzionato.

Reporting Revolutionized (tm).

EDIT, 6 giugno 2009 Modded down? Ah, non importa

Ad ogni modo, questo metodo funziona su un server headless senza eseguire X11. Ho preso lo script dallo mentioned link (eccetto che l'ho inserito nella raccolta preesistente "Standard" invece di "DannysLibrary") e quindi ho eseguito questo comando dalla macchina Windows usando PuTTY, e X è stato spento sulla macchina remota, e La variabile DISPLAY non è stata impostata e ... beh, in ogni caso, non è possibile che OOo trovi X11 a cui connettersi.

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

Questo funziona e sono sicuro che questo sarebbe grande lavoro per tutti coloro che avresti bisogno di conversione da un formato in PDF, inclusa la produzione di report stampabili da HTML. Modificando la macro, potresti persino ottenere OOo da leggere direttamente da stdin o dall'URL del tuo servizio temporaneo e inviarlo in un file predefinito. Lo script su link è abbastanza semplice una volta che hai il codice elementare da espandere.

Sommario:

  • generare report come XLS o HTML
  • convertirli
  • anche se è OOo, funziona su macchine senza testa

EDIT 9 Giugno 2009 I Ho provato a implementare un convertitore online in questo modo. Dovresti eseguire PHP sotto lo stesso utente con cui hai creato le macro. Apparentemente questo utente non può essere www-data. Ho provato a usare suphp, ma per qualche motivo non ha cambiato l'utente in modo corretto (posix_getuid() ha mantenuto il valore 33, che è www-data). Lo modificherò una volta risolto questo problema.

EDIT, 26 giu. 2009 Indovinate, mi ci è voluto un po 'per riferire. Sì, funziona con suphp. Tuttavia, non sono in grado di mostrarlo dal vivo, poiché l'unico server su cui ho eseguito un'applicazione web relativamente critica che non ha un controllo di sicurezza professionale. Ciò significa che una delle cose da cui dipendiamo per proteggere il back-end è che l'utente con cui viene eseguito frontend è un utente molto svantaggiato (come www-data). Non chiedere :-)

Spero che questo aiuti qualcuno: sì, la conversione in PDF con OO.o è abbastanza realistica. C'è anche qualche supporto per le chiamate remote in OO.o ma non l'ho studiato allo scopo di scrivere questo.

+2

Questo deve essere automatizzato su un server gui-less. Questa non è davvero una soluzione appropriata. – Mez

+0

SBAGLIATO! Funziona su un server senza testa. Ho aggiunto il comando esatto al mio commento. –

-1

Dai un'occhiata a siwapp.org, è un'applicazione di fatturazione opensource basata su Symphony Framework, è in fase beta precoce ma molto promettente.

6

Ho usato l'eclpse in PHP: "Progetto BIRT"

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

È progettare il vostro rapporto in Eclipse. Quindi caricarlo sul tuo server (deve essere in esecuzione tomcat) Lo so. Poi si può chiamare tale relazione dall'applicazione PHP è possibile inviare i parametri al report tramite la query string:

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

Abbiamo un 4 anni applicazione funziona così fino ad ora. Circa 100 rapporti e funziona davvero bene.

Ovviamente è open source.

Buona fortuna

+0

Sono d'accordo che BIRT è la strada da percorrere. Vedi questo articolo di DeveloperWorks che mostra come integrare BIRT con PHP usando WebSphere sMash: http://www.ibm.com/developerworks/websphere/techjournal/0903_phillips – rewbs

+0

BIRT fino in fondo! – FastTrack

0

Prova Tufat

Ho appena capita di vedere che ..may sia esso vi aiuterà. Tuttavia c'è una versione gratuita disponibile per il test.

Ti piacerà .. Per favore condividi la tua copia.

0

ho usato phpreports, e devo ammettere che non è male per il reporting basato sul web dal momento che ha il supporto per intestazioni, piè di pagina, i gruppi, i totali parziali, ecc

1

Lo strumento giusto per questo bisogno è XSL-FO , poiché è perfetto per i media stampabili. XSL-FO è anche una raccomandazione W3C, con XSLT. Ho creato uno strumento php che usa XSL-FO come linguaggio intermedio per il reporting, questo XLS-FO è il risultato dell'unione (elaborazione) del modello XSLT del report con i dati XML.

Si crea il modello automaticamente utilizzando MS Word ed esportando come mostrato nel manuale dell'utente. Quindi si alimenta il motore di report con il modello e in fase di esecuzione con l'XML dei dati.

anche in fase di esecuzione, il rapporto XSL-FO risultante è resa a:

a) lo stesso XSL-FO (se si desidera eseguire il debug o semplicemente si vuole un XSL-FO)

b) A PDF perfetto, (ApacheFOP rende XSL-FO)

c) HTML con una trasformazione XSLFO2HTML.

Qui si ha il progetto, è un symfony 1.4 plugin: https://github.com/juanmf/sfPlugins/tree/master/reportPlugin

ho intenzione di disaccoppiare da sf. Non esitate a chiedere nulla. Ecco l'HowTo: https://github.com/juanmf/sfPlugins/blob/master/reportPlugin/doc/HowToReport.pdf?raw=true

Questo post potrebbe anche dare qualche aiuto: https://stackoverflow.com/questions/5519024/report-engine-solution-for-lamp-application/13042656

saluti!

4

Reportico

a mio parere è uno dei migliori, dettagliato e ricco di funzionalità di PHP Report Designer.

Problemi correlati