Re: nach Monaten gruppieren noch ne Frage - 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 Donnerstag, 23.Dezember.2004, 16:59.
    Re: nach Monaten gruppieren noch ne Frage

      Weil ja morgen Weihnachten ist, hier mal ne Sub mit Testmöglichkeit dazu, liefert die gewünschten Werte in ner Liste (Sollte eigentlich durchsichtig sein, hab die Variablen entsprechend benannt)
      Zum Testen einfach mal ausprobieren, ansonsten den sub-Teil einbauen, Aufrufsyntax und Handhabung aus der Beispielanwendung rausnehmen
      ---schnipp
      <perl>
      # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #
      sub get_vornachdatum { #########################################
      # Aufruf-Syntax: &get_vornachdatum("Datumswert");
      # Rückgabewerte als Liste
      my $datum_input = shift @_; # Übergabewert speichern
      my $t_dat = datum("$datum_input", "intern"); my $t2_dat = datum(jetzt,"intern");
      $datum_input = $datum_input ne "" ? $t_dat : $t2_dat;
      #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
      my ($monzahl_aktuell, $monzahl_vor, $monzahl_nach);
      my ($monname_aktuell, $monname_vor, $monname_nach);
      my ($jahrzahl_aktuell, $jahrzahl_vor, $jahrzahl_nach);
      my %h_monatsnamen = ( "1", "Januar", "2", "Februar", "3", "März", "4", "April", "5", "Mai", "6", "Juni", "7", "Juli", "8", "August", "9", "September", "10", "Oktober", "11", "November", "12", "Dezember");
      #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
      # Monatszahlen errechnen - dabei Januar und Dezember beachten
      $monzahl_aktuell = datum("$datum_input", "Monat");
      $monzahl_vor = $monzahl_aktuell > 1 ? $monzahl_aktuell - 1 : 12;
      $monzahl_nach = $monzahl_aktuell < 12 ? $monzahl_aktuell + 1 : 1;
      # Jahreszahlen berechnen
      $jahrzahl_aktuell = datum($datum_input,"Jahr");
      $jahrzahl_vor = $jahrzahl_aktuell - 1;
      $jahrzahl_nach = $jahrzahl_aktuell + 1;
      #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
      # Monatsnamen generieren
      $monname_aktuell = $h_monatsnamen{$monzahl_aktuell};
      $monname_vor = $h_monatsnamen{$monzahl_vor};
      $monname_nach = $h_monatsnamen{$monzahl_nach};
      #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
      # Rückgabe der berechneten Werte
      return ($monzahl_aktuell, $monzahl_vor, $monzahl_nach, $monname_aktuell, $monname_vor, $monname_nach, $jahrzahl_aktuell, $jahrzahl_vor, $jahrzahl_nach);
      } ###############################################################
      # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #
      out "Kein Wert übergeben, nehme aktuelles Datum<br>" if $datinput eq "";
      out "Übergeben wurde Datumswert: $datinput<br>" if $datinput ne "";
      @subrueck = &get_vornachdatum("$datinput");
      ($mz_a, $mz_v, $mz_n, $mn_a, $mn_v, $mn_n, $jz_a, $jz_v, $jz_n) = @subrueck;
      out "<table cellspacing=2 cellpadding=2><tr bgcolor=#ffacd><th>Datumsteil</th><th>aktuell</th><th>vorheriges</th><th>nachfolgend</th>";
      @l_datteil = ("Monatszahl", "Monatsname", "Jahreszahl");
      foreach $t(@subrueck) {
      
        if ($cnt % 3 == 0 || $cnt == 0){   $cnt_zeile++;   $tr_col = $cnt_zeile % 2 == 0 ? "bgcolor=f0fff0" : "bgcolor=fff0f5" ;   out "</tr><tr $tr_col><td bgcolor=#ffa07a><i>$l_datteil[$cnt/3]</i></td>";
      }
      out "<td>$t</td>";
      $cnt++;
      }
      out<<EOF;
      <form name=datumsteiltest action="$_link" method=post enctype="multipart/form-data">
      <input type=hidden name="htx=" value="$htx">
      Datum eingeben:<br>
      <input type=text name="datinput="> 
      <input type=submit value="Senden">
      </form>
      EOF
      </perl>
      
      ---schnapp
      Hoffe, das hilft weiter
      Ruben
      PS Allen schöne Feiertage - und ein gutes neues 5er im 2ten Jahrtausend :-)


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von mk (966 Beiträge) am Mittwoch, 22.Dezember.2004, 19:46.
    nach Monaten gruppieren

      ich möchte meine Ausgabe nach Monaten grupieren,
      Ich habe ein Datumsfeld.
      Derzeit muß ich den Zeitbereich und´die Überschrift manuell erstellen, was etwas mühsamm ist.
      also aus dem Datum soll eine Text generiert werden.
      z.B."Dezember 2004"
      den Rest kriege ich glaube selber hin.

     Antworten

    Beitrag von Claus (4645 Beiträge) am Mittwoch, 22.Dezember.2004, 19:50.
    Re: nach Monaten gruppieren

      Hi,

      Damit extrahierst Du Monat und Jahr aus dem Datum und speicherst das in $variable

      $variable = datum $mon = datum("$Erfasst","Monat"); $jar = datum("$Erfasst","Jahr");
      

      out"$variable";

      Gruß

      Claus

     Antworten

    Beitrag von Claus (4645 Beiträge) am Mittwoch, 22.Dezember.2004, 19:54.
    Re: nach Monaten gruppieren

      sorry,

      richtig

      $mon = datum("$Erfasst","Monat"); $jar = datum("$Erfasst","Jahr");
      

      out"$mon $jar";

      Claus

     Antworten

    Beitrag von mk (966 Beiträge) am Mittwoch, 22.Dezember.2004, 20:44.
    Re: nach Monaten gruppieren

      gibt es auch eine Standardausgebe um den Monat im Klartext auszugeben?

     Antworten

    Beitrag von mk (966 Beiträge) am Mittwoch, 22.Dezember.2004, 21:55.
    Re: nach Monaten gruppieren

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Mittwoch, 22.Dezember.2004, 22:08.
    Re: nach Monaten gruppieren

     Antworten

    Beitrag von mk (966 Beiträge) am Donnerstag, 23.Dezember.2004, 07:10.
    Re: nach Monaten gruppieren

      Danke
      darauf hätte ich selber kommen müssen.

     Antworten

    Beitrag von mk (966 Beiträge) am Donnerstag, 23.Dezember.2004, 07:36.
    Re: nach Monaten gruppieren noch ne Frage

      und wie ermittele ich den letzten bzw. nächsten Monat?
      so ermittele ich den aktuellen Monat:
      $heute=jetzt ;
      $mon = datum("$heute","Monatname"); $jar = datum("$heute","Jahr");
      $monjahrh="$mon  $jar" ;
      out "<h2>Der aktuelle Monat ist: $monjahrh</h2><br>";
      

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 23.Dezember.2004, 16:59.
    Re: nach Monaten gruppieren noch ne Frage

      Weil ja morgen Weihnachten ist, hier mal ne Sub mit Testmöglichkeit dazu, liefert die gewünschten Werte in ner Liste (Sollte eigentlich durchsichtig sein, hab die Variablen entsprechend benannt)
      Zum Testen einfach mal ausprobieren, ansonsten den sub-Teil einbauen, Aufrufsyntax und Handhabung aus der Beispielanwendung rausnehmen
      ---schnipp
      <perl>
      # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #
      sub get_vornachdatum { #########################################
      # Aufruf-Syntax: &get_vornachdatum("Datumswert");
      # Rückgabewerte als Liste
      my $datum_input = shift @_; # Übergabewert speichern
      my $t_dat = datum("$datum_input", "intern"); my $t2_dat = datum(jetzt,"intern");
      $datum_input = $datum_input ne "" ? $t_dat : $t2_dat;
      #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
      my ($monzahl_aktuell, $monzahl_vor, $monzahl_nach);
      my ($monname_aktuell, $monname_vor, $monname_nach);
      my ($jahrzahl_aktuell, $jahrzahl_vor, $jahrzahl_nach);
      my %h_monatsnamen = ( "1", "Januar", "2", "Februar", "3", "März", "4", "April", "5", "Mai", "6", "Juni", "7", "Juli", "8", "August", "9", "September", "10", "Oktober", "11", "November", "12", "Dezember");
      #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
      # Monatszahlen errechnen - dabei Januar und Dezember beachten
      $monzahl_aktuell = datum("$datum_input", "Monat");
      $monzahl_vor = $monzahl_aktuell > 1 ? $monzahl_aktuell - 1 : 12;
      $monzahl_nach = $monzahl_aktuell < 12 ? $monzahl_aktuell + 1 : 1;
      # Jahreszahlen berechnen
      $jahrzahl_aktuell = datum($datum_input,"Jahr");
      $jahrzahl_vor = $jahrzahl_aktuell - 1;
      $jahrzahl_nach = $jahrzahl_aktuell + 1;
      #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
      # Monatsnamen generieren
      $monname_aktuell = $h_monatsnamen{$monzahl_aktuell};
      $monname_vor = $h_monatsnamen{$monzahl_vor};
      $monname_nach = $h_monatsnamen{$monzahl_nach};
      #. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#
      # Rückgabe der berechneten Werte
      return ($monzahl_aktuell, $monzahl_vor, $monzahl_nach, $monname_aktuell, $monname_vor, $monname_nach, $jahrzahl_aktuell, $jahrzahl_vor, $jahrzahl_nach);
      } ###############################################################
      # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #
      out "Kein Wert übergeben, nehme aktuelles Datum<br>" if $datinput eq "";
      out "Übergeben wurde Datumswert: $datinput<br>" if $datinput ne "";
      @subrueck = &get_vornachdatum("$datinput");
      ($mz_a, $mz_v, $mz_n, $mn_a, $mn_v, $mn_n, $jz_a, $jz_v, $jz_n) = @subrueck;
      out "<table cellspacing=2 cellpadding=2><tr bgcolor=#ffacd><th>Datumsteil</th><th>aktuell</th><th>vorheriges</th><th>nachfolgend</th>";
      @l_datteil = ("Monatszahl", "Monatsname", "Jahreszahl");
      foreach $t(@subrueck) {
      
        if ($cnt % 3 == 0 || $cnt == 0){   $cnt_zeile++;   $tr_col = $cnt_zeile % 2 == 0 ? "bgcolor=f0fff0" : "bgcolor=fff0f5" ;   out "</tr><tr $tr_col><td bgcolor=#ffa07a><i>$l_datteil[$cnt/3]</i></td>";
      }
      out "<td>$t</td>";
      $cnt++;
      }
      out<<EOF;
      <form name=datumsteiltest action="$_link" method=post enctype="multipart/form-data">
      <input type=hidden name="htx=" value="$htx">
      Datum eingeben:<br>
      <input type=text name="datinput="> 
      <input type=submit value="Senden">
      </form>
      EOF
      </perl>
      
      ---schnapp
      Hoffe, das hilft weiter
      Ruben
      PS Allen schöne Feiertage - und ein gutes neues 5er im 2ten Jahrtausend :-)

     Antworten

    Beitrag von mk (966 Beiträge) am Donnerstag, 23.Dezember.2004, 17:48.
    Re: nach Monaten gruppieren noch ne Frage

      Danke,
      daran hab ich zu knabbern.

     Antworten

    Beitrag von mk (966 Beiträge) am Donnerstag, 23.Dezember.2004, 19:32.
    Re: nach Monaten gruppieren noch nicht ganz richtig

      bei der Jahr Berechnung wird der Monat nicht berücksichtigt.
      z.B.
      heute Dez 2004
      vor Nov 2004
      nach Jan 2005

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 24.Dezember.2004, 11:43.
    Re: nach Monaten gruppieren noch nicht ganz richtig

      nee,nee - das ist schon richtig, es wird nicht das vorherige Datum komplett angegeben sondern die Rückgabewerte sind immer:
      aktuell bzw. vom übergebenen Wert, also heute bspw. Tag: 24, Monat: 12, Jahr 2004
      vor sind dann für jeden einzelnen Wert die Vor-Werte, also vor-Tag (23), vor-Monat (11), vor-Jahr (2003)
      nach ebenfalls, nach-Tag (25) - nach-Monat (1) - nach-Jahr (2005)
      Schau dir das mal unter http://baseportal.de/cgi-bin/baseportal.pl?htx=/hempelr/testdir/datum_vornach an, da kannst du dann jedes beliebige Datum eingeben (leider funzen in bp nur Datumswerte runter bis 1.1.1900 und rauf 31.12.2037 da muss CB wohl mal noch bischen am Datum feilen...) Schau dir da mal dann die Ausgabe-Tabelle an, vielleicht verstehst du meine Intuition....;-)
      Die Einzelnen Teile kann man nicht zu nem neuen Gesamtdatum hintereinander zusammensezten, das müßte man dann anders machen. Vielmehr bietet die Sub die Möglichkeit, zu jedem beliebigen Datumswert die vorwerte der einzelnen Teile zu haben. Ein denkbares Einsatzbeispiel wäre bspw. für die Blätterlinks in nem Kalender oder auch für Filterkriterien zum Datensatzholen bei Auswahl vorheriger/aktueller/nächster Tag, voriger/aktueller/nächster Monat, voriges/aktuelles/nächstes Jahr - also direkt für nen Eventkalender mit Auswahllinks, die sich dann elektrisch anpassen.

     Antworten

    Beitrag von mk (966 Beiträge) am Freitag, 24.Dezember.2004, 12:45.
    Re: nach Monaten gruppieren noch nicht ganz richtig

      jetzt noch zur verdeutlichung was ich wollte.
      Ich trage bei mir alle Bücher auch mit Erscheinungsdatum ein.
      Daraus möchte ich automatisch 3 Gruppen bilden.
      Bücher die im letzten Monat erschienen
      Bücher des aktuellen Monats - das geht
      Bücher ab nächsten Monat.

      Gerade jetzt zur Jahreswende ist dies schwierig.

     Antworten

    Beitrag von mk (966 Beiträge) am Samstag, 25.Dezember.2004, 18:31.
    Re: nach Monaten gruppieren ist geschaft

      ich hab mal selber gegrübelt, und so geschaft:
      $jz_n2 = $monzahl_aktuell > 11 ? $jz_n : $jar;
      $jz_v2 = $monzahl_aktuell < 2 ? $jz_v : $jar;
      

     Antworten


     
 Liste der Einträge von 26325 bis 26400: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.10s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!