Mitgliederstatistik Jahrgänge nach Eigenschaften

Hier verraten JVerein-Benutzer ihre Tricks und Tips zur JVerein

Moderator: heiner

Antworten
Zed_Gecko
Beiträge: 4
Registriert: Montag 7. Juli 2014, 09:45

Mitgliederstatistik Jahrgänge nach Eigenschaften

Beitrag von Zed_Gecko »

Hallo,
Für unseren Sportverein mit mehreren Abteilungen für verschiedene Sportarten benötigen wir die Statistik nach Jahrgängen für jede Abteilung gesondert.
Daher habe ich ein kleines Autohotkey-Script geschrieben, das diese aus dem als CSV-Datei exportierten Mitgliederbestand erstellt.
(Autohotkey ist eine Windows-exclusive Scriptsprache: http://ahkscript.org/)

Erforderliche Vorarbeiten:

Zunächst in JVerein unter "Auswertung Mitglieder" den Mitgliederbstand in eine CSV-Datei exportieren.
Darauf achten, nur angemeldete Mitglieder zu exportieren und den Stichtag passend zum Stichtag der Statistik zu wählen.

Danach die CSV-Datei in Excel/Calc/etc. bearbeiten.
Alle Spalten löschen, bis auf "mitglied_geburtsdatum" und Spalten die mit "mitglied_eigenschaft_" beginnen.
Diese exportierte und gekürzte Mitglieder-Datenbank-Tabelle wieder als CSV-Datei speichern.

Dann das Script starten und diese Datei im folgenden Dialog auswählen. Im nächsten Dialog das Zielverzeichnis für die Statistiken auswählen.
Die Jahrgangsstatistiken nach Eigenschaften werden in diesem Verzeichnis als CSV-Datei erstellt.

Hier das Script(alternativ als Anhang):

Code: Alles auswählen

#NoEnv
#SingleInstance force

InfoTxt =
(
JVerein Jahrgangsstatistik nach Eigenschaften erstellen.

Vorarbeiten erforderlich:

Zunächst in JVerein unter "Auswertung Mitglieder" den Mitgliederbstand in eine CSV-Datei exportieren.
Darauf achten, nur angemeldete Mitglieder zu exportieren und den Stichtag passend zum Stichtag der Statistik zu wählen.

Danach die CSV-Datei in Excel/Calc/etc. bearbeiten.
Alle Spalten löschen, bis auf "mitglied_geburtsdatum" und Spalten die mit "mitglied_eigenschaft_" beginnen.
Diese exportierte und gekürzte Mitglieder-Datenbank-Tabelle wieder als CSV-Datei speichern.

Diese Datei im folgenden Dialog auswählen. Im nächsten Dialog das Zielverzeichnis für die Statistiken auswählen.
Die Jahrgangsstatistiken nach Eigenschaften werden in diesem Verzeichnis als CSV-Datei erstellt.
)
MsgBox , 1, JVerein Jahrgangsstatistik nach Eigenschaften erstellen, %InfoTxt%,
IfMsgBox, Cancel
{
	MsgBox, Programm beendet.
	ExitApp
}

FileSelectFile, SourceFile, 3,, Die exportierte und gekürzte Mitglieder-Datenbank-Tabelle als csv-Datei auswählen, (*.csv)
if SourceFile =
{
    MsgBox, Keine Datei ausgewählt. Programm beendet.
	ExitApp
}


FileSelectFolder, DestPath,, 3, Das Zielverzeichnis für die Statistik (als CSV-Dateien) auswählen.
if DestPath =
{
    MsgBox, Kein Zielverzeichnis ausgewählt. Programm beendet.
	ExitApp
}

I_Eigenschaften := 0

Loop, READ, %Sourcefile%
{
	If (A_Index = 1)
	{
		Loop, parse, A_LoopReadLine, `;
		{
			if (A_Loopfield = "mitglied_geburtsdatum")
				I_Birthday := A_Index
			IfInString, A_Loopfield, mitglied_eigenschaft_
			{
				I_Eigenschaften += 1
				E_%I_Eigenschaften%_Field := A_Index
				E_%I_Eigenschaften%_Name := A_Loopfield
			}
		}
		break
	}
}

Loop, %I_Eigenschaften%
{
	makestat(SourceFile, DestPath, I_Birthday, E_%A_Index%_Field, E_%A_Index%_Name)
}

MsgBox, Fertig!
Run, Explorer %DestPath%
ExitApp
return


makestat(SourceFile, DestPath, I_Birthday, Field, Name)
{
	CurrStat := Object()
	Loop, READ, %Sourcefile%
	{
		Match := 0
		BD := 0
		If (A_Index = 1)
			continue
		Loop, parse, A_LoopReadLine, `;
		{
			if (A_Index = Field)
			{
				if (A_Loopfield = "X")
				{
					Match := 1
				}
			}
			if (A_Index = I_Birthday)
			{
				StringRight, BD, A_LoopField, 4
			}
		}
		If ( Match = 1)
		{
			
			If CurrStat.HasKey(BD)
				CurrStat[BD] := CurrStat[BD] + 1
			else
				CurrStat[BD] := 1
		}
	}
			StringTrimLeft, Name, Name, 21
			CurrFile := DestPath . "\" . Name . ".csv"
			FileDelete, %CurrFile%
			Stat := Name . "`n`r" 
			for JG , ANZ in CurrStat
			{
				Stat .= JG . "`;" . ANZ . "`;" . "`n`r" 
			}
			FileAppend, %Stat%, %CurrFile%
	return
}
Dateianhänge
JVerein_Mitgliederstatistik_nach_Eigenschaften_AHK.zip
AHK-Script JVerein_Mitgliederstatistik_nach_Eigenschaften
(1.28 KiB) 313-mal heruntergeladen
Antworten