tutorials.de Buch-Aktion 05/2012
Seite 1 von 7 1234 ... LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
92
ZUGRIFFE
34023
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    uepselon uepselon ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    12
    Hallo,

    hat von euch jemand Erfahrung mit JasperReports?

    Ich hab ein "kleines" Problem finde aber irgendwie keine Lösung. Also für den Fall das sich jemand auskennt: (Verwnede zum designen iReport)

    Ich hab auf meinem Detail Band ein Textfeld mit fester Länge. Der Inhalt kann jedoch auch länger sein als die fixe Länge. Nun wird der Text abgeschnitten wenn er zu lang ist.

    Mach ich das Textfeld in der Höhe auf ca. 2 Zeilen, wird der zu lange Text in der 2 ten Zeile dargestellt. Soweit ist das auch gut. Nur wird bei kurzen Texten die 2te Zeile auch gedruckt (Leerzeile) was sehr unschön aussieht und ne Menge Platz kostet.

    Wie kann ich also, bei Bedarf das Textfeld 2 Zeilig machen und wenn kein Bedarf ist alles einzeilig lassen?

    Hoffe Ihr könnt damit was anfangen.

    Gruß,
    ueps
     

  2. #2
    maria-rita maria-rita ist offline Mitglied
    Registriert seit
    Aug 2004
    Ort
    Garmisch-Partenkirchen
    Beiträge
    21
    Erfahrung mit JasperReports

    Hallo ueps,

    >hat von euch jemand Erfahrung mit JasperReports?

    Ja,

    >Ich hab ein "kleines" Problem finde aber irgendwie keine Lösung. Also für den Fall das >sich jemand auskennt: (Verwnede zum designen iReport)

    Dieses Programm verwenden wir auch in der Arbeit.

    >Ich hab auf meinem Detail Band ein Textfeld mit fester Länge. Der Inhalt kann jedoch >auch länger sein als die fixe Länge. Nun wird der Text abgeschnitten wenn er zu lang ist.

    >Mach ich das Textfeld in der Höhe auf ca. 2 Zeilen, wird der zu lange Text in der 2 ten >Zeile dargestellt. Soweit ist das auch gut. Nur wird bei kurzen Texten die 2te Zeile auch >gedruckt (Leerzeile) was sehr unschön aussieht und ne Menge Platz kostet.

    >Wie kann ich also, bei Bedarf das Textfeld 2 Zeilig machen und wenn kein Bedarf ist >alles einzeilig lassen?

    Du musst bei den einzelnen Felder wo dies auftritt markieren und da wo die Karteireiter sind nach dem Begriff Strech with Overflow suchen. Davor ist ein Kästchen und da muss ein Häckchen rein. Dann wird der Text automatisch umgebrochen, wenn das Feld zu kurz ist.

    Ich hoffe das hilft Dir bei Deinem Problem weiter.

    Viele Grüße

    Marita Betz
     

  3. #3
    c_krono c_krono ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    22
    Moin zusammen.

    Bin ja mal froh noch ein paar Leute zu treffen die Jaspperreports mit iReport erstellen (müssen)

    Also ich hab das Problem, dass ich eine Parameterübergabe für z.B. einen Zeitraum von bis einstellen muss. Allgemeine einzelne Parameter (z.B. Lieferscheinnr, Kunde, etc) kann ich innerhalb unserer Java-Anwendung so übergeben, weil das nur ein Datensatz ist. Allerdings müsste ich für die Datenabfrage zum Beispiel eine Parameter-Eingabeaufforderung haben, weil diese Daten nicht im Dialog zu übergeben sind.

    Ich habe vorher mit Crystal Reports gearbeitet, und da konnte man eine einfache Parameterabfrage einfach so einstellen. Ist das bei Jasper auch möglich, oder muss ich dafür ein eigenes kleines Java-Programm schreiben?

    Wäre nett, wenn ihr euer Wissen diesbezüglich mit mir teilen würdet

    Vielen Dank. Gruß Chris

    PS: Gibt es eigentlich ein deutsches Forum, das sich intensiver mit Jasper beschäftigt? Oder gibt es sonst eine Möglichkeit Fragen beantwortet zu bekommen oder sich immer über den neuesten Stand zu informieren?
     

  4. #4
    maria-rita maria-rita ist offline Mitglied
    Registriert seit
    Aug 2004
    Ort
    Garmisch-Partenkirchen
    Beiträge
    21
    Hallo Chris,


    >Bin ja mal froh noch ein paar Leute zu treffen die Jaspperreports mit iReport >erstellen (müssen)

    Geht mir ebenso.

    Also ich hab das Problem, dass ich eine Parameterübergabe für z.B. einen Zeitraum von bis einstellen muss. Allgemeine einzelne Parameter (z.B. Lieferscheinnr, Kunde, etc) kann ich innerhalb unserer Java-Anwendung so übergeben, weil das nur ein Datensatz ist. Allerdings müsste ich für die Datenabfrage zum Beispiel eine Parameter-Eingabeaufforderung haben, weil diese Daten nicht im Dialog zu übergeben sind.

    Ich weiss jetzt nicht genau, ob ich Dir helfen kann, wills aber mal versuchen.

    Arbeitest Du mit einer Datenbank? Mit SQL?

    Wir ziehen unsere Daten z. B. für Listen aus der Datenbank mittels SQL und wenn wir Parameterwerte haben, also das z.B. unsere Leute dieses von - bis eingeben können sollen, dann wird in der SQL-Query glaub ich mit
    ?<$P{Feldname}> geschrieben. (Wobei ich jetzt gerade nicht sicher weiss, ob die spitzen Klammern wirklich dabei sind oder nicht, da ich gerade nicht in der Arbeit bin, wo ich die Unterlagen habe.)

    Dann erscheint in unserem Programm ein leeres Feld wo man dann den Wert eintragen kann. Im IReport muss natürlich dieser Parameter auch definiert werden unter Parameters. Und ein Feld im Report eingerichtet werden, wo die Eingabe von diesem Feld erscheinen soll z. B. in der Liste.

    Für unsere Serienbriefe haben wir von der Firma wo das Programm gemacht hat Parameter vorgegeben bekommen, z. B. für die Anrede, wenn ich diese dann in mein XML-File in die CDATA-Section mit z. B. $P{Feldname} einsetze kommt automatisch der richtige Wert rein. Aber wie das genau gemacht ist, kann ich Dir leider noch nicht sagen. Wir hoffen auch, das wir das mal gezeigt bekommen, weil uns öfter gerade bei den Serienbriefen noch Parameter fehlen, die wir momentan nicht selbst erzeugen können.

    Ich habe vorher mit Crystal Reports gearbeitet, und da konnte man eine einfache Parameterabfrage einfach so einstellen. Ist das bei Jasper auch möglich, oder muss ich dafür ein eigenes kleines Java-Programm schreiben?

    Siehe oben, wenn Du damit nicht weiterkommst, kann ich Dir momentan auch nicht weiterhelfen. Vielleicht wäre es hilfreich Du würdest mal schreiben ob Du auf eine Datenbank zugreifst oder sonst wie an Deine Daten kommst.


    PS: Gibt es eigentlich ein deutsches Forum, das sich intensiver mit Jasper beschäftigt? Oder gibt es sonst eine Möglichkeit Fragen beantwortet zu bekommen oder sich immer über den neuesten Stand zu informieren?

    Ein deutsches Forum habe ich leider auch noch nicht gefunden. Daran wäre ich auch interessiert.

    Es gibt aber ein englischsprachiges Forums unter

    http://sourceforge.net/forum/?group_id=36382

    Viele Glück.

    Viele Grüße

    Marita Betz
     

  5. #5
    c_krono c_krono ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    22
    Morgen Maria,

    also erstmal schonmal vielen Dank für die vielen Tips
    Ich benutze hier auf der Arbeit auch SQL-Anweisungen, um unsere Daten aus der Datenbank (Informix 7) für die Reports zu beschaffen.

    Wie schon gesagt funktioniert die normale Parameterübergabe ganz einfach indem ich halt im Report ein Parameterfeld definiere und das dann mit $P{Feldname} dann ins SQL-Statement einbaue. Dann kann ch auch aus der Anwendung heraus den Report ausführen, wenn ich im Dialog auch nohmal eine Feldzuweisung mache.

    Wenn ich allerdings im Report anstatt $P{Feldname} ?<$P{Feldname}> oder ?$P{Feldname} eingebe, dann erscheint in der Anwendung beim starten des Reports eine Fehlermeldung, dass der das SQL-Statement nicht ausführen kann. Und da, wo ich die Parameterübergabe im Statement geschrieben habe steht dann je nachdem entweder be_nr=?<?> oder be_nr = . Muss ich da sonst noch was beachten vielleicht?

    Das Forum bei Sourceforge hab ich auch gefunden, nur hab ich meistens keine Lust mich da auf englisch durchzuwurschteln
    Aber ich werd mich melden, wenn ich eins auf deutsch gefunden hab.

    Ich werd mal ein bisschen weiter experimentieren hier. Falls dir noch was einfällt, wäre es nett, wenn du nochmal was dazu sagen köntest.

    Vielen Dank und einen wunderschönen Tag noch.

    Gruß Chris
     

  6. #6
    c_krono c_krono ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    22
    noch ne Frage, die grade aufgekommen ist, wäre, ob man irgendwie noch mehr Schriftarten in den "pdf font name" einfügen kann. Oder gehen im pdf-Format Schriftarten wie z.B. Arial gar nicht?
     

  7. #7
    maria-rita maria-rita ist offline Mitglied
    Registriert seit
    Aug 2004
    Ort
    Garmisch-Partenkirchen
    Beiträge
    21
    Hey Chris,

    ich bin jetzt in der Arbeit und habe mir mal ein SQL-Statement von uns rausgesucht.

    Wir haben dort manchmal z. B. so einen Text drin:

    where sp.partNumber = '$P!{Seminarteil}' das ist die Abfrage wo der Benutzer den Seminarteil eingeben kann in unserer Anwendung. Das was ich gestern geschrieben habe, war anscheinend nicht ganz richtig. Im ireport ist dann noch ein Parameter definiert der Seminarteil heißt.

    Das Forum bei Sourceforge hab ich auch gefunden, nur hab ich meistens keine Lust mich da auf englisch durchzuwurschteln

    Kann ich verstehen Geht mir genauso.

    Aber ich werd mich melden, wenn ich eins auf deutsch gefunden hab.

    Das wäre nett.

    Ich werd mal ein bisschen weiter experimentieren hier. Falls dir noch was einfällt, wäre es nett, wenn du nochmal was dazu sagen köntest.

    Zu Deiner anderen Frage wegen den Fonts für die PDF-Datei. Du kannst doch im Ireport wenn du das Feld doppelt anklickst unter dem Reiter Fonts -> PDF Font Name noch andere als Helvetica auswählen. Allerdings Arial ist nicht dabei, da gebe ich Dir recht, aber Courier usw.

    Vielleicht kannst Du mir auch bei einem Problem weiterhelfen.

    Ich will mal versuchen es zu beschreiben.

    Wir haben eine Tabelle Berufschulblock, da sind pro Berufsschule mehrere Klassen drin und innerhalb der Klasse sind unterschiedlich viele Blockzeiten dort beinhaltet.

    Ich habe den Report unter Ireport jetzt schon soweit, das er als erstes die Berufschul-Nr und die Klasse bringt.
    Darunter die Blockzeiten hintereinander, aber wenn ich z. B. 6 Colums gemacht habe und bei der Klasse sind z. B. nur 4 Blockzeiten drin, so werden die übrigen Spalten einfach mit Blockzeiten der nächsten Klasse aufgefüllt, was ich ja nicht haben möchte.

    Ich möchte bei jeder Klasse die Blockzeiten hintereinander haben und wenn eine neue Klasse kommt, dann soll er mir die Berufsschul-Nr und die Klasse oberhalb der Blockzeiten wieder angeben und die dazugehörenden Blockzeiten darunter.

    Ich habe schon rumprobiert und habe zwei Gruppen mit BerufschulId und Klasse angelegt und dort auch schon verschiedene Einstellungen durchprobiert, aber ich bekomme es einfach nicht hin.

    Hattest Du auch schon mal so ein Problem? Wie kann man das lösen?

    Viele Grüße

    Marita Betz
     

  8. #8
    c_krono c_krono ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    22
    Ja, also so ein Problem hatte ich noch nicht...
    Warum hast du denn 6 Columns eingebaut? Eigentlich müsste es doch reichen, die zwei Gruppen (Berufsschule, Klasse) zu definieren, und dann in die Details das Feld mit den Zeiten einzufügen...
    Dann dürften nur die Blockzeiten zu einer Klasse rauskommen. Ich weiß nicht genau ob das verständlich genug geschrieben war von mir
    Verstehst du denn was ich meine?
     

  9. #9
    maria-rita maria-rita ist offline Mitglied
    Registriert seit
    Aug 2004
    Ort
    Garmisch-Partenkirchen
    Beiträge
    21
    Hey,

    >Ja, also so ein Problem hatte ich noch nicht...
    >Warum hast du denn 6 Columns eingebaut? Eigentlich müsste es doch reichen, >die zwei Gruppen (Berufsschule, Klasse) zu definieren, und dann in die >Details das Feld mit den Zeiten einzufügen...
    >Dann dürften nur die Blockzeiten zu einer Klasse rauskommen. Ich weiß nicht >genau ob das verständlich genug geschrieben war von mir
    >Verstehst du denn was ich meine?

    Ich habe es jetzt mal versucht, wie Du das geschrieben hast, aber dann kommen die Blockzeiten (je nach Klasse können das bis zu 10 sein) untereinander und nicht nebeneinander. Inzwischen kommen aber die Blockzeiten durch das Einfügen der coloums in den Report-Properties nebeneinander und das obwohl ich nur eimal in der ersten coloum das Feld Blockzeit stehen habe. Auf jeder Seite wird mir darüber zusätzlich noch die Berufsschule und die Klasse angezeigt.

    Hast Du schon mal was mit subreports zu tun? Da bin ich jetzt gerade dran.

    Ich habe jetzt mal in einen Hauptreport einen subreport eingefügt, aber wenn ich dann den Hauptreport aufrufe (mit dem eigefügten subreport), dann kommen keine Daten raus, beim subreport. Es erscheint zwar der Platz wo die Daten stehen sollten, aber sonst nichts. Irgendwie hängt das noch mit der Parameterübergabe zwischen Hauptreport und subreport zusammen, aber das habe ich noch nicht rausbekommen.

    Wie sind Deine Erfahrungen damit. Es ist schade, dass nicht noch mehr mitdiskutieren.

    Viele Grüße

    Marita
     

  10. #10
    c_krono c_krono ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    22
    Hey,
    freut mich das du das mit den Blckzeiten hinbekommen hast. Ich schreibe normalerweise immer alle Details untereinander, deshalb wusste ich dass nicht genau zu beantworten

    Also die Subreports sind schon ein harter Brocken. Aber ich habe schon ein paar in Benutzung. Also um die Unterberichte aus ireports aus zu starten, musst du folgendes beachten:

    1. steht in der Subreport Expression in den Properies im eingebundenen Subreport der Name des Subreports in "". Also z.B. "leergut_subartikel_s.jasper"

    2. musst du die Datei startup.bat, die du immer öffnest (liegt bei mir unter D:\Programme\iReports\noAnt\startup.bat), mit nem Editor öffnen. Also z.B. rechte Taste da drauf, und dann auf "Bearbeiten" klicken. Da steht dann irgendwie sowas drinne:

    @echo off
    cd ..

    set CLASSPATH=%CLASSPATH%;.\classes\
    rem Add all jars....
    for %%i in (".\lib\*.jar") do call ".\noAnt\cpappend.bat" %%i
    for %%i in (".\lib\*.zip") do call ".\noAnt\cpappend.bat" %%i
    for %%i in (".\db_drivers\*.jar") do call ".\noAnt\cpappend.bat" %%i
    for %%i in (".\db_drivers\*.zip") do call ".\noAnt\cpappend.bat" %%i

    java it.businesslogic.ireport.gui.MainFrame

    Danach musst du dazwischen den Classpath setzen, also einen Pfad angeben, indem dein Subreport dann liegen muss. Ich habe bei mir zwei verschiedene angegeben, weil ich mehrere Subreports in mehreren Ordnern liegen habe. Also sieht das bei mir dann so aus:

    @echo off
    cd ..

    set CLASSPATH=%CLASSPATH%;.\classes\
    rem Add all jars....
    for %%i in (".\lib\*.jar") do call ".\noAnt\cpappend.bat" %%i
    for %%i in (".\lib\*.zip") do call ".\noAnt\cpappend.bat" %%i
    for %%i in (".\db_drivers\*.jar") do call ".\noAnt\cpappend.bat" %%i
    for %%i in (".\db_drivers\*.zip") do call ".\noAnt\cpappend.bat" %%i
    set CLASSPATH=%CLASSPATH%;E:\datacon-13000\projekte\dtc-reports-jasper\entwicklung\Datacon
    set CLASSPATH=%CLASSPATH%;E:\datacon-13000\projekte\dtc-reports-jasper\entwicklung\Martens\Bestellung


    java it.businesslogic.ireport.gui.MainFrame

    versuch das dann mal zu starten. Vielleicht klappt das dann direkt schon.

    Um das dann in der Anwendung starten zu können, musst du mit eurem Programmierer reden, dass der auch in die Anwendung so einen Classpath reinbaut, zu einem Ordner auf dem Server z.B., in den ihr dann immer die Subreports alle reinlegt. Ich hoffe ich konnte di ein wenig helfen
     

  11. #11
    maria-rita maria-rita ist offline Mitglied
    Registriert seit
    Aug 2004
    Ort
    Garmisch-Partenkirchen
    Beiträge
    21
    Hallo,

    vielen Dank für Deine Antwort.

    Ich weiss noch nicht, ob mir das was Du geschrieben hast weiterhilft, weil ich ja den Subreport schon in den Hauptreport eingefügen kann und Ihn auch dort sehe und bearbeiten kann.

    Das geht schon, nur bei der Erzeugung vom PDF-File kommen keine Daten raus, welche wenn ich den Subreport allein aufrufe erscheinen.

    Viele Grüße

    Marita Betz
     

  12. #12
    c_krono c_krono ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    22
    Also bei mir war in der anwendung mmer das Problem, dass der den Subreport nie gefunden hat...

    Von wo aus führst du denn den huptreport aus? Aus eurer Anwendung, oder aus ireport?
     

  13. #13
    maria-rita maria-rita ist offline Mitglied
    Registriert seit
    Aug 2004
    Ort
    Garmisch-Partenkirchen
    Beiträge
    21
    Hey,

    bist Du aber schnell.

    Ich arbeite hier mit dem ireport 0.2.2

    Ich habe nur eine Ireport.bat gefunden und in der steht bis jetzt nur:

    @echo off

    set JAVA_HOME=C:\j2sdk1.4.2_03
    set ANT_HOME=C:\programme\java\apache-ant-1.6.0
    set IREPORT_HOME=C:\programme\java\iReport-0.2.2

    rem %ANT_HOME%\bin\ant javadocs
    %ANT_HOME%\bin\ant iReport

    Sonst nichts.

    Ich werde jetzt mal das Verzeichnis angeben, wo der Subreport liegt, vielleicht hilft das ja wirklich. Danke für Deine Hilfe.

    Auf einem anderen Rechner habe ich aber eine startup.bat, bin mir aber nicht ganz sicher ob das dann die gleiche Version des Ireports ist.

    Ich teste das mit dem Hauptreport (mit eingefügten Subreport) erst in Ireport selbst, und erst wenn es funktioniert wird der Report in die Anwendung überspielt.

    Viele Grüße

    Marita Betz
     

  14. #14
    c_krono c_krono ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    22
    Ja, ich krieg ja immer ne Email ewnn du hier was reinschreibst

    Also führst du im ireport designer den Report immer als pdf aus? Ich benutze eigentlich immer diesen JRViewer. Ja, is eigentlich egal wie die .bat-Datei heist. Ich meine uf jeden Fall die, die du immer ausführst um ireports zu starten. Da müssten dies Pfade eigentlich eingetragen werden. Ist genau das gleiche, als wenn du ein Bild oder ein Logo oder so einfügen möchtest...
     

  15. #15
    maria-rita maria-rita ist offline Mitglied
    Registriert seit
    Aug 2004
    Ort
    Garmisch-Partenkirchen
    Beiträge
    21
    Hey,

    >Ja, ich krieg ja immer ne Email ewnn du hier was reinschreibst

    ich auch

    Ist nur gut, dass ich von der Arbeit aus auch auf meine private Mail-Datei zugreifen kann, sonst würde ich das immer erst nach der Arbeit erfahren ob jemand geschrieben hat.

    >Also führst du im ireport designer den Report immer als pdf aus?

    Ja, bei mir wird dann immer eine PDF-Datei erstellt, wenn ich im Ireport die xml-Datei ausführe.

    Ich benutze eigentlich immer diesen JRViewer.

    Wie bindest Du diesen ein?

    Ja, is eigentlich egal wie die .bat-Datei heist. Ich meine uf jeden Fall die, die du immer ausführst um ireports zu starten. Da müssten dies Pfade eigentlich eingetragen werden. Ist genau das gleiche, als wenn du ein Bild oder ein Logo oder so einfügen möchtest...

    Wenn ich Bilder einfügen will, dann gebe ich den Pfad direkt in der xml-Datei mit an. Und dann kommt das Bild auch. Das ist schon so eingestellt.

    Ich habe jetzt mal das mit dem SET Classpath gemacht und dort mein Verzeichnis angeben, wo der Subreport und auch der Hauptreport liegt, aber die Daten kommen trotzdem nicht.

    Ich bastle da am Donnerstag weiter.

    Viele Grüße

    Marita Betz
     

Ähnliche Themen

  1. JFreeChart in JasperReports
    Von 1Frage im Forum Java
    Antworten: 0
    Letzter Beitrag: 07.06.10, 15:27
  2. Blocksatz mit Jasperreports
    Von OVMueller im Forum Java
    Antworten: 1
    Letzter Beitrag: 31.07.08, 14:19
  3. MS Access to Jasperreports
    Von kleene0105 im Forum Java
    Antworten: 0
    Letzter Beitrag: 09.06.08, 09:30
  4. JasperReports => PDF
    Von keeel im Forum Java
    Antworten: 0
    Letzter Beitrag: 27.03.08, 13:04
  5. JasperReports
    Von Gandalf12 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 27.11.07, 12:37