Frage zum Thema UNTERPROGRAMME - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Meisl Helmut (124 Beiträge) am Sonntag, 3.Februar.2002, 23:36.
    Frage zum Thema UNTERPROGRAMME

      Kann mir jemand helfen und mir die Syntax für den AUFRUF eines Unterprogrammes und die korrekte Syntax für das Unterprogramm selbst "verraten".
      Ich möchte Variablen übergeben, ein Unterprogramm aufrufen und das gleich ein paarmal.

      Mit "Include" funktioniert alles, aber zum Sparen von Templates (Mietversion) bietet sich die Verwendung von Unterprogrammen an. Meine Perl-Kenntnisse sind dafür aber (noch) zu schwach.

      Das Beispiel sieht derzeit so aus:

      <perl>
      $anlage = GneisMoos;
      $anfangsstand = 313250;
      $flaeche = 410;
      <include src=rechnen>
      </perl>
      

      <perl>
      $anlage = Bolaring;
      $anfangsstand = 292040;
      $flaeche = 1056;
      <include src=rechnen>
      </perl>
      

      Im Template "rechnen" werden Berechnungen ausgeführt und ein Ausdruck veranlasst. Anstatt des "Include" soll es aber ein Unterprgramm-Aufruf werden.
      Das Template "rechnen" sieht so aus:

      <loop code=perl db^=solar sort=datum anlage==\$anlage>
      $energie = $stand - $anfangsstand;
      $diff = $energie;
      $energie = $energie / $flaeche;
      $energie = sprintf('%.2f', $energie);
      $breite = $energie * 2;
      </loop>
      <table border=0><tr><td width=120 bgcolor=#CCCCCC align=right><font face=Arial size=2>$anlage </font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2>$datum </font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2>$diff kWh</font></td><td width=$breite bgcolor=#FFFF00></td><td bgcolor=#FFFFFF><font face=Arial size=2>$energie kWh/m²</font></td></tr></table>
      


    Ihre Antwort:

    Name: EMail: EMail bei Antwort? WWW:
    Titel:
    Text:

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Meisl Helmut (124 Beiträge) am Sonntag, 3.Februar.2002, 23:36.
    Frage zum Thema UNTERPROGRAMME

      Kann mir jemand helfen und mir die Syntax für den AUFRUF eines Unterprogrammes und die korrekte Syntax für das Unterprogramm selbst "verraten".
      Ich möchte Variablen übergeben, ein Unterprogramm aufrufen und das gleich ein paarmal.

      Mit "Include" funktioniert alles, aber zum Sparen von Templates (Mietversion) bietet sich die Verwendung von Unterprogrammen an. Meine Perl-Kenntnisse sind dafür aber (noch) zu schwach.

      Das Beispiel sieht derzeit so aus:

      <perl>
      $anlage = GneisMoos;
      $anfangsstand = 313250;
      $flaeche = 410;
      <include src=rechnen>
      </perl>
      

      <perl>
      $anlage = Bolaring;
      $anfangsstand = 292040;
      $flaeche = 1056;
      <include src=rechnen>
      </perl>
      

      Im Template "rechnen" werden Berechnungen ausgeführt und ein Ausdruck veranlasst. Anstatt des "Include" soll es aber ein Unterprgramm-Aufruf werden.
      Das Template "rechnen" sieht so aus:

      <loop code=perl db^=solar sort=datum anlage==\$anlage>
      $energie = $stand - $anfangsstand;
      $diff = $energie;
      $energie = $energie / $flaeche;
      $energie = sprintf('%.2f', $energie);
      $breite = $energie * 2;
      </loop>
      <table border=0><tr><td width=120 bgcolor=#CCCCCC align=right><font face=Arial size=2>$anlage </font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2>$datum </font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2>$diff kWh</font></td><td width=$breite bgcolor=#FFFF00></td><td bgcolor=#FFFFFF><font face=Arial size=2>$energie kWh/m²</font></td></tr></table>
      

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 4.Februar.2002, 00:00.
    Re: Frage zum Thema UNTERPROGRAMME

      So ungefähr: alle Variablen sind global gültig

      <perl>
      $anlage = GneisMoos;
      $anfangsstand = 313250;
      $flaeche = 410;
      &rechnen; #Aufruf von sub
      

      $anlage = Bolaring;
      $anfangsstand = 292040;
      $flaeche = 1056;
      &rechnen; #Aufruf von sub
      

      sub rechnen
      {
      get "anlage==$anlage sort=datum","solar";
      while (get_next("solar"))
      {
      $energie = $stand - $anfangsstand;
      $diff = $energie;
      $energie = $energie / $flaeche;
      $energie = sprintf('%.2f', $energie);
      $breite = $energie * 2;
      out <<EOF;
      <table border=0><tr><td width=120 bgcolor=#CCCCCC align=right><font face=Arial size=2>$anlage </font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2>$datum </font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2>$diff kWh</font></td><td width=$breite bgcolor=#FFFF00></td><td bgcolor=#FFFFFF><font face=Arial size=2>$energie kWh/m²</font></td></tr></table>
      EOF
      }
      }
      

      Sander

     Antworten

    Beitrag von Meisl Helmut (124 Beiträge) am Montag, 4.Februar.2002, 10:07.
    Re: Frage zum Thema UNTERPROGRAMME

      DANKE! Das war eine sehr prompte Hilfe!

     Antworten

    Beitrag von Meisl Helmut (124 Beiträge) am Montag, 4.Februar.2002, 10:22.
    Re: Frage zum Thema UNTERPROGRAMME

      GEHT LEIDER DOCH NICHT!

      Kann mir jemand sagen, wo der (kleine) Fehler liegt.
      Nachstehend der ganze Code.
      Die Seite kann unter http://gswb.net/baseportal/solartest aufgerufen werden.

      Der Code:

      <html>
      <head>
      <title>gswb Solarstatistik</title>
      

      <br><br>
      <p class="header1innen">Darstellung der Gesamterträge seit 1.1.2002<p>
      <p class="normaltext">Anmerkung: Innerhalb eines Jahres muss ein Gesamtertrag von 350 kWh/m² erreicht werden.</p>
      

      <table border=0><tr><td width=120 bgcolor=#CCCCCC align=right><font face=Arial size=2><b>ANLAGE </b></font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2><b>DATUM </b></font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2><b>SEIT 1.1.02</b></font></td><td bgcolor=#FFFFFF></td><td bgcolor=#FFFFFF><font face=Arial size=2><b>ERTRAG / m² </b></font></td></tr></table>

      <perl>
      $anlage = GneisMoos;
      $anfangsstand = 313250;
      $flaeche = 410;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Bolaring;
      $anfangsstand = 292040;
      $flaeche = 1056;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Maxglan;
      $anfangsstand = 24178;
      $flaeche = 136;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Kleingmainergasse;
      $anfangsstand = 14786;
      $flaeche = 55;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Sam;
      $anfangsstand = 109160;
      $flaeche = 310;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Eugendorf;
      $anfangsstand = 33350;
      $flaeche = 125;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Golling;
      $anfangsstand = 71200;
      $flaeche = 240;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Schwarzach;
      $anfangsstand = 9502;
      $flaeche = 120;
      &rechnen;
      </perl>
      

      <br><font face=Arial size=1>© Datenbankerstellung: Helmut Meisl - gswb</font>

      sub rechnen
      {
      get "anlage==$anlage sort=datum","solar";
      while (get_next("solar"))
      {
      $energie = $stand - $anfangsstand;
      $diff = $energie;
      $energie = $energie / $flaeche;
      $energie = sprintf('%.2f', $energie);
      $breite = $energie * 2;
      out <<EOF;
      <table border=0><tr><td width=120 bgcolor=#CCCCCC align=right><font face=Arial size=2>$anlage </font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2>$datum </font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2>$diff kWh</font></td><td width=$breite bgcolor=#FFFF00></td><td bgcolor=#FFFFFF><font face=Arial size=2>$energie kWh/m²</font></td></tr></table>
      EOF
      }
      }
       
      </font></body></html>
      

     Antworten

    Beitrag von Sander (8133 Beiträge) am Montag, 4.Februar.2002, 10:34.
    Re: Frage zum Thema UNTERPROGRAMME

      Die sub steht nicht innerhalb von <perl>..</perl>

      Auch ist es serverlastig, jedesmal ein neues <perl> zu öffnen und wieder zu schliesen, um dann wieder eins zu öffnen.

      Sander

     Antworten

    Beitrag von Meisl Helmut (124 Beiträge) am Montag, 4.Februar.2002, 11:07.
    Re: Frage zum Thema UNTERPROGRAMME

      GEHT LEIDER DOCH NICHT!

      Kann mir jemand sagen, wo der (kleine) Fehler liegt.
      Nachstehend der ganze Code.
      Die Seite kann unter http://gswb.net/baseportal/solartest aufgerufen werden.

      Der Code:

      <html>
      <head>
      <title>gswb Solarstatistik</title>
      

      <br><br>
      <p class="header1innen">Darstellung der Gesamterträge seit 1.1.2002<p>
      <p class="normaltext">Anmerkung: Innerhalb eines Jahres muss ein Gesamtertrag von 350 kWh/m² erreicht werden.</p>
      

      <table border=0><tr><td width=120 bgcolor=#CCCCCC align=right><font face=Arial size=2><b>ANLAGE </b></font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2><b>DATUM </b></font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2><b>SEIT 1.1.02</b></font></td><td bgcolor=#FFFFFF></td><td bgcolor=#FFFFFF><font face=Arial size=2><b>ERTRAG / m² </b></font></td></tr></table>

      <perl>
      $anlage = GneisMoos;
      $anfangsstand = 313250;
      $flaeche = 410;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Bolaring;
      $anfangsstand = 292040;
      $flaeche = 1056;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Maxglan;
      $anfangsstand = 24178;
      $flaeche = 136;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Kleingmainergasse;
      $anfangsstand = 14786;
      $flaeche = 55;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Sam;
      $anfangsstand = 109160;
      $flaeche = 310;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Eugendorf;
      $anfangsstand = 33350;
      $flaeche = 125;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Golling;
      $anfangsstand = 71200;
      $flaeche = 240;
      &rechnen;
      </perl>
      

      <perl>
      $anlage = Schwarzach;
      $anfangsstand = 9502;
      $flaeche = 120;
      &rechnen;
      </perl>
      

      <br><font face=Arial size=1>© Datenbankerstellung: Helmut Meisl - gswb</font>

      sub rechnen
      {
      get "anlage==$anlage sort=datum","solar";
      while (get_next("solar"))
      {
      $energie = $stand - $anfangsstand;
      $diff = $energie;
      $energie = $energie / $flaeche;
      $energie = sprintf('%.2f', $energie);
      $breite = $energie * 2;
      out <<EOF;
      <table border=0><tr><td width=120 bgcolor=#CCCCCC align=right><font face=Arial size=2>$anlage </font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2>$datum </font></td><td width=80 bgcolor=#CCCCCC align=right><font face=Arial size=2>$diff kWh</font></td><td width=$breite bgcolor=#FFFF00></td><td bgcolor=#FFFFFF><font face=Arial size=2>$energie kWh/m²</font></td></tr></table>
      EOF
      }
      }
       
      </font></body></html>
      

     Antworten

    Beitrag von Meisl Helmut (124 Beiträge) am Montag, 4.Februar.2002, 11:37.
    Re: Frage zum Thema UNTERPROGRAMME

      SANDER ganz herzlichen Dank!
      Jetzt funktioniert alles wie gewollt.
      Geht halt nichts über Profis, die auch die notwendige Syntax kennen ...

     Antworten


     
 Liste der ersten 150 Einträge:Einklappen Zur Eingabe 
 Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.07s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!