Re: perl code innerhalb einer loop - 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 Marco (840 Beiträge) am Freitag, 26.Juli.2002, 11:03.
    Re: perl code innerhalb einer loop

      Du mußt zwischen

      <loop ... code=perl>
      

      und

      </loop>
      

      natürlich auch Perl schreiben, also:

      out "<table...";
      


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von till (1103 Beiträge) am Freitag, 26.Juli.2002, 09:14.
    perl code innerhalb einer loop

      hallo
      in einer db liegen zahlen unformatiert vor. ich möchte diese zahlen sortieren und dann formatiert als währung ausgeben. in der loop habe ich den code eingebaut aber es will nicht klappen.

      <html>
      <loop db=erfassung_conen sort=PreisEuro>
      $PreisEuro <br>
      </loop>
      <perl>
      format_currency($PreisEuro);
      out format_currency($PreisEuro);
      sub format_currency {
         my ($val, $currency, $amount) = @_;
      
         $amount = 1 if (!$amount); # Standartmenge 1    $val =~ tr/,//d; # Kommas weg da evtl. engl. Format    $val = sprintf "%0.2f", $val*$amount; # Endsumme mit 2 Nachkommastellen    $val =~ tr/\./\,/; # Dezimalkomma
         1 while $val =~ s/^(-?\d+)(\d{3})/$1.$2/; # Punkte in 3er Schritten
         return "$val $currency";
      }
      </perl>
      </loop>
      </html>
      

      es wird nur der letzte wert von $PreisEuro korrekt formatiert, d.h. die zahl wird im format 22.459,00 ausgebeben. nehme ich den perl-code mit in die schleife kommt eine fehlermeldung.
      blickt das jemand ?
      wäre klasse

      till

     Antworten

    Beitrag von Marco (840 Beiträge) am Freitag, 26.Juli.2002, 09:31.
    Re: perl code innerhalb einer loop

      <loop db=... sort=... code=perl>
      

      [..Hier der Code...]

      </loop>
      

      <perl>..</perl> brauchst Du dann nicht mehr... Außerdem ist das erste </loop> zuviel.


      Marco

     Antworten

    Beitrag von till (1103 Beiträge) am Freitag, 26.Juli.2002, 09:53.
    Re: perl code innerhalb einer loop

      hallo marco,
      danke erstmal. im testbeispiel fuinktioniert das einwandfrei. aber wenn ich versuche das in meine tatsächliche ausgabe datei so einzubinden, kommt folgende fehlermeldung:

      [error (loop): glob trapped by operation mask at (eval 19) line 2. ][error (loop): glob trapped by operation mask at (eval 21) line 2. ][error (loop): glob trapped by operation mask at (eval 23) line 2. ][error (loop): glob trapped by operation mask at (eval 25) line 2. ][error (loop): glob trapped by operation mask at (eval 27) line 2. ][error (loop): glob trapped by operation mask at (eval 29) line 2. ][error (loop): glob trapped by operation mask at (eval 31) line 2. ][error (loop): glob trapped by operation mask at (eval 33) line 2. ][error (loop): glob trapped by operation mask at (eval 35) line 2. ][error (loop): glob trapped by operation mask at (eval 37) line 2. ]

      hier die datei für die ausgabe (ich habe bislang nur das code=perl in die loop anweisung eingefügt:

      <html><head><title></title>
      </head><body bgcolor="#ffffff">
      <br><ul>
      <font face="arial,helvetica" size=2>
      <font face="Arial" size =2><a href="http://www.auto-conen.de/Gebrauchte/gebrauchte.html">ZURÜCK</a><p>
      
      Das aktuelle Gebrauchtwagenangebot nach Marke sortiert.
      Klicken Sie auf die Lagernummer um näheres zu erfahren</font><p>

      <loop db=erfassung_conen sort=Hersteller code=perl>
      <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
              <TR VALIGN=TOP ALIGN=LEFT>
                  <TD WIDTH=600>
                      <TABLE ID="Tabelle2" BORDER=1 CELLSPACING=3 CELLPADDING=1 WIDTH=600><TR>                        <TD WIDTH=131><P><B><FONT FACE="Arial,Helvetica,Univers,Zurich BT">$Hersteller</FONT></B></TD>                        <TD WIDTH=132><P><B><FONT FACE="Arial,Helvetica,Univers,Zurich BT">$Modell</FONT></B></TD>                                                <TD WIDTH=135><P><B><FONT FACE="Arial,Helvetica,Univers,Zurich BT">$PreisEuro
       ,--</FONT></B></TD>                        <TD WIDTH=72><P ALIGN=RIGHT><a href=http://www.dataserer.netpure.de/cgi-bin/baseportal.pl?htx=/dataserver/ausgabe_detail&Id_Nummer==$Id_Nummer>$Id_Nummer</a>
      <FONT FACE="Arial,Helvetica,Univers,Zurich BT"> </TD>                    </TR>
       </TABLE>
                  </TD>
              </TR>
          </TABLE>
      </loop>
      </table>
      </body></html>
      

     Antworten

    Beitrag von Marco (840 Beiträge) am Freitag, 26.Juli.2002, 11:03.
    Re: perl code innerhalb einer loop

      Du mußt zwischen

      <loop ... code=perl>
      

      und

      </loop>
      

      natürlich auch Perl schreiben, also:

      out "<table...";
      

     Antworten

    Beitrag von till (1103 Beiträge) am Freitag, 26.Juli.2002, 11:08.
    Re: perl code innerhalb einer loop

      hi marco,
      bedeutet das: da darf kein html code in diese schleife ?
      dann kann ich das vergessen..

      till

     Antworten

    Beitrag von Marco (840 Beiträge) am Freitag, 26.Juli.2002, 11:28.
    Re: perl code innerhalb einer loop

      Doch natürlich!

      Aber entweder verpackt in
      out "<html-tags>";
      

      oder so:
      <loop ,,,code=perl>
      out <<EOF;
      

      <html-tags>

      EOF
      
      ab hier nur noch Perl
      </loop>

     Antworten

    Beitrag von till (1103 Beiträge) am Freitag, 26.Juli.2002, 15:32.
    Re: perl code innerhalb einer loop

      hi marco,

      es will einfach nicht hinhauen. igrendwo ist da der wurm drin. muß ich jedes einzlne html statement mittels out "<statement>"; ausgeben ?
      so:

      <perl>
      out "<TD WIDTH=135><P><B><FONT FACE="Arial,Helvetica,Univers,Zurich BT">$PreisEuro ,--</FONT></B></TD>;
      </perl>
      wird das "out" statement mit herausgeschrieben. die eigentliche formatierung für die ausgabe
      

      format_currency($PreisEuro);
      out format_currency($PreisEuro);
      sub format_currency {
         my ($val, $currency, $amount) = @_;
         $val =~ tr/\./\,/;                        # Dezimalkomma
         1 while $val =~ s/^(-?\d+)(\d{3})/$1.$2/; # Punkte in 3er Schritten
         return "$val $currency";
      }
      

      habe ich hier noch gar nicht eingebaut. wollte erstmal das einbauen in das html testen

      till

     Antworten

    Beitrag von Sascha Fitzner (476 Beiträge) am Freitag, 26.Juli.2002, 15:50. WWW: planet-gaga.de
    Re: perl code innerhalb einer loop

      hi till,

      ich versuch dir mal zu antworten....
      also:

      zwischen einem einleitendem <perl> bis zum abschliessendem </perl> gilt als syntax perl.
      bedeutet du musst dort mit perl arbeiten.
      wenn du dazwischen html ausgeben willst kannst du dieses mit dem out befehl tun
      bsp.:
      <perl>
      out "<b>";
      out "Das kommt Fett an";
      out "</b>";
      </perl>
      

      die andere möglichkeit ist das du einen block komplett als html ausgeben kannst. dann arbeitest du mit:
      <perl>
      out<<EOF
      <b>
      
      Das kommt Fett an
      </b>
      EOF
      </perl>
      

      das out gibt dann das was zwischen dem
      out<<EOF 
      
      Text
      weiterer Text oder auch html-code
      und dem abschliessendem
      EOF 
      
      steht so aus wie es in deinem template steht.

      weiterhin musst du drauf achten, dass du mit out keine sonderzeichen wie z.b. das gänsefüsschen " ausgeben kannst, da dieses ja in perl auch eine funktion besitzt. wenn du dieses bewusst mit dem out ausgeben willst so musst du es mit dem \ backslash maskieren bzw. entwerten.

      bsp.:

      <perl>
      out "<a href=\"meineseite.htm\">Hier klicken</a>";
      </perl>
      

      ich hoffe dir nen bischen damit geholfen zu haben.

      gruss sascha fitzner

     Antworten

    Beitrag von till (1103 Beiträge) am Samstag, 27.Juli.2002, 14:12.
    Re: perl code innerhalb einer loop

      ahhhhhhhhhhhh so. vielen dank daß du einem dummy wie mir (jedenfalls was pearl angeht) so nett und ausführlich hilfst. werde es probieren, bin aber sicher dass das prob genau bei den " lag.

      thx.
      till

     Antworten

    Beitrag von till (1103 Beiträge) am Sonntag, 28.Juli.2002, 16:11. WWW: www.stoffel-kueppers.de/baseportal
    DANKE nochmal an alle netten helfer hier

      hi ihr netten helfer,
      mit einer kombination eurer netten hilfen und einer eihe von ";" ja/nein fehlern habe ich das gewünschte ergebnis jetzt erreicht. klasse und danke dafür. ich werde meine "baseportal für nof-user" seite in kürze updaten und dann eine reihe neuer erkenntnisse für die nof-user gemeinde mit einbauen.

      till

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 26.Juli.2002, 15:16.
    Re: perl code innerhalb einer loop

      Wichtig erscheint mir noch: Die sub-Routine bitte nicht im "loop" definieren, das ist unnötige Zeitverschwendung (wird dann -zig Mal definiert wo einmal reichen würde). Irgendwie so müsste der Code also am Besten aussehen:

      <perl>
      sub format_currency
      {
      my ($val, $currency, $amount) = @_;
      

      $amount = 1 if (!$amount); # Standartmenge 1
      $val =~ tr/,//d; # Kommas weg da evtl. engl. Format
      $val = sprintf "%0.2f", $val*$amount; # Endsumme mit 2 Nachkommastellen
      $val =~ tr/\./\,/; # Dezimalkomma
      1 while $val =~ s/^(-?\d+)(\d{3})/$1.$2/; # Punkte in 3er Schritten
      return "$val $currency";
      

      }
      </perl>
      

      <loop db=erfassung_conen sort=PreisEuro code=perl>
      out format_currency($PreisEuro)."<br>";
      </loop>
      

     Antworten


     
 Liste der Einträge von 45300 bis 45450:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < 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!