Kostenlose Unterprogramme bei123.de
Datenbank-Design & bp-Programmierung & Webtools
Webmaster: Harald Fehde & Website: bei123.de

Weitere kostenlose Codeschnipsel und Anwendungen finden Sie:
Alles aus baseportal herausholen bei123.de

sum_sort_grp

Wie erstelle ich eine Liste mit sortierten Werten gruppiert und summiert nach einer Gruppe ?

Als Beispielsdatei wird wieder die Datei [Autos] verwendet (nähere Infos bei list_sort_optionen).

Hier geht es um die grundlegenden Dinge, deshalb wird hier nur der generelle Code erläutert und nicht nochmals ein komplettes Beispiel gezeigt.
Mit den Unterprogramm sum_sort_grp kann man eine spezielle SQL-ähnliche Abfrage formulieren und definiert dabei im Ergebnis einen HASH, der den Namen der Gruppe und die Summe der Gruppe enthält.

Der Aufruf des Unterprogramms erfolgt nach dem Muster:
%Dein_HASH=&sum_sort_grp("DATEI","GRUPPE","FELD","WERT");
HASH-Werte können über die bekannte Syntax $Dein_HASH{'wert'} ausgelesen werden.

Nachfolgenden zwei HASH-Beispiele in Blau und Rot.:


°grün0grün0Gelb602003.03.28,00:00.00#50BMW7000

Programmcode/Parameter

# Zunächst der Code für das Unterprogramm - für BLAU wird die erste if-Bedingung wirksam, für ROT die zweite if-Bedingung - dementsprechend ist auch der Dateizugriff über "get" verschieden.

<html><head></head><body>
<perl>sub sum_sort_grp
{%g_sum="",my $db=$_[0],my $g_f=$_[1],my $c_f=$_[2],my $s_f=$_[3];
if($s_f eq ""){get["Id","==","*","sort=$g_f,$c_f"],"$db";}
if($s_f ne ""){get["$g_f","==!","$s_f","sort=$g_f,$c_f"],"$db";}
while(get_next("$db")){$g_sum{$$g_f}+="$$c_f";}
return (%g_sum);# Hash wird mit Summenergebnis zurückgegeben
}
</perl>

# Es folgen die beiden Beispiele für den Aufruf des Unterprogrammes:

# Beispiel BLAU:

<perl>%Summen_Marken=&sum_sort_grp("Autos","Marke","Preis","");</perl>
# der Hash enthält alle Automarken und Preissummen, da der letzte Parameter leer ist.

# Beispiel ROT:

<perl>%Summe_Marke=&sum_sort_grp("Autos","Marke","Preis","Ford");</perl>
# der Hash enthält nur die Automarke "Ford" und die Preissumme, da der letzte Parameter "Ford" ist.

# Anzeige der beiden Beispiele als ganzer HASH :

<perl>
out "<font face=Arial size=2 color=blue><b>";
out %Summen_Marken ;
out "</b></font><hr>";
out "<font face=Arial size=2 color=red><b>";
out %Summe_Marke;
out "</b></font>";
</perl></body></html>

# Erläuterung:

out $Summen_Marken{Ford};

würde die Summe für alle Ford's ausgeben
und...

out $Summe_Marke{VW};

wäre LEER, da dieser HASH ja nur Ford enthält.

Weiter Infos zum Thema HASH findet man hier

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