tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
1043
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    maggo maggo ist offline Rookie
    Registriert seit
    Apr 2010
    Beiträge
    6
    Hallo zusammen,

    da ich keine hilfe im Jasper Forum bekommen habe wende ich mich an euch und hoffe es kann mir jemand helfen.

    ich habe einen main Report und zwei subreports. In diesen Subreports möchte ich nun den Wert eines Summenfeldes an den main Report übergeben.
    Wie mache ich das?

    Viele Beiträge erzählen was von Shared Variable oder von Prametern oder return values aber nirgendwo finde ich etwas das an einem Bespiel zeigt was genau zu tun ist.
    Ein step by step guide wäre da wahnsinn.

    Danke euch

    da maggo
     

  2. #2
    maggo maggo ist offline Rookie
    Registriert seit
    Apr 2010
    Beiträge
    6
    Hi,

    ich hier nochmal, ich hab mir nun das Buch gekauft iReport 3.7.
    Wenn ich nun wie im Buch angegeben einen Subreport erstelle und dort eine Variable anlege sollte ich diese über die Subreport Properties, return value übergeben können allerdings kann ich wenn ich auf ADD klicke diese Variable nicht auswählen.

    Hat hier jemand eine Ahnung woran das liegen kann?


    Gruß maggo
     

  3. #3
    gorefest gorefest ist offline Mitglied Brokat
    Registriert seit
    Apr 2009
    Beiträge
    256
    Zitat Zitat von maggo Beitrag anzeigen
    Hi,

    ich hier nochmal, ich hab mir nun das Buch gekauft iReport 3.7.
    Wenn ich nun wie im Buch angegeben einen Subreport erstelle und dort eine Variable anlege sollte ich diese über die Subreport Properties, return value übergeben können allerdings kann ich wenn ich auf ADD klicke diese Variable nicht auswählen.

    Hat hier jemand eine Ahnung woran das liegen kann?


    Gruß maggo
    Hi, ohne Dein Problem genauer zu beleuchte, rate ich Dir, mal zu überprüfen, ob Deine Variable im richtigen Scope liegt.
     

  4. #4
    maggo maggo ist offline Rookie
    Registriert seit
    Apr 2010
    Beiträge
    6
    Hi gorefest,

    was verstehst du als scope? Ich bin leider ein frischling auf diesem Gebiet und auch nicht sehr bewandert was XML Code angeht.
    Ich habe nun eine verfügbare Variable PAGE_COUNT ausgewählt und dann im XML Code diese Variable auf mein erstellte abgeändert aber leider funktioniert das nicht

    Der XML Code sieht nun wie folgt aus

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    
    <?xml version="1.0" encoding="UTF-8"?>
    <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report2" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
        <queryString>
            <![CDATA[SELECT
         project_task_work."hours" AS project_task_work_hours
    FROM
         "public"."project_task_work" project_task_work]]>
        </queryString>
        <field name="project_task_work_hours" class="java.lang.Double">
            <fieldDescription><![CDATA[]]></fieldDescription>
        </field>
        <variable name="variable1" class="java.lang.String"/>
        <variable name="project_task_work_hours_1" class="java.lang.Double" calculation="Sum">
            <variableExpression><![CDATA[$F{project_task_work_hours}]]></variableExpression>
        </variable>
        <background>
            <band splitType="Stretch"/>
        </background>
        <title>
            <band height="79" splitType="Stretch"/>
        </title>
        <pageHeader>
            <band height="35" splitType="Stretch"/>
        </pageHeader>
        <columnHeader>
            <band height="61" splitType="Stretch"/>
        </columnHeader>
        <columnFooter>
            <band height="45" splitType="Stretch"/>
        </columnFooter>
        <pageFooter>
            <band splitType="Stretch"/>
        </pageFooter>
        <summary>
            <band height="130" splitType="Stretch">
                <subreport>
                    <reportElement x="84" y="0" width="200" height="100"/>
                    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                    <returnValue subreportVariable="variable1" toVariable="variable1"/>
                    <subreportExpression class="java.lang.String"><![CDATA["/root/report2_subreport1.jasper"]]></subreportExpression>
                </subreport>
                <textField>
                    <reportElement x="334" y="88" width="170" height="20"/>
                    <textElement/>
                    <textFieldExpression class="java.lang.Double"><![CDATA[$V{project_task_work_hours_1}]]></textFieldExpression>
                </textField>
            </band>
        </summary>
    </jasperReport>

    Wenn ich dann aber die preview öffne bekomme ich folgende Fehlermeldung

    Code :
    1
    2
    3
    
    Errorfillingprint...Variablevariable1isnotassignablefromsubreportvariablevariable1 
    net.sf.jasperreports.engine.JRException:Variablevariable1isnotassignablefromsubreportvariablevariable1 atnet.sf.jasperreports.engine.fill.JRFillSubreport.checkReturnValues(JRFillSubreport.java:1001) atnet.sf.jasperreports.engine.fill.JRFillSubreport.validateReport(JRFillSubreport.java:914) atnet.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:367) atnet.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:266) atnet.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:256) atnet.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:482) atnet.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummaryNoLastFooterSamePage(JRVerticalFiller.java:1060) atnet.sf.jasperreports.engine.fill.JRVerticalFiller.fillSummary(JRVerticalFiller.java:1025) atnet.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportEnd(JRVerticalFiller.java:283) atnet.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:117) atnet.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:923) atnet.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:826) atnet.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:59) atnet.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417) atnet.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247) atcom.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:858) atorg.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572) atorg.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997) 
    Print not filled. Try to use an EmptyDataSource..

    Hoffe dir sagt das mehr als mir.


    Beste Grüße

    maggo
    Geändert von maggo (13.04.10 um 08:44 Uhr)
     

  5. #5
    maggo maggo ist offline Rookie
    Registriert seit
    Apr 2010
    Beiträge
    6
    Hi gorefest,

    ich habe nun noch die Variablen angepasst, so dass sie beide vom Typ double sind, nun bekomme ich als ausgabe an der Stelle der Variable im preview die Ausgabe NULL.

    Gruß Marco
     

  6. #6
    gorefest gorefest ist offline Mitglied Brokat
    Registriert seit
    Apr 2009
    Beiträge
    256
    Ich nutze primär ireports. Dort lege ich für eine Variable (z.B. Summe) fest, in welchem Block sie gesetzt wird.

    *raff*

    Aaaah, Du nutzt einen Subreport. Habe ich noch nicht gebraucht, sorry also, falls ich Dich verwirrt haben sollte. Aber falls Du für Dein Problem eine Lösung findest, poste Sie doch mal hier.
     

  7. #7
    maggo maggo ist offline Rookie
    Registriert seit
    Apr 2010
    Beiträge
    6
    Hi gorefest,

    hehehe ja den nutzte ich. Mir ist bisher keine andere Lösung eingefallen wie ich aus mehreren SQL Abfragen diese Werte auf einen Report bekomme.
    Gibt es da noch eine andere Lösung? Ich dachte evtl. geht das über Datasets aber das hab ich noch nicht so recht verstanden wofür die sind.

    Also vielleicht gibt es ja auch einen anderen weg um folgendes Problem zu Lösen.
    Ich möchte für die unterschiedlichsten Monate die durch ihr datum eingegränzt werden die gesamtstunden aller Mitarbeiter ausgeben lassen in Abhängigkeit von dem Projektnamen.
    Zu letzt soll dann ganz unten noch die summe aller gesamstunden stehen.


    Es soll dann am Ende ungefähr so aussehen.

    Projekt 1 | Projekt 2 | Summe
    Januar 300 | 150 | 450
    Februar 200 | 50 | 250
    .
    .
    .
    .
    ------------------------------------------------------
    Gesamt 500 200 700


    Evtl. hat hier jemand einen guten Hinweis.


    Gruß Marco
     

  8. #8
    gorefest gorefest ist offline Mitglied Brokat
    Registriert seit
    Apr 2009
    Beiträge
    256
    Ich arbeite gerne mit Bean-Datenquellen. Das hat den charmanten Vorteil, dass ich meine Daten in Objektform in den Report bekomme und auch mit Indirektionen ala detail.master.master.getAttribut() arbeiten kann.

    Diese Beanquellen wiederum lasse ich mir mittels Hibernate befüllen. Der Nachteil ist, dass Du eine statische Funktion brauchst, die Dir Demodaten zurückliefert und diese wiederum in ein JAR packst, welche Du dann in iReport einbindest. Da sich die Testdaten aber kaum ändern, wenn die Objektstruktur steht, ist man mit 2-3 JAR-Erzeugungen dabei.

    Grüße
    gore
     

  9. #9
    maggo maggo ist offline Rookie
    Registriert seit
    Apr 2010
    Beiträge
    6
    Hi gorefest,

    das hört sich nach Java Programmierung an, da hab ich noch weniger Ahnung wie vom iReport und XML nämlich keine
    Na dann werde ich mal weiter nach einer Lösung suchen müssen.


    Gruß maggo
     

Ähnliche Themen

  1. Struktur von einem Dialog in einen anderen übergebe
    Von Lexx84 im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 06.12.10, 12:00
  2. Antworten: 7
    Letzter Beitrag: 29.11.10, 14:10
  3. Antworten: 8
    Letzter Beitrag: 24.10.05, 11:01
  4. Antworten: 20
    Letzter Beitrag: 29.11.04, 10:16
  5. In einem Optionsfeld eine Variable einfügen
    Von stefanrichardmueller im Forum PHP
    Antworten: 3
    Letzter Beitrag: 31.07.04, 15:47