Home Forum Allgemeines Allgemeines zu Nuclos Image in Jasper Formular

Ansicht von 6 Beiträgen - 1 bis 6 (von insgesamt 6)
  • Autor
    Beiträge
  • #7362
    Matthias Dörr
    Teilnehmer

    Hallo,

    Ich möche ein Bild Attribut auf einem Formular ausdrucken (via Jasperreports). Beschreibung an einem sehr einfachen Beispiel:

    (1) Entität Abteilung

    (2) Entität Mitarbeiter:
    – Attribut AbteilungRef (Referenzfeld auf Abteilung)
    – Attribut Foto (Bild)

    beim Drucken der Abteilung (1) sollen alle Mitarbeiter (2) mit Bild ausgegeben werden.

    In der Datenquelle geht „select … objFoto …“. Ich kann dieses Feld aber nur als „Textfeld“ in Jasper einfügen und eben nicht als Bild. Kann ich das irgendwie als Bild darstellen (es geht mir nicht um das Einbinden von Subforms in Jasper, das klappt).

    mfg, Matthias

    #7365
    Markus Glitzner
    Teilnehmer

    [quote=“mdoerr“ post=6387]Ich kann dieses Feld aber nur als „Textfeld“ in Jasper einfügen und eben nicht als Bild.[/quote]
    Im iReport kann jedes Feld mit jedem beliebigen Datentyp eingefügt werden, muss aber natürlich zusammenpassen, damit nicht bei der Ausführung bzw. Speichern des Reports im Nuclos ein Fehler kommt.

    Als Field Class bzw. Expression Class einfach ‚java.io.InputStream‘ auswählen, dann klapts auch mit einem Bild aus einer Tabelle.

    #7366
    Frank Pavlic
    Teilnehmer

    Danke Hugo , du hast mir für heute meinen Schlaf gerettet. Genau das brauche ich ab morgen :woohoo:

    Gruß
    Frank

    #7369
    Matthias Dörr
    Teilnehmer

    Danke erstmal, leider komm ich trotz der Tips nicht weiter. Ich habe nun ein noch einfacherers Beispiel versucht (Ein Datensatz > Anzeige intid + Bild im Title Bereich).

    Entität Item hat Attribut Image >>> PostgreSQL Tabelle t_eo_item / SQL-Feld c_image bytea.

    Mein Query:
    SELECT T1.intid,
    T1.c_image
    FROM t_eo_item T1
    WHERE (T1.“intid“ = $P{intid})

    Die relevanten XML Zeilen in Jasper:

    Ergebnis / Meldung:
    – Fehler bei anzeigen von Report. Details ? siehe Konsole.
    – Die iReport console ist leer

    Habe beim googeln noch den Tip gelesen daß man einen aktuellen jdbc Treiber verwenden soll. Also von postgresql-8.3-603.jdbc3.jar umgestellt auf postgresql-9.3-1100.jdbc3.jar (jedoch gleiches Ergebnis). Ich verwende noch Jasper 5.1.0.

    #7372
    Matthias Dörr
    Teilnehmer

    Heureka !

    Erleichterung… Problem gelöst.

    Mein Setup:
    – Nuclos 3.15.12
    – Java 7 Update 45
    – PostreSQL 9.2
    – iReport 5.5.0

    Lösungsfindung:
    – Bilder im Nuclos werden als bytea in Postgresql gespeichert.
    – In einigen Foren wird beschrieben daß man einen JDBC Treiber 9.0 verwenden soll. Ich habe den 9.2 JDBC3 Treiber ausprobiert (ohne Erfolg).
    – Andere Foren empfehlen Typumwandlungen in Jasper (dafür fehlen mir die Programmierkenntnisse).
    – Weiteres nachlesen brachte mich darauf daß Postgresql für bytea zwei externe Datentypen verwendet (hex und escape, nachzulesen unter http://www.postgresql.org/docs/9.0/static/datatype-binary.html). Default ist HEX !
    – Weiteres Suchen brachte dann die Lösung.

    Lösung:
    In der Datei C:ProgrammePostgreSQL9.2datapostgresql.conf kann man im Abschnitt „CLIENT CONNECTION DEFAULTS“ festlegen:
    bytea_output = ‚escape‘

    Dann klappt auch bei mir die von Hugo oben beschriebene Lösung im Jasper.

    Ich werde das nun alles noch in Zusammenhang mit Nuclos testen aber ich bin optimistisch daß das Thema damit erledigt ist !

    Gruß, Matthias

    #7373
    Markus Glitzner
    Teilnehmer

    unter mssql hatte ich das Problem noch nie.

    Ich muss lediglich den Datentyp im iReport manuell ändern, da beim automatischen auslesen varbinary(max) als Java.lang.Obejct interpretiert wird.

Ansicht von 6 Beiträgen - 1 bis 6 (von insgesamt 6)