Re: @perl-Freaks/ nach Datum listen - 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 hempelr (1976 Beiträge) am Dienstag, 12.August.2003, 08:25.
    Re: @perl-Freaks/ nach Datum listen

      Hallo, Jürgen,
      mit den führenden Nullen hatte mir Sander mal unter die Arme gegriffen, ich hab den ganzen Spass gleich in mein Funktionstemplate gepackt, damit die Optionfelder immer zur Verfügung stehen, hier mal kurz der Ausschnitt mit den "wichtigsten" Var-Belegungen und Subroutinen zum Datum aus dem standardmässig includierten Template:
      ---- schnipp
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
      
      Datumsteile in globale Variablen schreiben, damit überall nutzbar
      # -------- aktuelles Datum in Var date ------- #
      $date = jetzt;
      # -------- Wochentagszahl ermitteln ------- #
      $tagzahl = datum("$date", "Wochentagzahl");
      # -------- Datumsteile in Var schreiben ------- #
      $jar= datum ("$date","Jahr"); $mon = datum ("$date","Monat");
      $dag = datum ("$date", "Tag"); $stund = datum ("$date", "Stunde");
      $min = datum ("$date", "Minute"); $sek = datum ("$date", "Sekunde");
      # Sekunde, Minute, Tag und Monat mit Führenden Nullen #
      $sek0 = length($sek) < 2 ? "0".$sek : $sek;
      $min0 = length($min) < 2 ? "0".$min : $min;
      $stund0 = length($stund) < 2 ? "0".$stund : $stund;
      $dag0 = length($dag) < 2 ? "0".$dag : $dag;
      $mon0 = length($mon) < 2 ? "0".$mon : $mon;
      # -------- Sekundenwerte f. Tag/Stunde/Minute ------- #
      $sek_dag = $dag* 24 * 60 * 60; $sek_stund = $stund * 60 * 60; $sek_min = $min * 60;
      # -------- naechstes Jahr / naechster Monat / uebern. Jahr / uebern. Monat ------- #
      $n_jar = $jar + 1; $un_jar = $n_jar+1; $n_mon = $mon + 1; $un_mon = $n_mon + 1;
      # --------Anzahl Tage fuer Monat hinterlegen
      #  - Schaltjahr berechnen (Anzahl Tage Februar)------- #
      if ($jar % 100 == 0){
       if ($jar % 400 == 0){
         $dz_feb = 29;}else{$dz_feb = 28;}
       }else {if ($jar % 4 == 0){
         $dz_feb = 29;}else{$dz_feb = 28;}
      }
      # Liste mit Anzahl der Tage pro Monat (Februar vor errechnet) - Zählung beginnt bei Null!!!)
      @ld_mon=("31","$dz_feb","31","30","31","30","31","31","30","31","30","31");
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      # Liste mit Monatsnamen
      @ln_mon = ("Januar","Februar","März","April","Mai","Juni","Juli","August","Septemper","Oktober","November","Dezember");
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      # Liste mit Tagesnamen
      @ln_dag = ("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      # -------- Anzahl der Tage im aktuellen Jahr errechnen ------- #
      foreach $i_ldmon (@ld_mon){
      $djar = $djar + $i_ldmon; }
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      # Aktuelle Tageszahl im Jahr errechnen #
      until ($i == $mon-1){
      $dnr_jar = $dnr_jar + $ld_mon[$i];
      $i++;}
      $dnr_jar = $dnr_jar + $dag; # Tagnummer für aktuellen Tag im lfd. Jahr
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      # ........ Optionfeld für Minutenzahlen ........ #
      sub opt_min
      {# Syntax: &opt_min (minutenzahl) ohne Parameter aktueller Minute selected
      # Parameterwerte werden selected in Optionfelder gesetzt
      # ........ Optionfeld Minutenzahl ........ #
      $_[0] eq "\"\"" ? "" : $_[0];  # wenn Doppelqoutes bei Leerwerten
      my $_min = ($_[0] ne "" ? $_[0] : $min); my @lz_min = (0..60); my $_a_opt_min;
      # ........ Optionfeld Minutenzahl bauen ........ #
         foreach (@lz_min){
          $_=(length($_)==1 ? "0$_" : $_); # fuerende Null bei einstelligen Werten einbauen (Danke Sander!)
            if ($_ eq $_min){ $_a_opt_min.="<option selected value=\"$_\">$_</option>"
            } else { $_a_opt_min.="<option value=\"$_\">$_</option>";
            }
         }
         return ($_a_opt_min);
      }
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
      # ........ Optionfeld für Stundenzahlen ........ #
      sub opt_stund
      {# Syntax: &opt_stund (Stundenzahl) ohne Parameter aktuelle Stunde selected
      # Parameterwerte werden selected in Optionfelder gesetzt
      $_[0] eq "\"\"" ? "" : $_[0];
      my $_stund = ($_[0] ne "" ? $_[0] : $stund); my @lz_stund = (0..24); my $_a_opt_stund;
      # ........ Optionfeld Tageszahl ........ #
         foreach (@lz_stund){
         $_=(length($_)==1 ? "0$_" : $_); 
            if ($_ eq $_stund) { $_a_opt_stund.="<option selected value=\"$_\">$_</option>";
            } else { $_a_opt_stund.="<option value=\"$_\">$_</option>";
            }
         }
         return ($_a_opt_stund);
      }
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
      # ........ Optionfeld für Tageszahlen ........ #
      sub opt_dag
      {# Syntax: &opt_dag (tagesdatum) ohne Parameter aktueller Tag selected
      # Parameterwerte werden selected in Optionfelder gesetzt
      $_[0] eq "\"\"" ? "" : $_[0];
      my $_dag = ($_[0] ne "" ? $_[0] : $dag); my @lz_dag = (1..31); my $_a_opt_dag;
      # ........ Optionfeld Tageszahl ........ #
         foreach (@lz_dag){
         $_=(length($_)==1 ? "0$_" : $_);
            if ($_ eq $_dag) { $_a_opt_dag.="<option selected value=\"$_\">$_</option>";
            } else { $_a_opt_dag.="<option value=\"$_\">$_</option>";
            }
         }
         return ($_a_opt_dag);
      }
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
      # ........ Optionfeld für Monatszahlen ........ #
      sub opt_mon
      {# Syntax: &opt_mon (monatszahl) ohne Parameter aktueller Monat selected
      # Parameterwerte werden selected in Optionfelder gesetzt
      # ........ Optionfled Monatszahl ........ #
      $_[0] eq "\"\"" ? "" : $_[0];
      my $_mon = ($_[0] ne "" ? $_[0] : $mon); # wurde was übergeben? wenn nicht aktueller Monat
      my @lz_mon = (1..12); my $_a_opt_mon;
         foreach (@lz_mon){
         $_=(length($_)==1 ? "0$_" : $_); # Führende Null einbauen - Danke Sander
            if ($_ eq $_mon) { $_a_opt_mon.="<option selected value=\"$_\">$_</option>";
            } else { $_a_opt_mon.="<option value=\"$_\">$_</option>";
            }
         }
         return ($_a_opt_mon);
      }
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
      # ........ Optonfeld für Jahreszahlen ........ #
      sub opt_jar
      {# Syntax: &opt_jar (jahreszahl) ohne Parameter aktuelles Jahr selected
      # Parameterwerte werden selected in Optionfelder gesetzt
      $_[0] eq "\"\"" ? "" : $_[0];
      my $_jar = ($_[0] ne "" ? $_[0] : $jar); my @lz_jar = (($jar-10)..($jar+10)); my $_a_opt_jar;
         # ........ Optionfeld Jahreszahl ........ #
         foreach(@lz_jar)
         {  $_=(length($_)==1 ? "0$_" : $_);
            if ($_ eq $_jar){
            $_a_opt_jar.="<option selected value=\"$_\">$_</option>";
            }else{
            $_a_opt_jar.="<option value=\"$_\">$_</option>";
            }
         }
         return ($_a_opt_jar);
      }
      
      ---- schnapp
      Dein Prob hat mir keine Ruhe gelassen und ich hab nochmal in der Doku gesucht - siehe da, es geht so wie du willst offensichtlich nicht....
      ( s. a. http://baseportal.de/cgi-bin/baseportal.pl?htx=/hilfe/baseportal/db_help&kap=14#83, speziell Abfrage nach Datumsteilen)
      Du wirst das Datums-Feld in zwei Felder splitten müssen, einmal Monat und Tag, das zweite mit Jahr (eigene Formate festlegen) - hab das jetzt auch selbst nochmal getestet, ist offenbar nicht anders möglich, wenn man bspw. alle Geburtstage eines Monats haben will....
      Hoffe, es hilft dir weiter
      Ruben


    Ihre Antwort:

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

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Jürgen (614 Beiträge) am Montag, 11.August.2003, 14:28.
    @perl-Freaks/ nach Datum listen

      Hi,

      hab mal wieder ein Prob.
      Möchte meine Einträge nach Datum(Monat/Jahr) anzeigen lassen - funzt aber nich???
      Übergebe (Form) folgende Variablen an mein Zieltemplate:

      #------------ Monat wählen ---------------------
      out "<select class=\"box\" name=\"Searchd:=\">";
      out " <option selected>\n ";
      $month=datum($GebDat,"Monat");
      foreach $option (1..12)
      {
      out " <option>$option\n ";
      }
      out "</select>";
      #------------ Jahr wählen -----------------------
      out "<select class=\"boxk\" name=\"Searche:=\">";
      out " <option selected>\n ";
      $year=datum($GebDat,"Jahr");
      foreach $option (1920..2020)
      {
      out " <option>$option\n ";
      }
      out "</select>";
      


      Und so sieht die Auflistung aus:
      bla bla...
      get "Id=* KartenNr~=$Searcha Name~=$Searchb Vorname~=$Searchc _GebDat_Monat~=$Searchd _GebDat_Jahr~=$Searche IDfederation==$Landfed", "/member";
      while (get_next("/member"))
      {
      
      bla bla...

      Mir wird nichts ausgegeben - woran liegts den??
      Hat jemand eine Tipp für mich? Danke ;-)

      Gruß
      Jürgen

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Montag, 11.August.2003, 18:41.
    Re: @perl-Freaks/ nach Datum listen

      Hallo, Jürgen,
      übergib mal die Feldnamen ohne ":" - also
      out "<select class=boxk name='Searche='>";
      
      ...
      Mittels name='varname:=' wird der Inhalt in den put-Hash geschrieben und ist nicht "normal" im Template vorhanden, mittels name='varname=' wird es in den get-Hash geschrieben und ist dann direkt per $varname im Template als Wert vorhanden.
      Musst auch beim Monat noch aufpassen, dass er mit führenden Nullen abgfefragt wird, sonst klappts m.E. nach auch nicht.
      Datum filtern und Sortieren hat so gewaltig seinen Schleuder... hab da schon Tage zugebracht damit.
      Günstig wäre, wenn ichs jetzt so beim schnellen Überfliegen sehe, als Vorbelegung für die Filtervariablen einen "*" zu machen (für "gilt für alles") falls aus irgendwelchen Umständen ein Leerstring übergeben wird oder aber die Filtervar nicht definiert ist; meinetwegen so am Anfang deines "Zeittemplates":
      $Searchd||= "*";
      $Searche||= "*"; 
      (bedeutet: $Searchd ist gleich $Searchd oder wenn es nicht belegt bzw. nicht definiert ist [das ist ein richtiger Pferdefuss mit der Definiertheit von Variablen] dann wird es definiert mit * belegt)
      
      Hoffe, es hilft dir weiter
      Ruben

     Antworten

    Beitrag von Jürgen (614 Beiträge) am Dienstag, 12.August.2003, 00:03.
    Re: @perl-Freaks/ nach Datum listen

      Hi Ruben,

      hmm, haut irgend wie nich hin.
      Sobald ich nur das Jahr wähle, wird mir der Jahrgang angezeigt.
      Nehme ich noch den Monat dazu - dann streikt es.
      Keine Datensätze gefunden.
      Hab auch auf die Null geachtet.
      Wie kann ich hier mit Nullen arbeiten ??
      ...
      $month=datum($GebDat,"Monat");
      foreach $option (1..12)
      {
      out " <option>$option\n ";
      }
      out "</select>";
      

      Das bringt nichts $GebDat=datum($GebDat,"Monat.Jahr"); ???
      Hast noch nen Tipp für mich - bevor ich Waaaahnsinnig werde ;-)
      Danke vorab.

      gruß
      Jürgen

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Dienstag, 12.August.2003, 08:25.
    Re: @perl-Freaks/ nach Datum listen

      Hallo, Jürgen,
      mit den führenden Nullen hatte mir Sander mal unter die Arme gegriffen, ich hab den ganzen Spass gleich in mein Funktionstemplate gepackt, damit die Optionfelder immer zur Verfügung stehen, hier mal kurz der Ausschnitt mit den "wichtigsten" Var-Belegungen und Subroutinen zum Datum aus dem standardmässig includierten Template:
      ---- schnipp
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
      
      Datumsteile in globale Variablen schreiben, damit überall nutzbar
      # -------- aktuelles Datum in Var date ------- #
      $date = jetzt;
      # -------- Wochentagszahl ermitteln ------- #
      $tagzahl = datum("$date", "Wochentagzahl");
      # -------- Datumsteile in Var schreiben ------- #
      $jar= datum ("$date","Jahr"); $mon = datum ("$date","Monat");
      $dag = datum ("$date", "Tag"); $stund = datum ("$date", "Stunde");
      $min = datum ("$date", "Minute"); $sek = datum ("$date", "Sekunde");
      # Sekunde, Minute, Tag und Monat mit Führenden Nullen #
      $sek0 = length($sek) < 2 ? "0".$sek : $sek;
      $min0 = length($min) < 2 ? "0".$min : $min;
      $stund0 = length($stund) < 2 ? "0".$stund : $stund;
      $dag0 = length($dag) < 2 ? "0".$dag : $dag;
      $mon0 = length($mon) < 2 ? "0".$mon : $mon;
      # -------- Sekundenwerte f. Tag/Stunde/Minute ------- #
      $sek_dag = $dag* 24 * 60 * 60; $sek_stund = $stund * 60 * 60; $sek_min = $min * 60;
      # -------- naechstes Jahr / naechster Monat / uebern. Jahr / uebern. Monat ------- #
      $n_jar = $jar + 1; $un_jar = $n_jar+1; $n_mon = $mon + 1; $un_mon = $n_mon + 1;
      # --------Anzahl Tage fuer Monat hinterlegen
      #  - Schaltjahr berechnen (Anzahl Tage Februar)------- #
      if ($jar % 100 == 0){
       if ($jar % 400 == 0){
         $dz_feb = 29;}else{$dz_feb = 28;}
       }else {if ($jar % 4 == 0){
         $dz_feb = 29;}else{$dz_feb = 28;}
      }
      # Liste mit Anzahl der Tage pro Monat (Februar vor errechnet) - Zählung beginnt bei Null!!!)
      @ld_mon=("31","$dz_feb","31","30","31","30","31","31","30","31","30","31");
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      # Liste mit Monatsnamen
      @ln_mon = ("Januar","Februar","März","April","Mai","Juni","Juli","August","Septemper","Oktober","November","Dezember");
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      # Liste mit Tagesnamen
      @ln_dag = ("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      # -------- Anzahl der Tage im aktuellen Jahr errechnen ------- #
      foreach $i_ldmon (@ld_mon){
      $djar = $djar + $i_ldmon; }
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      # Aktuelle Tageszahl im Jahr errechnen #
      until ($i == $mon-1){
      $dnr_jar = $dnr_jar + $ld_mon[$i];
      $i++;}
      $dnr_jar = $dnr_jar + $dag; # Tagnummer für aktuellen Tag im lfd. Jahr
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
      # ........ Optionfeld für Minutenzahlen ........ #
      sub opt_min
      {# Syntax: &opt_min (minutenzahl) ohne Parameter aktueller Minute selected
      # Parameterwerte werden selected in Optionfelder gesetzt
      # ........ Optionfeld Minutenzahl ........ #
      $_[0] eq "\"\"" ? "" : $_[0];  # wenn Doppelqoutes bei Leerwerten
      my $_min = ($_[0] ne "" ? $_[0] : $min); my @lz_min = (0..60); my $_a_opt_min;
      # ........ Optionfeld Minutenzahl bauen ........ #
         foreach (@lz_min){
          $_=(length($_)==1 ? "0$_" : $_); # fuerende Null bei einstelligen Werten einbauen (Danke Sander!)
            if ($_ eq $_min){ $_a_opt_min.="<option selected value=\"$_\">$_</option>"
            } else { $_a_opt_min.="<option value=\"$_\">$_</option>";
            }
         }
         return ($_a_opt_min);
      }
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
      # ........ Optionfeld für Stundenzahlen ........ #
      sub opt_stund
      {# Syntax: &opt_stund (Stundenzahl) ohne Parameter aktuelle Stunde selected
      # Parameterwerte werden selected in Optionfelder gesetzt
      $_[0] eq "\"\"" ? "" : $_[0];
      my $_stund = ($_[0] ne "" ? $_[0] : $stund); my @lz_stund = (0..24); my $_a_opt_stund;
      # ........ Optionfeld Tageszahl ........ #
         foreach (@lz_stund){
         $_=(length($_)==1 ? "0$_" : $_); 
            if ($_ eq $_stund) { $_a_opt_stund.="<option selected value=\"$_\">$_</option>";
            } else { $_a_opt_stund.="<option value=\"$_\">$_</option>";
            }
         }
         return ($_a_opt_stund);
      }
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
      # ........ Optionfeld für Tageszahlen ........ #
      sub opt_dag
      {# Syntax: &opt_dag (tagesdatum) ohne Parameter aktueller Tag selected
      # Parameterwerte werden selected in Optionfelder gesetzt
      $_[0] eq "\"\"" ? "" : $_[0];
      my $_dag = ($_[0] ne "" ? $_[0] : $dag); my @lz_dag = (1..31); my $_a_opt_dag;
      # ........ Optionfeld Tageszahl ........ #
         foreach (@lz_dag){
         $_=(length($_)==1 ? "0$_" : $_);
            if ($_ eq $_dag) { $_a_opt_dag.="<option selected value=\"$_\">$_</option>";
            } else { $_a_opt_dag.="<option value=\"$_\">$_</option>";
            }
         }
         return ($_a_opt_dag);
      }
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
      # ........ Optionfeld für Monatszahlen ........ #
      sub opt_mon
      {# Syntax: &opt_mon (monatszahl) ohne Parameter aktueller Monat selected
      # Parameterwerte werden selected in Optionfelder gesetzt
      # ........ Optionfled Monatszahl ........ #
      $_[0] eq "\"\"" ? "" : $_[0];
      my $_mon = ($_[0] ne "" ? $_[0] : $mon); # wurde was übergeben? wenn nicht aktueller Monat
      my @lz_mon = (1..12); my $_a_opt_mon;
         foreach (@lz_mon){
         $_=(length($_)==1 ? "0$_" : $_); # Führende Null einbauen - Danke Sander
            if ($_ eq $_mon) { $_a_opt_mon.="<option selected value=\"$_\">$_</option>";
            } else { $_a_opt_mon.="<option value=\"$_\">$_</option>";
            }
         }
         return ($_a_opt_mon);
      }
      # - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
      # ........ Optonfeld für Jahreszahlen ........ #
      sub opt_jar
      {# Syntax: &opt_jar (jahreszahl) ohne Parameter aktuelles Jahr selected
      # Parameterwerte werden selected in Optionfelder gesetzt
      $_[0] eq "\"\"" ? "" : $_[0];
      my $_jar = ($_[0] ne "" ? $_[0] : $jar); my @lz_jar = (($jar-10)..($jar+10)); my $_a_opt_jar;
         # ........ Optionfeld Jahreszahl ........ #
         foreach(@lz_jar)
         {  $_=(length($_)==1 ? "0$_" : $_);
            if ($_ eq $_jar){
            $_a_opt_jar.="<option selected value=\"$_\">$_</option>";
            }else{
            $_a_opt_jar.="<option value=\"$_\">$_</option>";
            }
         }
         return ($_a_opt_jar);
      }
      
      ---- schnapp
      Dein Prob hat mir keine Ruhe gelassen und ich hab nochmal in der Doku gesucht - siehe da, es geht so wie du willst offensichtlich nicht....
      ( s. a. http://baseportal.de/cgi-bin/baseportal.pl?htx=/hilfe/baseportal/db_help&kap=14#83, speziell Abfrage nach Datumsteilen)
      Du wirst das Datums-Feld in zwei Felder splitten müssen, einmal Monat und Tag, das zweite mit Jahr (eigene Formate festlegen) - hab das jetzt auch selbst nochmal getestet, ist offenbar nicht anders möglich, wenn man bspw. alle Geburtstage eines Monats haben will....
      Hoffe, es hilft dir weiter
      Ruben

     Antworten

    Beitrag von Jürgen (614 Beiträge) am Dienstag, 12.August.2003, 09:53.
    Re: @perl-Freaks/ nach Datum listen

      Hi Ruben,

      oooooh, bei dem Script ziehts mir ja die Schuhe aus.
      Ich glaub, ich lass die Listmöglichkeit nach Monat.
      Vielleicht bau ichs dann später mal ein. Danke nochmal.

      Gruß
      Jürgen

     Antworten


     
 Liste der Einträge von 35701 bis 35851: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!