Projekat

Općenito

Profil

Akcije

Podrška #18540

Zatvoren

ooeclipse, jodreports - java openoffice reports

Dodano od Ernad Husremović prije oko 15 godina. Izmjenjeno prije oko 15 godina.

Status:
Zatvoreno
Prioritet:
Normalan
Odgovorna osoba:
Saša Vranić
Kategorija:
-
Početak:
11.10.2009
Završetak:
% završeno:

100%

Procjena vremena:


Fajlovi

jodreports-2.1rc.tar.gz (1,61 MB) jodreports-2.1rc.tar.gz Ernad Husremović, 11.10.2009 13:35
ooeclipse_git.tar.gz (3,69 MB) ooeclipse_git.tar.gz Ernad Husremović, 11.10.2009 13:46
glass.xml (291 Bajta) glass.xml podaci u xml fajlu Saša Vranić, 20.10.2009 11:00
naljepnica_template.odt (29,4 KB) naljepnica_template.odt template odt naljepnice Saša Vranić, 20.10.2009 11:00
naljepnica_generated.odt (27,5 KB) naljepnica_generated.odt generisana naljepnica na osnovu template-a Saša Vranić, 20.10.2009 11:00
table_data.xml (1,12 KB) table_data.xml xml sa podacima Saša Vranić, 20.10.2009 11:20
table_template.odt (8,05 KB) table_template.odt template odt za tabelu Saša Vranić, 20.10.2009 11:20
table_generated.odt (7,47 KB) table_generated.odt generisani odt tabele Saša Vranić, 20.10.2009 11:20
table_data_2.xml (57,3 KB) table_data_2.xml Saša Vranić, 20.10.2009 11:54
table_2_generated.odt (8,1 KB) table_2_generated.odt Saša Vranić, 20.10.2009 11:54
invoice_data.xml (629 Bajta) invoice_data.xml podaci računa u xml fajlu Saša Vranić, 20.10.2009 12:33
invoice_template.odt (22,2 KB) invoice_template.odt faktura template odt Saša Vranić, 20.10.2009 12:33
invoice_generated.odt (21,6 KB) invoice_generated.odt generisana faktura odt Saša Vranić, 20.10.2009 12:33
label-generated.odt (8,29 KB) label-generated.odt labela generisana Saša Vranić, 20.10.2009 14:39
jodconverter-2.2.2.zip (2,03 MB) jodconverter-2.2.2.zip jodconverter Saša Vranić, 20.10.2009 19:31
jodreports-2.1rc.zip (1,87 MB) jodreports-2.1rc.zip jodreports Saša Vranić, 20.10.2009 19:32
inovice_generated.pdf (70,5 KB) inovice_generated.pdf pdf generisan putem jodconverter-a Saša Vranić, 21.10.2009 10:40

Povezani tiketi 4 (0 otvoreno4 zatvorenih)

korelira sa developer toolbox - Prijedlozi #17653: reporting tool 5: openoffice kao reporting platformaOdbačenoErnad Husremović17.06.2009

Akcije
korelira sa developer toolbox - Nove funkcije #18631: JODReports, kreiranje specifičnih template-a, labeleZatvorenoSaša Vranić21.10.2009

Akcije
korelira sa developer toolbox - Nove funkcije #18634: JODReports & JavaCSV libraryZatvorenoSaša Vranić21.10.2009

Akcije
korelira sa developer toolbox - Reference #20110: openoffice reports - serenity ruby odtZatvoreno13.04.2010

Akcije
Akcije #1

Izmjenjeno od Ernad Husremović prije oko 15 godina

  • Naslov promijenjeno iz oooeclipse u ooeclipse
Akcije #2

Izmjenjeno od Ernad Husremović prije oko 15 godina

We created and maintain the following open source projects:
  • JODConverter, Java OpenDocument Converter, is a Java library to convert documents between different office formats using OpenOffice.org
  • JODReports, Java OpenDocument Reports, is a Java library to generate dynamic documents by merging templates with data
  • PyODConverter, Python OpenDocument Converter, is a simple Python script to convert documents between different office formats using OpenOffice.org
Akcije #3

Izmjenjeno od Ernad Husremović prije oko 15 godina

  • Naslov promijenjeno iz ooeclipse u ooeclipse, jodreports - java openoffice reports

JODReports

JODReports, Java OpenDocument Reports, is a solution for creating office documents and reports in OpenDocument Text format from templates that can be visually composed using the OpenOffice.org Writer word processor. These documents can then optionally be converted to other formats such as PDF, Word and RTF with JODConverter.

Main Features

  • Templates are OpenDocument Text (ODT) files
    • They can be created using the OpenOffice.org Writer word processor, which is open source and can be downloaded for free from OpenOffice.org
    • The OpenDocument format is now an OASIS standard and is quickly becoming increasingly popular
    • OpenOffice.org Writer can import documents from most other office suites, so it is possible e.g. to import a Microsoft Word document as a starting point for a template
  • Powerful templating instructions, including
    • Dynamic field replacement
    • Conditionally displaying a document portion based on a test expression
    • Repeating a document portion (e.g. a table row) for each item in a collection
    • Replacing an embedded image
    • And more... JOOReports is based on the popular FreeMarker templating language
  • Data to be merged into the template can be supplied as
    • A simple Map of variables
    • A Java object model
    • XML
  • Document are produced in ODT format, and can then be converted to PDF, Word or RTF with JODConverter
  • Processing instructions can be inserted in a visual, non-obstrusive way without cluttering the template layout
    • Fields can be specified using Writer input fields
    • More complex instructions can be inserted as scripts hidden into the document
  • Special support is provided for web applications, including integration with the Spring MVC framework
  • Licensed under the terms of the LGPL, which basically means it is free to use in both open source and commercial projects

The Concept

So what makes JODReports different from other projects addressing the same category of problems?

The idea behind this project came to me in 2003 after I worked on a couple of invoicing/reporting projects. I was surprised by how much time I had to spend composing and adjusting the layout of templates, rather than writing Java code or doing business analysys.

Why can't templates be regular word processor documents? I thought. That way, I could ask my clients (internal or external) to create a sample document exactly how they want it, send it to me and all I would have to is to add a few processing instructions.

So the goals for this project were:
  • Template layout can be composed by non-programmers using a word processor
  • Simple templates can be composed and modified entirely by non-programmers
  • More complex templates need the programmer just to insert processing instructions into the supplied template layout

OpenOffice.org documents immediately seemed the obvious choice since they are an open XML format.

Akcije #6

Izmjenjeno od Ernad Husremović prije oko 15 godina

jodreports ulazni podaci

vsasa kaže da jodreports može pristupati običnim java varijabla, xml fajlu onda, ako u clipperu generišemo cvs fajl, trebamo neku java library da učitamo cvs fajl

Evo jedne LGPL biblioteke:

http://sourceforge.net/projects/javacsv/

Akcije #7

Izmjenjeno od Saša Vranić prije oko 15 godina

postavio jodreports na sesiju da vidim kako to radi uopšte

C:\jodreports-2.1rc\lib>java -jar jodreports-2.1-RC.jar

USAGE: net.sf.jooreports.tools.CreateDocument <template-document> <data-file> <output-document>

a ha... i sada imamo mogućnost da koristimo ovaj cmdline tool ili da integrišemo ovo u naš library u samom kod-u, ali mi ne koristimo javu pa bi trebali onda recimo to nekako preko ruby-ja izvesti itd...

Akcije #8

Izmjenjeno od Saša Vranić prije oko 15 godina

evo nekih testova u test-classes direktoriju

13.09.2009  16:15             7.321 number-template.odt
13.09.2009  16:15             1.149 order-data.xml
13.09.2009  16:15            10.215 order-with-images-resize-template.odt
13.09.2009  16:15            10.065 order-with-images-template-2.odt
13.09.2009  16:15            10.022 order-with-images-template.odt
13.09.2009  16:15               174 red.png
13.09.2009  16:15             8.300 textinput-directive-template.odt
13.09.2009  16:15             8.274 textinput-directives-oneline-template.odt
13.09.2009  16:15             8.914 textinput-directives-special-chars-template.odt
13.09.2009  16:15             8.464 textinput-directives-splitline-template.odt
13.09.2009  16:15             8.932 textinput-directives-switch-template.odt
13.09.2009  16:15             7.791 textinput-variable-template.odt
13.09.2009  16:15             7.458 visual-fields-template.odt
13.09.2009  16:15             8.065 visual-repeat-table-row-template-2.odt
13.09.2009  16:15             8.349 visual-repeat-table-row-template.odt
13.09.2009  16:15             7.442 visual-script-setting-template-2.odt
13.09.2009  16:15             7.740 visual-script-setting-template.odt
13.09.2009  16:15             8.393 visual-script-special-chars-template.odt

da vidim hoće li ovo uopšte raditi

Akcije #9

Izmjenjeno od Saša Vranić prije oko 15 godina

testirao

C:\jodreports-2.1rc\test-classes>java -jar ..\lib\jodreports-2.1-RC.jar order-with-images-resize-template.odt order-data.xml test.odt

dobio test.odt ali u njemu ništa !!!

Nešto sam propustio ?

Akcije #10

Izmjenjeno od Ernad Husremović prije oko 15 godina

Saša Vranić je napisao/la:

testirao

C:jodreports-2.1rc est-classes>java -jar ..libjodreports-2.1-RC.jar order-with-images-resize-template.odt order-data.xml test.odt

dobio test.odt ali u njemu ništa !!!

Nešto sam propustio ?

prema sintaksi koju si gore naveo treba ovako:

java -jar ../libjodreports-2.1-RC.jar net.sf.jooreports.tools.CreateDocument order-with-images-resize-template.odt order-data.xml test.odt

Akcije #11

Izmjenjeno od Saša Vranić prije oko 15 godina

ovaj je proradio

C:\jodreports-2.1rc\test-classes>java -jar ..\lib\jodreports-2.1-RC.jar visual-repeat-row-template.odt order-data.xml test.odt

dobio sam unutar odt-a

Item: Ubuntu 6.06
Item: MySQL 5.0
Item: OpenOffice.org 2.0
Item: The GIMP 2.2

a ovo je template

Item: ${line.item.description}
Akcije #12

Izmjenjeno od Saša Vranić prije oko 15 godina

order-data.xml:

<order id="872">
−
<line>
−
<item>
<description>Ubuntu 6.06</description>
−
<!--
 compared to Microsoft Windows XP Professional SP2 
-->
<unitSavings>279.99</unitSavings>
</item>
<quantity>5</quantity>
<lineSavings>1,399.95</lineSavings>
</line>
−
<line>
−
<item>
<description>MySQL 5.0</description>
−
<!--
 compared to Microsoft SQL Server Standard Edition 2005 (1 CPU) 
-->
<unitSavings>5,399.11</unitSavings>
</item>
<quantity>1</quantity>
<lineSavings>5,399.11</lineSavings>
</line>
−
<line>
−
<item>
<description>OpenOffice.org 2.0</description>
−
<!--
 compared to Microsoft Office Professional Edition 2003 
-->
<unitSavings>379.99</unitSavings>
</item>
<quantity>4</quantity>
<lineSavings>1,519.96</lineSavings>
</line>
−
<line>
−
<item>
<description>The GIMP 2.2</description>
<!-- compared to Adobe Photoshop CS2 -->
<unitSavings>589.99</unitSavings>
</item>
<quantity>2</quantity>
<lineSavings>1,179.98</lineSavings>
</line>
<totalSavings>9,499.00</totalSavings>
</order>

evo sada sam u template-u stavio ovako:

Item: ${line.item.description} quantity: ${line.quantity}

i u test.odt dobio

Item: Ubuntu 6.06 quantity: 5
Item: MySQL 5.0 quantity: 1
Item: OpenOffice.org 2.0 quantity: 4
Item: The GIMP 2.2 quantity: 2
Akcije #13

Izmjenjeno od Saša Vranić prije oko 15 godina

pokušao sada sljedeće

napravio svoj xml

<order id="1">
−
<line>
−
<customer>
<name>Test customer</name>
<adresa>Test adresa</adresa>
</customer>
−
<article>
TT01TT
<descr>Artikl TT01TT</descr>
<height>1200</height>
<width>520</width>
</article>
</line>
</order>

i napravio svoj template fajl

Kupac: ${line.customer.name}
Adresa: ${line.customer.adresa}

Artikal:
Naziv: ${line.article.descr} - (code) = ${line.article.code}
Dimenzije: ${line.article.width} X ${line.article.height}

i kada pozovem dobijem grešku

2009.10.19 15:44:11 freemarker.log.JDK14LoggerFactory$JDK14Logger error
SEVERE:

Error on line 2, column 17 in content.xml
Expecting a string, date or number here, Expression any is instead a freemarker.
ext.dom.NodeListModel
The problematic instruction:
----------
==> ${line.customer.name} escaped ${line.customer.name?xml?replace(" 
","<text:line-break />")} [on line 4, column 3166 in content.xml]
----------

Java backtrace for programmers:
----------
freemarker.core.NonStringException: Error on line 2, column 17 in content.xml
Expecting a string, date or number here, Expression any is instead a freemarker.
ext.dom.NodeListModel
        at freemarker.core.Expression.getStringValue(Expression.java:126)
        at freemarker.core.Expression.getStringValue(Expression.java:93)
        at freemarker.core.StringBuiltins$StringBuiltIn._getAsTemplateModel(Stri
ngBuiltins.java:71)
        at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
        at freemarker.core.RegexBuiltins$replace_reBI._getAsTemplateModel(RegexB
uiltins.java:145)
        at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
        at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:86)
        at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
        at freemarker.core.Expression.getStringValue(Expression.java:93)
        at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
        at freemarker.core.Environment.visit(Environment.java:209)
        at freemarker.core.MixedContent.accept(MixedContent.java:92)
        at freemarker.core.Environment.visit(Environment.java:209)
        at freemarker.core.EscapeBlock.accept(EscapeBlock.java:84)
        at freemarker.core.Environment.visit(Environment.java:209)
        at freemarker.core.Environment.process(Environment.java:189)
        at net.sf.jooreports.templates.TemplateAndModelMerger.process(TemplateAn
dModelMerger.java:68)
        at net.sf.jooreports.templates.AbstractDocumentTemplate.createDocument(A
bstractDocumentTemplate.java:73)
        at net.sf.jooreports.tools.CreateDocument.main(CreateDocument.java:61)
Exception in thread "main" net.sf.jooreports.templates.DocumentTemplateException
: freemarker.core.NonStringException: Error on line 2, column 17 in content.xml
Expecting a string, date or number here, Expression any is instead a freemarker.
ext.dom.NodeListModel
        at net.sf.jooreports.templates.TemplateAndModelMerger.process(TemplateAn
dModelMerger.java:70)
        at net.sf.jooreports.templates.AbstractDocumentTemplate.createDocument(A
bstractDocumentTemplate.java:73)
        at net.sf.jooreports.tools.CreateDocument.main(CreateDocument.java:61)
Caused by: freemarker.core.NonStringException: Error on line 2, column 17 in con
tent.xml
Expecting a string, date or number here, Expression any is instead a freemarker.
ext.dom.NodeListModel
        at freemarker.core.Expression.getStringValue(Expression.java:126)
        at freemarker.core.Expression.getStringValue(Expression.java:93)
        at freemarker.core.StringBuiltins$StringBuiltIn._getAsTemplateModel(Stri
ngBuiltins.java:71)
        at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
        at freemarker.core.RegexBuiltins$replace_reBI._getAsTemplateModel(RegexB
uiltins.java:145)
        at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
        at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:86)
        at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
        at freemarker.core.Expression.getStringValue(Expression.java:93)
        at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
        at freemarker.core.Environment.visit(Environment.java:209)
        at freemarker.core.MixedContent.accept(MixedContent.java:92)
        at freemarker.core.Environment.visit(Environment.java:209)
        at freemarker.core.EscapeBlock.accept(EscapeBlock.java:84)
        at freemarker.core.Environment.visit(Environment.java:209)
        at freemarker.core.Environment.process(Environment.java:189)
        at net.sf.jooreports.templates.TemplateAndModelMerger.process(TemplateAn
dModelMerger.java:68)
        ... 2 more
Akcije #14

Izmjenjeno od Saša Vranić prije oko 15 godina

hm...

Akcije #15

Izmjenjeno od Saša Vranić prije oko 15 godina

  • % završeno promijenjeno iz 0 u 20
Akcije #16

Izmjenjeno od Saša Vranić prije oko 15 godina

Koliko sam skontao ova cmdline varijanta ima za mogućnost da mu zadam template i XML fajl napunjen podacima i on će napraviti odt dokument.

Samo što nisam ovaj svoj primjer uspio napraviti ?!?? ali hajde, to ću još vidjeti.

Varijanta sa csv readerom je kada sada ovo sve integrišem u neki java programčić, ili ruby skriptu - pretpostavljam

Mada je i gornja varijanta manje više ok.

Akcije #17

Izmjenjeno od Ernad Husremović prije oko 15 godina

koliko je brzo generisanje ? pokušaj test sa većom količinom podataka.

Da li za pokretanje treba openoffice-e ? pretpostavljam da ne.

Akcije #18

Izmjenjeno od Saša Vranić prije oko 15 godina

ono što sam primjetio na originalnom uzorku koji radi je da postoji skripta unutar dokumenta

Script Type: JooScript

@text:p
[#list order.line as line]
@/text:p
[/#list]

Kada raspakujem dokument sa 7zip-om i pogledam u contents.xml vidim ovo:

<text:p text:style-name="Standard">
   <text:script script:language="JooScript">
       @text:p
       [#list order.line as line]
       @/text:p
       [/#list]
   </text:script>
   Item: ${line.item.description} quantity: ${line.quantity}
</text:p>

to je izgleda to što fali

Akcije #19

Izmjenjeno od Saša Vranić prije oko 15 godina

Ernad Husremović je napisao/la:

koliko je brzo generisanje ? pokušaj test sa većom količinom podataka.

Da li za pokretanje treba openoffice-e ? pretpostavljam da ne.

Testirat ću ja sve samo da skontam kako da napravim svoj template

Akcije #20

Izmjenjeno od Saša Vranić prije oko 15 godina

Jao jesam tupson !!!!!! uh......

ispravio sam template ovako:

Kupac: ${order.line.customer.name}
Adresa: ${order.line.customer.adresa}

Artikal:
Naziv: ${order.line.article.descr} - (code) = ${order.line.article.code}
Dimenzije: ${order.line.article.width} X ${order.line.article.height}

znači: order.line.customer.name ... krećem od order

pošto je xml ovakav:

<?xml version="1.0" encoding="UTF-8"?>
<order id="872">
  <line>
    <customer>
      <name>test customer</name>
      <adresa>test adresa</adresa>
    </customer>
    <article>
      22XT22
<descr>test artikal</descr>
<height>1000.00</height>
<width>1200.00</width>
</article>
</line>
</order>

i dobio na output test.odt ovako:

Kupac: test customer
Adresa: test adresa

Artikal:
Naziv: test artikal - (code) = 22XT22
Dimenzije: 1200.00 X 1000.00

ok, to je to

Akcije #21

Izmjenjeno od Saša Vranić prije oko 15 godina

za naljepnicu već imam dovoljno, jer se ona štampa jedna po jedna...

Izmjenjeno od Saša Vranić prije oko 15 godina

Evo napravio sam primjer za naljepnicu i to radi super

Akcije #23

Izmjenjeno od Saša Vranić prije oko 15 godina

što se tiče same konverzije, ovo radi za sekundu - u vmware sesiji...

I mislim da ne treba biti oo instaliran, samo kada hoćeš u neki drugi format onda mora biti...

Izmjenjeno od Saša Vranić prije oko 15 godina

skontao sam i tabelu

evo kačim primjere za tabelu:

Akcije #25

Izmjenjeno od Saša Vranić prije oko 15 godina

  • % završeno promijenjeno iz 20 u 40

Izmjenjeno od Saša Vranić prije oko 15 godina

sada sam uzeo table_template.xml i izduplicirao stavke da ima za jedno 5-6 listova, baš da vidim brzinu

ma radi isto čvoka, nema nikakve razlike u brzini.

Akcije #27

Izmjenjeno od Saša Vranić prije oko 15 godina

Eh, sada znači imamo dvije stavke koje su nam interesantne, a to je prikaz teksta - jedne varijable i prikaz tabele

Što znači xml treba da bude ovakav

<invoice>
  <no>15222</no>
  <date>15.02.2009</date>
  <customer>
    <name>Promente UG Sarajevo</name>
    <addr>Branilaca bb</addr>
    <id>2212312222</id>
  </customer>
  <items>
    <no>1</no>
    <art>FMK-UG-S</art>
    <descr>FMK ugovor srebreni</descr>
    <price>400.00</price>
    <qtty>2.00</qtty>
    <total>800.00</total>
    <tax>26.76</tax>
  </items>
  <items>
    <no>2</no>
    <art>FMK-KALK</art>
    <descr>Modul KALK</descr>
    <price>1010.20</price>
    <qtty>1.00</qtty>
    <total>1010.20</total>
    <tax>72.14</tax>
  </items>
  <total>1562.00</total>
</invoice>

i sada kako ćemo izvlačiti podatke na template-u

što se tiče statičkih varijabli, znači samo se pojave vrlo je jednostavno, na templateu unesemo

Broj fakture: ${invoice.no}

=> Broj fakture: 15222

ili

Partner: ${invoice.customer.name}, ${invoice.customer.addr}

=> Partner: Promente UG Sarajevo, Branilaca bb

Što se tiče vrijednosti koje su dinamičke, dakle stavke tabele to radimo na sljedeći način:

  • pravimo tabelu u template-u
  • pravimo njena polja (redni broj, artikal, naziv artikla, cijena, itd....)
  • u svako od polja postavljamo vrijednosti
--------------------------------------------------------------------------------
R.br        | Artikal naziv   |  cijena        |  kolicina      | itd...
--------------------------------------------------------------------------------
${item.no} | ${item.descr}    |  ${item.price} |  ${item.qtty}  | itd...
--------------------------------------------------------------------------------
                                                        Ukupno: ${invoice.total}
--------------------------------------------------------------------------------

ali na prvom polju (dinamičkom) redni broj pravimo u openoffice, sa menija Insert -> Script

i ubacujemo:

@table:table-row
[#list invoice.items as item]
@/table:table-row
[/#list]

a za script name upisujemo: JOOScript

Izmjenjeno od Saša Vranić prije oko 15 godina

ovo je odlično :)

evo napravio sam sada template računa za 15 minuta, xml sa podacima i generisao račun

Akcije #29

Izmjenjeno od Ernad Husremović prije oko 15 godina

lijepo je pročitati ponovo ushićenje, a ne samo muku i tegobu

Akcije #30

Izmjenjeno od Ernad Husremović prije oko 15 godina

kakva je veza između #18540 i #18556 ? nikakva po tematici, ali feelingu izvršilaca ima velike sličnosti

Akcije #31

Izmjenjeno od Saša Vranić prije oko 15 godina

Jedino pitanje koje mi ostaje je generisanje više listova sa različitim sadržajem, recimo kao labele, naljepnice, pa evo i ove etikete u bulku, recimo da ih ima jedno 15 komada

To nisam skontao ! A bilo bi jako od koristi

Akcije #32

Izmjenjeno od Saša Vranić prije oko 15 godina

  • % završeno promijenjeno iz 40 u 50
Akcije #33

Izmjenjeno od Saša Vranić prije oko 15 godina

kako štampati automatski ovakav dokument bez povlačenja grafičkog prikaza openoffice-a

cmd: <path_to_swriter>\swriter -p <fajl_odt>

ovo će baciti automatski na štampač

Akcije #34

Izmjenjeno od Saša Vranić prije oko 15 godina

Ako želimo pri tome izbor štampača umjesto print na defaultni

onda se koristi switch -pt

Akcije #35

Izmjenjeno od Ernad Husremović prije oko 15 godina

Saša Vranić je napisao/la:

Ako želimo pri tome izbor štampača umjesto print na defaultni

onda se koristi switch -pt

cool

Akcije #36

Izmjenjeno od Ernad Husremović prije oko 15 godina

koliko mogu upratiti ovo bi moglo biti generalno idealno mnoge naše obrazac-bazirane izvještaje

Može se precizno pozicionirati.

Hej sljedeći zadatak je pripremi nam štampu virmana sa ovom app hehe :)

Akcije #37

Izmjenjeno od Ernad Husremović prije oko 15 godina

Visi mi u glavi ona ponuda baza radnika građevinci fuelboss njemačka ... i za njih bi ovo bilo dobro zar ne ?

Akcije #38

Izmjenjeno od Saša Vranić prije oko 15 godina

Ernad Husremović je napisao/la:

koliko mogu upratiti ovo bi moglo biti generalno idealno mnoge naše obrazac-bazirane izvještaje

Može se precizno pozicionirati.

Hej sljedeći zadatak je pripremi nam štampu virmana sa ovom app hehe :)

Upravo tako!

Virmani, kao i labele i ostalo rade po istom principu koji još nisam skontao... još radim na tome

Akcije #39

Izmjenjeno od Saša Vranić prije oko 15 godina

hm... izgleda sa ove tačke gledišta da je to nemoguće ?!???

idem se obratiti na forumu

Akcije #40

Izmjenjeno od Saša Vranić prije oko 15 godina

Akcije #41

Izmjenjeno od Saša Vranić prije oko 15 godina

napravio sam sada ovo, ali pojma nemam kako :)

Akcije #42

Izmjenjeno od Saša Vranić prije oko 15 godina

Procedura ide otprilike ovako:

  • formatira se stranica - format->page na veličinu
  • zatim se napravi sekcija > insert>section
  • zatims se na kraj sekcije stavi prelom stranice > insert>manual page break

a u dijelu gdje se ispisuje dinamički tekst stavljamo skriptu:

@text:section
[#list invoice.items as item]
@/text:section
[/#list]

te onda u template-u ispisujemo:

artikal: ${item.art}, ${item.descr}, itd...
Akcije #43

Izmjenjeno od Saša Vranić prije oko 15 godina

znači TO MOŽE, i sada je samo stvar ovladati tehnikom kreiranja ovakvog template-a

Akcije #44

Izmjenjeno od Saša Vranić prije oko 15 godina

i to znači da su sve rupe praktično zakrpljene, ovo je iskoristivo 100%

Akcije #45

Izmjenjeno od Saša Vranić prije oko 15 godina

  • % završeno promijenjeno iz 50 u 70
Akcije #46

Izmjenjeno od Saša Vranić prije oko 15 godina

sjetih se sada onih poreskih kartica gdje imamo za svakog radnika po jedan list a na listu po 12 i više obračuna

uh... odmah sam pomislio ovo neće moći !

Ali onda mi sinu ideja - koja će sigurno upaliti

stvar je u xml-u koji treba biti ovakav

<kartica>
  <radnik>
     <ime>radnik 1</ime>
     <obracun>
        <mjesec>1</mjesec>
        <neto>150.00</neto>
        itd...
     <obracun>
     <obracun>
        <mjesec>2</mjesec>
        <neto>200.00</neto>
        itd...
     <obracun>
  </radnik>
  <radnik>
     <ime>radnik 2</ime>
     <obracun>
        <mjesec>1</mjesec>
        <neto>450.00</neto>
        itd...
     <obracun>
     <obracun>
        <mjesec>2</mjesec>
        <neto>455.00</neto>
        itd...
     <obracun>
  </radnik>
</kartica>

i onda sve zavisi šta ćemo staviti u LIST komandu i na osnovu nje određivati prelom stranice

Akcije #47

Izmjenjeno od Saša Vranić prije oko 15 godina

također sam ispustio konvertovanje u pdf automatski

vjerovatno nam je tu od pomoći jodconverter

Akcije #48

Izmjenjeno od Saša Vranić prije oko 15 godina

evo i jodreports koji sam koristio, hernad prikačio linux verziju

iako bi trebalo da je isto

Akcije #49

Izmjenjeno od Saša Vranić prije oko 15 godina

što se tiče pdf-a

gledao sam i neka rješenja za konverzovanje on-fly putem cmdline switch-a i korištenjem macro-a, mada mi se to baš i ne sviđa jer ovisimo o makrou

to je varijanta da nemamo openoffice instaliran

Akcije #50

Izmjenjeno od Saša Vranić prije oko 15 godina

testirati još i ovaj konverter i onda preći na drugi stepen a to je integracija ovoga u fmk

pripremiti xml writer u clipper-u

Akcije #51

Izmjenjeno od Saša Vranić prije oko 15 godina

testirao sam jodreports

C:\jodconverter-2.2.2\lib>java -jar jodconverter-cli-2.2.2.jar -fpdf invoice_generated.odt inovice.pdf

ERROR: connection failed. Please make sure OpenOffice.org is running and listening on port 8100.

a ha, znači za konverter moramo openoffice dignuti kao servis... hm... to i nije baš nešto. Treba vidjeti i varijantu sa macro-om.

Akcije #52

Izmjenjeno od Saša Vranić prije oko 15 godina

Treba skontati i kako se oo diže kao servis

Akcije #53

Izmjenjeno od Saša Vranić prije oko 15 godina

Kako se oo pokrene kao servis ?

Pa u principu vrlo jednostavno :)

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

i to je sve...

Pokrenuo ovako, i ništa se nije desilo značajno, nema gui-ja itd...

Pokrenuo sada

C:\jodconverter-2.2.2\lib>java -jar jodconverter-cli-2.2.2.jar invoice_generated.odt inovice.pdf

2009.10.21 10:37:39 com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection connect
INFO: connected
2009.10.21 10:37:39 com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection disposing
INFO: disconnected

i dobio sam pdf fajl

Brzina je odlična ! Sve se desi u sekundi

Akcije #54

Izmjenjeno od Saša Vranić prije oko 15 godina

Da i kada odem u task manager tamo stoji soffice.bin u pokrenutim procesima.

Sada mi pada napamet da ako se starta pri paljenju računara, šta ako proces pukne...

Sada ću pored ovoga probati otvoriti writer i zagasiti ga !

Ne, nemože se sada pokrenuti writer !!! Niti bilo šta drugo od paketa, dok je ovakav proces pokrenut !!!

Sada sam ubio proces soffice.bin i nakon toga mogu normalno pokrenuti office

Akcije #55

Izmjenjeno od Saša Vranić prije oko 15 godina

Ali isto tako iz cmdline mogu pokrenuti ovo:

taskkill /F /IM soffice.exe

tako da se ovaj ovaj proces može i automatizirati...

Eto, toliko i o samom PDF-u.

Mada mislim da i nije potreban jer je svima u interesu da imaju write-abilan report - fakturu itd.. a ako im treba mogu je konvertovati u samom ooffice-u kada se pokrene.

Akcije #56

Izmjenjeno od Saša Vranić prije oko 15 godina

Eh, trebam se baciti na ovu naljepnicu, da vidim tačno kako se kreira template itd... to mi je ostalo misteriozno

  • page break
  • section

itd...

Akcije #57

Izmjenjeno od Saša Vranić prije oko 15 godina

  • Status promijenjeno iz Dodijeljeno u Zatvoreno
  • Odgovorna osoba promijenjeno iz Ernad Husremović u Saša Vranić
  • % završeno promijenjeno iz 70 u 100

sa ovim je praktično gotovo

Akcije

Također dostupno kao Atom PDF