Forum | | | |  Christof Neuß | Tja, weiß nicht, ob das so einfach ist. Ich habe ein relativ simples Programm. Das setze ich zur Abfrage bestimmter Daten ein. Es hat kein Menü. Es werden nur ein paar Buttons angezeigt. Außerdem erscheint je nach Buttonklick ein Text in einem Richeditfeld. Schließlich werden noch ein paar externe Programme (Exceltabellen, EXE-Dateien) gestartet (aber nur wenn ein bestimmter Button gedrückt wurde, nicht automatisch). Das Ding ist auch schon länger im Einsatz. Habe mit XProfan 10 und XPSE compiliert etc. Alles prima. Jetzt habe ich dasselbe Programm mit XProfan 11 und XPSE compiliert und was passiert: Gleich beim Start schmiert das Programm mit der üblichen Windows-Fehlermeldung ab. Fährt gar nicht erst hoch. Ihr wisst schon, die Meldung wo Windows dann fragt, ob ein Bericht gesendet werden soll.
Hat das hier schon mal jemand beobachtet oder weiß sogar eine Lösung?
Danke und Gruß
Christof |
| | | | |
| |  | Ich vermute, es liegt am Programm!  |
| | | | |
| |  E.T. | | | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 18.07.2009 ▲ |
| |
| |  | Die Minimalbeispiele sind auch nicht mehr, wass sie mal waren.  |
| | | | |
| |  Christof Neuß | Sorry Leute, erst fange ich ein Thema an und dann komme ich lange nicht dazu, hier reinzuschauen. Klar, ohne Quelltext ist das schlecht möglich zu testen.
Ich hänge den hier mal an. Vielleicht fällt Euch ja was auf. Aber nicht zu viel Zeit darauf verwenden. Was mich halt etwas stutzig macht, ist, dass das Programm ohne Murren compiliert wird, aber dann nicht läuft.
Bei dem Quellcode nicht erschrecken. Richtige Programmierer werden sich wahrscheinlich die Haare raufen. Ist noch aus meinen Anfängen mit XProfan. Ich übe halt noch. Aber was einmal funktioniert... 
Danke und Gruß
Christof
Version 1.20 16.07.2008
- automatische Anlage ########_Bankname.BVR
- erweiterte Plausibilitätsprüfungen
Version 1.30 17.07.2008
- Prüfung, ob AZSK04, AZSK05 und AZSKER vorhanden sind, da sonst in KAP3 nicht richtig eingelesen wird
--> Stand 17.07.2008 noch nicht an BVR!!!
--> 03.08.2008 noch Änderungen wg. "and" gemacht (Bedingungen müssen in Klammern), anschl. an KWA und BVR
--> 13.08.2008 nur neue Version kompiliert und an Frau Noack (BVR)
Version 1.40 26.02.2009
Anpassung Text CBS --> Nur noch 01.12.2008 - 31.12.2008
Version 1.41 10.03.2009
Anpassung einiger Texte nach Vorlage von Frau Spannagl
Version 1.42 04.05.2009
Angabe der AZSK13a bei BB3-Banken
Version 1.43 22.07.2009
IST-Risikokosten statt IST-Risikokosten (PKB) und Provisionsertrag statt Provisionsbeitrag
{$cleq}
{$res icon "ProFi.ico"}
$P+
$H Windows.ph
$H ocx2.ph
$I ocx2.inc
SET("ERRORLEVEL",0)
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
DECLARE RZVersion$
DECLARE BUTTON1&
DECLARE BUTTON2&
DECLARE BUTTON3&
DECLARE BUTTON4&
DECLARE BUTTON5&
DECLARE BUTTON6&
DECLARE BUTTON7&
DECLARE BUTTON8&
DECLARE RICHEDIT1&
DECLARE Weiter&
DECLARE Textbereich#
DECLARE TextListBox&, TextGridBox&
DECLARE Kennwort$
DECLARE Befehl$
DECLARE Saetze%
DECLARE Anz%
DECLARE Datei$
DECLARE Wahl$
DECLARE RText$, RText2$
DECLARE Arial10%
DECLARE Kennungsdatei$
DECLARE Pruefung& 0=nicht durchgeführt 1=Fehler 2=Alles ok
WINDOWSTYLE 31
CLS 16711680
WINDOWTITLE "BVR-ProFi - Professionalisierung Firmenkundengeschäft - Datenerhebung Vers. 1.43"
WINDOW 152,41-700,634
SET("TRUECOLOR",1)
DECLARE ENDE%
PROC PruefProt ---------------------------------------------------------------------------> Dialoganfang
DECLARE DLG3&, DIALOGENDE%, Druckzeile$
DECLARE BUTTON31&
DECLARE BUTTON32&
DECLARE BUTTON33&
DECLARE MULTIEDIT31&
DECLARE InfoAbfragen&,CBSDaten&,ExcelDateien&
DECLARE ExcelWert$
DECLARE RXText$, RXText2$
DECLARE KBeitrag!,PBeitrag!,PBAufwand!,kRisiko!,ISTRisiko!,RisikoErg!,BlankoIA!,BlankoRV!
Let Pruefung&=2 Zunächst ist die Prüfung gestartet und alles ok (=2)
Let InfoAbfragen&=0
Let CBSDaten&=0
Let ExcelDateien&=0
Let ExcelWert$="Keine Plausibilitäten gefunden!"
Let Weiter&=0
DLG3&=CREATE("DIALOG",%HWND,"Datenprüfprotokoll",133,46,729,614)
MULTIEDIT31& =@CREATE("RICHEDIT",DLG3&,"Prüfprotokoll BVR-ProFi - Professionalisierung Firmenkundengeschäft",0031,0041,0678,-0482)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
--- 1. Vollständigkeit "
if RZVersion$="BB3"
ClearList
AddFiles *"AZSK02.dbf"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Info-Abfrage ZSK02, Datei AZSK02.DBF fehlt!"
InfoAbfragen&=1
endif
ClearList
AddFiles *"AZSK03.dbf"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Info-Abfrage ZSK03, Datei AZSK03.DBF fehlt!"
InfoAbfragen&=1
endif
ClearList
AddFiles *"AZSK04.dbf"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Info-Abfrage ZSK03, Datei AZSK04.DBF fehlt!"
InfoAbfragen&=1
endif
ClearList
AddFiles *"AZSK05.dbf"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Info-Abfrage ZSK03, Datei AZSK05.DBF fehlt!"
InfoAbfragen&=1
endif
ClearList
AddFiles *"AZSK12.dbf"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Info-Abfrage ZSK12, Datei AZSK12.DBF fehlt!"
InfoAbfragen&=1
endif
ClearList
AddFiles *"AZSK13.dbf"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Info-Abfrage ZSK13, Datei AZSK13.DBF fehlt!"
InfoAbfragen&=1
endif
ClearList
AddFiles *"azsk20.dbf"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Info-Abfrage ZSK20, Datei AZSK20.DBF fehlt!"
InfoAbfragen&=1
endif
ClearList
AddFiles *"AZSK21.dbf"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Info-Abfrage ZSK21, Datei AZSK21.DBF fehlt!"
InfoAbfragen&=1
endif
ClearList
AddFiles *"AZSKER.dbf"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Info-Abfrage ZSK21, Datei AZSKER.DBF fehlt!"
InfoAbfragen&=1
endif
if InfoAbfragen&=0
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Alle geforderten Info-Abfragen sind vorhanden!"
else
Let Pruefung&=1
endif
else
ClearList
AddFiles *"ProFiEin.CSV"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
IDA-Abfrage ProFiEin, Datei ProFiEin.CSV fehlt!"
InfoAbfragen&=1
endif
ClearList
AddFiles *"ProFiKdn.CSV"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
IDA-Abfrage ProFiKdn, Datei ProFiKdn.CSV fehlt!"
InfoAbfragen&=1
endif
ClearList
AddFiles *"ProFiaKK.CSV"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
IDA-Abfrage ProFiAKK, Datei ProFiAKK.CSV fehlt!"
InfoAbfragen&=1
endif
if InfoAbfragen&=0
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Alle geforderten IDA-Abfragen sind vorhanden!"
else
Let Pruefung&=1
endif
endif
ClearList
AddFiles *"ProFi*.TXT"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Keine ProFi*.TXT-Dateien gefunden. CBS-Exporte fehlen!"
CBSDaten&=1
endif
if CBSDaten&=0
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
CBS-Exporte sind vorhanden!"
else
Let Pruefung&=1
endif
if Pruefung&=1
MessageBox("Die Überprüfung der Daten hat gravierende Fehler ergeben. Bitte bearbeiten Sie alle Menüpunkte und starten Sie dann den Punkt >>(6) Prüfung und Verschlüsselung der Daten<< neu.","Achtung!",48)
DESTROYWINDOW(DLG3&)
Return "Abbruch"
endif
ClearList
AddFiles *"ProFiDat1.XLS"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Keine ProFiDat1.XLS-Datei gefunden. Excel-Erfassungsdatei fehlt!"
ExcelDateien&=1
endif
ClearList
AddFiles *"ProFiDat2.XLS"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Keine ProFiDat2.XLS-Datei gefunden. Excel-Erfassungsdatei fehlt!"
ExcelDateien&=1
endif
ClearList
AddFiles *"ProFiDat3.XLS"
if %GetCount=-1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Keine ProFiDat3.XLS-Datei gefunden. Excel-Erfassungsdatei fehlt!"
ExcelDateien&=1
endif
if ExcelDateien&=0
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Excel-Erfassungsdateien sind vorhanden!"
else
Let Pruefung&=1
endif
if Pruefung&=1
MessageBox("Die Überprüfung der Daten hat gravierende Fehler ergeben. Bitte bearbeiten Sie alle Menüpunkte und starten Sie dann den Punkt >>(6) Prüfung und Verschlüsselung der Daten<< neu.","Achtung!",48)
DESTROYWINDOW(DLG3&)
Return "Abbruch"
endif
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
--- 2. Plausibilitäten Erfassungsdateien "
repaint
if ExcelDateien&=0
ocxInit()
clearList
AddFiles *"ProFiDat1.XLS"
Let Datei$="*"+ListboxItem$(%GetCount)
var Excel&=ocxCreate("Excel.Application")
var Workbooks&=ocxGet(Excel&,"Workbooks")
var NewBook&=ocxMethod(WorkBooks&,"Open",Datei$)
var Sheet&=ocxGet(NewBook&,"ActiveSheet")
var Sheet&=ocxGet(NewBook&,"Sheets",1)
var Range&=ocxGet(Sheet&,"Range","*A1")
Let ExcelWert$=ocxGet(Range&,"Value")
ocxPut(NewBook&,"Saved",1)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
ProFiDat1: "+ExcelWert$
if instr("PLAUSIBILITÄTEN ERFÜLLT",upper$(ExcelWert$))=0
Let Pruefung&=1
endif
clearList
AddFiles *"ProFiDat2.XLS"
Let Datei$="*"+ListboxItem$(%GetCount)
Let NewBook&=ocxMethod(WorkBooks&,"Open",Datei$)
Let Sheet&=ocxGet(NewBook&,"ActiveSheet")
Let Sheet&=ocxGet(NewBook&,"Sheets",1)
Let Range&=ocxGet(Sheet&,"Range","*A1")
Let ExcelWert$=ocxGet(Range&,"Value")
ocxPut(NewBook&,"Saved",1)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
ProFiDat2: "+ExcelWert$
if instr("PLAUSIBILITÄTEN ERFÜLLT",upper$(ExcelWert$))=0
Let Pruefung&=1
endif
clearList
AddFiles *"ProFiDat3.XLS"
Let Datei$="*"+ListboxItem$(%GetCount)
Let NewBook&=ocxMethod(WorkBooks&,"Open",Datei$)
Let Sheet&=ocxGet(NewBook&,"ActiveSheet")
Let Sheet&=ocxGet(NewBook&,"Sheets",1)
Let Range&=ocxGet(Sheet&,"Range","*A1")
Let ExcelWert$=ocxGet(Range&,"Value")
ocxPut(NewBook&,"Saved",1)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
ProFiDat3: "+ExcelWert$
if instr("PLAUSIBILITÄTEN ERFÜLLT",upper$(ExcelWert$))=0
Let Pruefung&=1
endif
ocxMethod(Excel&,"Quit")
ocxRelease(Range&,Sheet&,NewBook&,WorkBooks&,Excel&)
ocxDeInit()
else
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Excel-Erfassungsdateien konnten nicht geprüft werden, da nicht (vollständig) vorhanden!"
Let Pruefung&=1
endif
if Pruefung&=1
MessageBox("Die Überprüfung der Daten hat Fehler ergeben. Bitte bearbeiten Sie alle Menüpunkte und starten Sie dann den Punkt >>(6) Prüfung und Verschlüsselung der Daten<< neu.","Achtung!",48)
DESTROYWINDOW(DLG3&)
Return "Abbruch"
endif
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
--- 3. Mengengerüste "
@Set("Decimals",0)
if RZVersion$="BB3"
ClearList
AddFiles *"AZSK*.dbf"
if %GetCount>=0
whileloop %GetCount+1
Let Datei$=upper$(ListBoxItem$(&LOOP-1))
Saetze%=db("Open", #1, Datei$)
Let Datei$=Mid$(Datei$,Instr("AZSK",Datei$),12)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Datensätze "+Datei$+": "+Format$("###,###,###",Saetze%)
db("Close",#1)
endwhile
else
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Keine DBF-Dateien gefunden!!!"
endif
else
ClearList
AddFiles *"ProFIKdn.CSV"
AddFiles *"ProFIEin.CSV"
AddFiles *"ProFIAKK.CSV"
TextListBox& = @Create("Richedit", %hWnd, "", 5, 5, 5, 5)
if %GetCount>=0
whileloop %GetCount+1
Let RXText2$=""
Let Saetze%=0
Let Datei$=upper$(ListBoxItem$(&LOOP-1))
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Datensätze "+Mid$(Datei$,Instr("\PROFI",Upper$(Datei$))+1,12)+": "
Let RXText$=@GetText$(MULTIEDIT31&)
assign #1,datei$
reset #1
whilenot eof(#1)
input #1, RXText2$
Let Saetze%=Saetze%+1
if Saetze%/1000=Int(Saetze%/1000)
SetText MULTIEDIT31&, RXText$+Format$("###,###,###",Saetze%)
endif
endwhile
close #1
Let Saetze%=Saetze%-2
SetText MULTIEDIT31&, RXText$+Format$("###,###,###",Saetze%)
endwhile
else
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Keine CSV-Dateien gefunden!!!"
endif
DestroyWindow(TextListBox&)
endif
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
--- 4. CBS-Werte "
clearList
AddFiles *"ProFi*.TXT"
TextListBox& = @Create("Richedit", %hWnd, "", 5, 5, 5, 5)
TextGridBox&=Create("Grid",10,0)
Let Saetze%=4
Set("LISTDEL",chr$(9))
if %GetCount>=0
whileloop %GetCount+1
ClearList TextListBox&
ClearList TextGridBox&
Let Datei$=upper$(ListBoxItem$(&LOOP-1))
Dim Textbereich#, @FileSize(Datei$) + 2
ReadText Textbereich#, Datei$
Let Datei$=Mid$(Datei$,Instr("\PROFI",Datei$)+1,20)
if Saetze%=4
if &LOOP=%GetCount+1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
"+Datei$
else
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
"+Datei$+", "
endif
Saetze%=1
else
if &LOOP=%GetCount+1
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+Datei$
else
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+Datei$+", "
endif
Saetze%=Saetze%+1
endif
@SendMessage(TextListBox&, $000C, 0, Textbereich#)
RXText$=GetLine$(TextListBox&,GetLineCount(TextListBox&)-2)
Dispose Textbereich#
AddString(TextGridBox&,RXText$)
Let KBeitrag! =KBeitrag! +Val(@Translate$(GetText$(TextGridBox&,0,2),",","."))
Let PBeitrag! =PBeitrag! +Val(@Translate$(GetText$(TextGridBox&,0,3),",","."))
Let PBAufwand!=PBAufwand!+Val(@Translate$(GetText$(TextGridBox&,0,4),",","."))
Let kRisiko! =kRisiko! +Val(@Translate$(GetText$(TextGridBox&,0,5),",","."))
Let ISTRisiko!=ISTRisiko!+Val(@Translate$(GetText$(TextGridBox&,0,6),",","."))
Let RisikoErg!=RisikoErg!+Val(@Translate$(GetText$(TextGridBox&,0,7),",","."))
Let BlankoIA! =BlankoIA! +Val(@Translate$(GetText$(TextGridBox&,0,8),",","."))
Let BlankoRV! =BlankoRV! +Val(@Translate$(GetText$(TextGridBox&,0,9),",","."))
wend
endif
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Konditionsbeitrag: "+Format$("ÂÂÂ,ÂÂÂ,ÂÂ0.00 Euro",KBeitrag!*12)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Provisionsertrag: "+Format$("ÂÂÂ,ÂÂÂ,ÂÂ0.00 Euro",PBeitrag!*12)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Provisionsaufwand: "+Format$("ÂÂÂ,ÂÂÂ,ÂÂ0.00 Euro",PBAufwand!*12)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
kalk. Risikokosten: "+Format$("ÂÂÂ,ÂÂÂ,ÂÂ0.00 Euro",kRisiko!*12)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
IST-Risikokosten: "+Format$("ÂÂÂ,ÂÂÂ,ÂÂ0.00 Euro",ISTRisiko!*12)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Risikoergebnis: "+Format$("ÂÂÂ,ÂÂÂ,ÂÂ0.00 Euro",RisikoErg!*12)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Netto-Blankovolumen IA: "+Format$("ÂÂÂ,ÂÂÂ,ÂÂ0.00 Euro",BlankoIA!)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Netto-Blankovolumen RV: "+Format$("ÂÂÂ,ÂÂÂ,ÂÂ0.00 Euro",BlankoRV!)
DestroyWindow(TextListBox&)
DestroyWindow(TextGridBox&)
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Achtung: Addiert wurden die Summenzeilen der einzelnen Dateien. Evtl. sind auch noch Beträge von Dummy-Kunden enthalten, die natürlich nicht in die ProFi-Auswertung übernommen werden."
SetText MULTIEDIT31&, @GetText$(MULTIEDIT31&)+"
Dieses Prüfprotokoll dient nur der generellen Überprüfung der erfassten
Daten und vorhandenen Dateien. Bei der Übertragung in das Auswertungstool
werden einige Werte nicht übernommen bzw. anders berechnet. Dadurch kann
es zu Unterschieden zwischen den hier angegebenen und den später im Workshop
gezeigten Werten kommen.
Bitte achten Sie vor allem darauf, dass die gelieferten Dateien vollständig vorhanden
und nicht leer sind. "
BUTTON31& =@CREATE("BUTTON",DLG3&,"Drucken",0415,0533,0070,0030)
BUTTON32& =@CREATE("BUTTON",DLG3&,"Abbruch",0515,0533,0070,0030)
BUTTON33& =@CREATE("BUTTON",DLG3&,"Weiter" ,0615,0533,0070,0030)
SETFOCUS(DLG3&)
DIALOGENDE%=0
WHILENOT DIALOGENDE%
WAITINPUT
If %KEY=2
DIALOGENDE%= 1
ELSEIF GETFOCUS(BUTTON31&) Drucken
if MessageBox("Soll ein Ausdruck gestartet werden?","Frage",292)=6 JA
StartPrint "Pruefprotokoll"
if %Printing
UseFont "Arial",16,0,1,0,0
Whileloop GetLineCount(multiedit31&) Anzahl Zeilen
druckzeile$=GetLine$(multiedit31&,&loop-1) einzelne Zeilen auslesen
druckzeile$=left$(druckzeile$,len(druckzeile$)-1)
if InStr("---",druckzeile$)
UseFont "Arial",16,0,1,0,0
elseif InStr("Prüfprotokoll BVR-ProFi - Professionalisierung Firmenkundengeschäft",druckzeile$)
UseFont "Arial",20,0,1,0,1
else
UseFont "Arial",12,0,0,0,0
endif
DrawText 50,20*&LOOP, druckzeile$
Wend
endif
EndPrint
endif
ELSEIF GETFOCUS(BUTTON32&) Abbruch
if MessageBox("Sollen Verschlüsselung und Packen der Daten abgebrochen werden?","Frage",292)=6 JA
DIALOGENDE%= 1
endif
ELSEIF GETFOCUS(BUTTON33&) Weiter
DIALOGENDE%= 1
Weiter&=1
ELSEIF GETFOCUS(MULTIEDIT31&) MULTIEDIT
ENDIF
ENDWHILE
DESTROYWINDOW(DLG3&)
ENDPROC --------------------------------------------------------------------------------> Dialogende
------------------- Hauptprogrammschleife
Let Pruefung&=0 Prüfung und Verschlüsselung der Daten wurde nicht durchgeführt
clearList
AddFiles "*.BVR"
if %GetCount<0
if FileExists("Daten\ProFiDat1.xls")
clearList
AddFiles *"ProFiDat1.XLS"
Let Datei$="*"+ListboxItem$(%GetCount)
ocxInit()
var Excel&=ocxCreate("Excel.Application")
var Workbooks&=ocxGet(Excel&,"Workbooks")
var NewBook&=ocxMethod(WorkBooks&,"Open",Datei$)
var Sheet&=ocxGet(NewBook&,"Sheets",1)
var Range&=ocxGet(Sheet&,"Range","*A2")
Let Kennungsdatei$=ocxGet(Range&,"Value")
ocxPut(NewBook&,"Saved",1)
ocxMethod(Excel&,"Quit")
sleep 200
ocxRelease(Range&,Sheet&,NewBook&,WorkBooks&,Excel&)
ocxDeInit()
sleep 200
Let Kennungsdatei$=$Drive+Kennungsdatei$
WRITEINI $Drive+Kennungsdatei$,"Hinweis","Achtung "="Diese Datei nicht löschen. Sie wird zur Identifikation benötigt!"
MessageBox("Identifikationsdatei "+Kennungsdatei$+" wurde erstellt. Programm wird beendet.","Meldung",0)
Ende%=1
else
MessageBox("Identifikationsdatei konnte nicht erstellt werden. ProFiDat1.xls nicht gefunden! Programm wird beendet.","Meldung",0)
Ende%=1
endif
endif
if FileExists("Daten\Profi.ini")
RZVersion$=ReadIni$("Daten\Profi.INI","Rechenzentrum","Version")
elseif Ende%<>1
ClearList
AddString "BB3-/bank21-Bank"
AddString "AGREE-Bank"
RZVersion$=ListBox$("Bitte wählen Sie:",5)
if RZVersion$="BB3-/bank21-Bank"
WRITEINI "Daten\Profi.INI","Rechenzentrum","Version"="BB3"
RZVersion$="BB3"
elseif RZVersion$="AGREE-Bank"
WRITEINI "Daten\Profi.INI","Rechenzentrum","Version"="AGREE"
RZVersion$="AGREE"
endif
endif
SetText %HWND, GetText$(%HWND)+" "+RZVersion$
Hier kann ggf. Ihr Menü hin
if RZVersion$="BB3"
BUTTON1& = CREATE("BUTTON",%HWND,"(1) Info-Abfragen BB3/bank21 erstellen",0030,0021,0380,0030)
else
BUTTON1& = CREATE("BUTTON",%HWND,"(1) IDA-Abfragen erstellen",0030,0021,0380,0030)
endif
BUTTON2& = CREATE("BUTTON",%HWND,"(2) Export-Dateien CBS erstellen",0030,0061,0380,0030)
BUTTON3& = CREATE("BUTTON",%HWND,"(3) Erfassung Bankdaten",0080,0101,0380,0030)
BUTTON4& = CREATE("BUTTON",%HWND,"(4) Beantwortung Fragebogen",0080,0141,0380,0030)
BUTTON5& = CREATE("BUTTON",%HWND,"(5) Einschätzung Marktattraktivität/Wettbewerbsstellung",0080,0181,0380,0030)
BUTTON6& = CREATE("BUTTON",%HWND,"(6) Prüfung und Verschlüsselung der Daten",0130,0221,0380,0030)
BUTTON7& = CREATE("BUTTON",%HWND,"(7) Versand an den BVR",0130,0261,0380,0030)
BUTTON8& = CREATE("BUTTON",%HWND,"ENDE",0565,0261,0110,0030)
RICHEDIT1& = CREATE("RICHEDIT",%HWND,"RICHEDIT",0011,0301,0660,-0290)
SetText RICHEDIT1&, "
Dieses kleine Menü begleitet Sie durch die Datenerhebung für BVR-ProFi - Professionalisierung Firmenkundengeschäft.
Bitte bearbeiten Sie alle Punkte und schicken Sie dann den Datenstick zurück an den BVR. Dort erfolgen die Auswertung und die Berichterstellung.
Vor dem Hintergrund, dass ggf. die gewünschten Bankdaten und RZ-Abfragen sowie die jeweilige Selbsteinschätzung an verschiedenen
Stellen in Ihrem Hause aufbereitet werden, empfehlen wir Ihnen, die Erhebungsschritte (1) bis (5) parallel
durchzuführen, eine sukzessive Bearbeitung der Schritte (1) bis (5) ist programmtechnisch nicht notwendig.
Stellen Sie aber bitte sicher, dass vor der Verschlüsselung im Schritt (6) alle erbetenen Daten
vollständig auf dem Datenstick vorhanden sind."
SETFOCUS(%HWND)
REPAINT
WHILENOT ENDE%
WAITINPUT
If %KEY=2
ENDE%= 1
ELSEIF %KEY=4
ELSEIF GETFOCUS(BUTTON1&) BUTTON Erstellung Info- oder IDA-Abfragen
if RZVersion$="BB3"
SetText RICHEDIT1&, "
In BB3/bank21 finden Sie bei den KIS-Abfragen im Ablagefach 50 folgende vorgefertigte Info-Abfragen:
ZSK02 - Einheitendaten"+chr$(9)+chr$(9)+chr$(9)+"ZSK03 - Union-Anlagevolumen
ZSK04 - Erweiterte Kundendaten"+chr$(9)+chr$(9)+"ZSK05 - Erweiterte Kundendaten
ZSKER - Erweiterte Kundendaten"+chr$(9)+chr$(9)+"ZSK12 - Kundendaten allgemein
ZSK13 - Vermittelte Kredite"+chr$(9)+chr$(9)+chr$(9)+"ZSK13a - Bauspardarlehen
ZSK20 - Konditionsbeiträge"+chr$(9)+chr$(9)+chr$(9)+"ZSK21 - Provisionserträge
Bitte fragen Sie diese als Rohdaten ab, konvertieren Sie die Ergebnisse in dbf-Dateien und speichern Sie diese auf dem ProFi-Datenstick in das Verzeichnis << Daten >>.
Die Dateien müssen als AZSK02.dbf - AZSK21.dbf im Datenverzeichnis sein.
"
else
SetText RICHEDIT1&, "
Auf dem ProFi-Datenstick finden Sie im Verzeichnis << Daten >> folgende vorgefertigte IDA-Abfragen:
IDAProFiEin.TXT "+chr$(9)+"- Einheitendaten
IDAProFiKdn.TXT "+chr$(9)+"- Kunden-/Orga-Daten
IDAProFiAKK.TXT "+chr$(9)+"- KK-Umsätze und Gehälter
--> TXT-Datei mit einem Editor öffnen und den Text in die Zwischenablage kopieren
--> Im IDA-Report-Studio über << Extras->Bericht aus der Zwischenablage öffnen >> einfügen
--> Anschließend können Sie die Abfrage starten
Bitte erstellen Sie die Ergebnisse als CSV-Dateien und speichern Sie diese auf dem ProFi-Datenstick in das Verzeichnis << Daten >>.
Die Dateien müssen als ProFiEin.CSV, ProFiKdn.CSV und ProFiAKK.CSV im Datenverzeichnis sein.
"
endif
ELSEIF GETFOCUS(BUTTON2&) BUTTON Erstellung CBS-Exporte
SetText RICHEDIT1&, "Zur Erfassung der Konditions-, Provisions- und Risikodaten werden Exporte aus CBS benötigt.
Aus Vereinfachungsgründen werden nur die Dezemberdaten exportiert und dann
entsprechend hochgerechnet.
Erstellen Sie bitte mit folgender Vorgehensweise die Auswertung(en):
1. Einstellungen/Globale Einstellungen/Periodische Konditionsbeiträge
2. Auswertungen/Flexible Auswertung
3. SQL-Filter: Kundengeschäft
4. 01.12.2008 - 31.12.2008
5. Profit-Center: Zweigstellenstruktur --> Alle Zweigstellen
6. Berichtsgröße: Basis-Berichtsgrößen (PKB) --> Konditionsbeitrag (EUR)
7. Berechnen: Ergebnis ist die Anzeige pro Geschäftsstelle
8. Jeweiliges Ergebnis für die GS anklicken, rechte Maustaste und Kundenliste auswählen
9. Bei der ersten Auswertung neues Berichtsgrößenprofil erstellen (ProFi)
Berichtsgrößen: Kundennummer, Kondit.Beitrag(PKB), Prov.Ertrag(PKB), Prov.Aufwand(PKB),
Kalk.Risikokst.(PKB), Ist-Risikokst., Risikoergebnis(PKB), Netto-Blankovol.IA,
Netto-Blankovol.RV
Bitte verwenden Sie exakt diese Berichtsgrößen. Zusätzliche Größen führen dazu,
dass die Erfolgsbilanz nicht erstellt werden kann.
10. Berechnen: Ergebnis ist die Kundenübersicht mit den gewählten Größen
11. Export TXT-Datei: ProFiXXX.TXT (XXX=fortlaufende Nummer, ggfs. 001-999)
Mehrere Auswertungen sind nur deshalb notwendig, weil die Exportfunktion in CBS
lediglich 32.000 Datensätze zulässt. Bei kleinen Banken könnte auch der Export
in einer Datei erfolgen."
ELSEIF GETFOCUS(BUTTON3&) BUTTON Erfassung Bankdaten
SetText RICHEDIT1&, "
Die Excel-Datei zur Erfassung der notwendigen Bankdaten wird gestartet.
Bereits beim BVR vorliegende Daten, z.B. aus dem jährlichen Betriebsvergleich
sind voreingestellt, können und sollten jedoch von Ihnen ggfs. überschrieben werden.
Das ist immer dann notwendig, wenn sich zwischen der Datenlieferung an den BVR
und der Aufbereitung der ProFi-Daten noch relevante Änderungen im Jahresabschluss
ergeben haben.
Bitte erfassen Sie dort die Felder mit blauer Schrift.
Informationen zum Ausfüllen der Erhebungsseiten finden Sie im Blattregister << Hinweise >>
und im Merkblatt zur Datenerhebung << Controlling >>.
Anschließend können Sie hier weitermachen."
Repaint
Sleep 3000
if MessageBox("Soll die Excel-Datei gestartet werden?","Sicherheitsabfrage",49)=1
ShellExec("Daten\ProFiDat1.xls","open",3)
endif
ELSEIF GETFOCUS(BUTTON4&) Erfassung Fragebogen
SetText RICHEDIT1&, "
Hier können Sie die Antworten für den Fragebogen erfassen. Die entsprechende Excel-Datei wird gestartet.
Bitte fügen Sie in die Antwortfelder ein X ein.
Informationen zum Ausfüllen der Erhebungsseiten finden Sie im Blattregister << Hinweise >>
und im Merkblatt zur Datenerhebung << Vorstand / Bereichsleitung >>.
Anschließend geht es hier weiter."
Repaint
Sleep 3000
if MessageBox("Soll die Excel-Datei gestartet werden?","Sicherheitsabfrage",49)=1
ShellExec("Daten\ProFiDat2.xls","open",3)
endif
ELSEIF GETFOCUS(BUTTON5&) BUTTON Marktattraktivität, Wettbewerbsstellung
SetText RICHEDIT1&, "
Die entsprechende Excel-Datei wird gestartet.
Bitte erfassen Sie die Daten zur Beurteilung der Marktattraktivität und der Wettbewerbsstellung.
Ändern Sie bei Bedarf die Gewichtung und tragen Sie in der Spalte SGF Firmengeschäft
eine Zahl von 0 - 10 ein.
Informationen zum Ausfüllen der Erhebungsseiten finden Sie im Blattregister << Hinweise >>
und im Merkblatt zur Datenerhebung << Vorstand / Bereichsleitung >>.
Anschließend geht es hier weiter."
Repaint
Sleep 3000
if MessageBox("Soll die Excel-Datei gestartet werden?","Sicherheitsabfrage",49)=1
ShellExec("Daten\ProFiDat3.xls","open",3)
endif
ELSEIF GETFOCUS(BUTTON6&) BUTTON Dateien ändern, packen, verschlüsseln
RText2$=GetText$(RICHEDIT1&)
SetText RICHEDIT1&, "
Aus den gespeicherten Dateien werden zuerst automatisiert alle kundenbezogenen
Daten, wie Name, Adresse etc. entfernt. Anschließend werden die Dateien gepackt
und mit einem Kennwort versehen.
Das dauert ein wenig, bitte nicht nervös werden.
"
Repaint
Sleep 3000
if MessageBox("Soll die Prüfung und Verschlüsselung der Daten gestartet werden?","Sicherheitsabfrage",49)=1
PruefProt
if (Weiter&=1) and (Pruefung&=2) 2=Alles ok
if RZVersion$="BB3"
if FileExists("Daten\azsk02.dbf")
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" AZSK02 bearbeiten... "
REPAINT
Let RText$=GetText$(RICHEDIT1&)
Saetze%=db("Open", #1, "Daten\azsk02.dbf")
db("Use", #1)
db("Go", "|<")
whilenot %dbEoF
db("Put","F09_Eng_Be"," ")
db("PutRec",0)
@db("Go", "NEXT")
SetText RICHEDIT1&, RText$+Format$("### %",&dbRecno/Saetze%*100)
endwhile
db("Close",#1)
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" Fertig!
"
endif
if FileExists("Daten\AZSK04.dbf")
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" AZSK04 bearbeiten... "
REPAINT
Let RText$=GetText$(RICHEDIT1&)
Saetze%=db("Open", #1, "Daten\azsk04.dbf")
db("Use", #1)
db("Go", "|<")
whilenot %dbEoF
db("Put","F11_email"," ")
db("Put","F25_Erltg"," ")
db("Put","F26_Arbeit"," ")
db("PutRec",0)
@db("Go", "NEXT")
SetText RICHEDIT1&, RText$+Format$("### %",&dbRecno/Saetze%*100)
endwhile
db("Close",#1)
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" Fertig!
"
REPAINT
endif
if FileExists("Daten\AZSK05.dbf")
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" AZSK05 bearbeiten... "
REPAINT
Let RText$=GetText$(RICHEDIT1&)
Saetze%=db("Open", #1, "Daten\azsk05.dbf")
db("Use", #1)
db("Go", "|<")
whilenot %dbEoF
db("Put","F12_vornam"," ")
db("Put","F13_nachna"," ")
db("Put","F15_name"," ")
db("PutRec",0)
@db("Go", "NEXT")
SetText RICHEDIT1&, RText$+Format$("### %",&dbRecno/Saetze%*100)
endwhile
db("Close",#1)
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" Fertig!
"
REPAINT
endif
if FileExists("Daten\AZSKER.dbf")
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" AZSKER bearbeiten... "
REPAINT
Let RText$=GetText$(RICHEDIT1&)
Saetze%=db("Open", #1, "Daten\azskER.dbf")
db("Use", #1)
db("Go", "|<")
whilenot %dbEoF
db("Put","F22_geburt"," ")
db("Put","F23_geburt"," ")
db("Put","F28_ausweis"," ")
db("Put","F29_ausste"," ")
db("PutRec",0)
@db("Go", "NEXT")
SetText RICHEDIT1&, RText$+Format$("### %",&dbRecno/Saetze%*100)
endwhile
db("Close",#1)
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" Fertig!
"
REPAINT
endif
if FileExists("Daten\AZSK12.dbf")
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" AZSK12 bearbeiten... "
REPAINT
Let RText$=GetText$(RICHEDIT1&)
Saetze%=db("Open", #1, "Daten\azsk12.dbf")
db("Use", #1)
db("Go", "|<")
whilenot %dbEoF
db("Put","F03_name"," ")
db("Put","F05_strae"," ")
db("Put","F23_plz"," ")
db("Put","F25_ort"," ")
db("Put","F33_mobilt"," ")
db("Put","F34_telefo"," ")
db("Put","F35_telefo"," ")
db("PutRec",0)
@db("Go", "NEXT")
SetText RICHEDIT1&, RText$+Format$("### %",&dbRecno/Saetze%*100)
endwhile
db("Close",#1)
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" Fertig!
"
REPAINT
endif
if FileExists("Daten\AZSK20.dbf")
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" AZSK20 bearbeiten... "
REPAINT
Let RText$=GetText$(RICHEDIT1&)
Saetze%=db("Open", #1, "Daten\azsk20.dbf")
db("Use", #1)
db("Go", "|<")
whilenot %dbEoF
db("Put","F02_KTO__N","0")
db("PutRec",0)
@db("Go", "NEXT")
SetText RICHEDIT1&, RText$+Format$("### %",&dbRecno/Saetze%*100)
endwhile
db("Close",#1)
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" Fertig!
"
REPAINT
endif
if FileExists("Daten\AZSK21.dbf")
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" AZSK21 bearbeiten... "
REPAINT
Let RText$=GetText$(RICHEDIT1&)
Saetze%=db("Open", #1, "Daten\azsk21.dbf")
db("Use", #1)
db("Go", "|<")
whilenot %dbEoF
db("Put","F01_KONTON","0")
db("PutRec","0")
@db("Go", "NEXT")
SetText RICHEDIT1&, RText$+Format$("### %",&dbRecno/Saetze%*100)
endwhile
db("Close",#1)
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+" Fertig!
"
REPAINT
endif
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+"
Die anderen Dateien enthalten keine kundenbezogenen Felder, daher FERTIG!!
"
REPAINT
Kennwort$=Input$("Bitte geben Sie ein Kennwort ein:","Kennwortabfrage","")
Let Kennwort$=Trim$(Kennwort$)
erase "Daten\Daten.zip"
Let Befehl$="Daten\7zG.EXE a -tzip -p"+Kennwort$+" Daten\Daten.zip Daten\*.dbf Daten\*.TXT Daten\*.xls Daten\*.INI Daten\*.csv"
Shell Befehl$
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+"
Wenn der Packer durch ist, sind die Dateien gepackt und mit dem Kennwort: << "+Kennwort$+" >> versehen. Bitte führen Sie noch Schritt 7 aus und schicken Sie dann den Datenstick per Post an den BVR zur weiteren Auswertung."
SETFOCUS(%HWND)
else
SetText RICHEDIT1&, "
Die gespeicherten CSV-Dateien werden nun gepackt und mit einem Kennwort versehen.
Das dauert ein wenig, bitte nicht nervös werden.
"
Kennwort$=Input$("Bitte geben Sie ein Kennwort ein:","Kennwortabfrage","")
Let Kennwort$=Trim$(Kennwort$)
erase "Daten\Daten.zip"
Let Befehl$="Daten\7zG.EXE a -tzip -p"+Kennwort$+" Daten\Daten.zip Daten\*.dbf Daten\*.TXT Daten\*.xls Daten\*.INI Daten\*.csv"
Shell Befehl$
SetText RICHEDIT1&, GetText$(RICHEDIT1&)+"
Wenn der Packer durch ist, sind die Dateien gepackt und mit dem Kennwort: << "+Kennwort$+" >> versehen. Bitte führen Sie noch Schritt 6 aus und schicken Sie dann den Datenstick jetzt per Post an den BVR zur weiteren Auswertung."
SETFOCUS(%HWND)
endif
else
SetText RICHEDIT1&, RText2$
endif
else
SetText RICHEDIT1&, RText2$
endif
ELSEIF GETFOCUS(BUTTON7&) BUTTON
if Pruefung&=0
MessageBox("Punkt >>(6) Prüfung und Verschlüsselung der Daten<< wurde nicht aktuell durchgeführt. Bitte holen Sie dies nach. Nur bei Fehlerloser Erfassung/Bearbeitung ist die korrekte Übernahme der Daten möglich.","Achtung!",48)
endif
if Pruefung&=1
MessageBox("Bei Punkt >>(6) Prüfung und Verschlüsselung der Daten<< wurden gravierende Fehler festgestellt. Nur bei Fehlerloser Erfassung/Bearbeitung ist die korrekte Übernahme der Daten möglich.","Achtung!",48)
endif
if Pruefung&=2 Alles ok
SetText RICHEDIT1&, "
Im letzten Schritt werden die ursprünglichen Excel- und dbf-Dateien gelöscht, damit nur noch die gepackten und verschlüsselten Daten auf dem Datenstick sind.
Klicken Sie in der Sicherheitsabfrage auf << OK >> wenn dies erfolgen soll.
Anschließend versenden Sie den Datenstick an:
BVR Bundesverband der Deutschen
Volksbanken und Raiffeisenbanken
Abteilung Markt
Schellingstr. 4
10785 Berlin
Kennwort bitte per eMail an: ProFi@bvr.de
VIELEN DANK FÜR IHRE MITARBEIT."
if MessageBox("Nachdem die Dateien gepackt und verschlüsselt wurden (Datei >>Daten.ZIP<< ist erstellt),
können/müssen die Originaldateien auf dem Datenstick gelöscht werden, damit keine
unverschlüsselten Daten verschickt werden. Soll die Löschung jetzt erfolgen?","Sicherheitsabfrage",49)=1
ClearList
AddFiles *"*.xls"
AddFiles *"*.dbf"
AddFiles *"*.txt"
AddFiles *"*.csv"
SetDialogFont Arial10%
Listbox$("Folgende Dateien werden gelöscht:",4)
SetDialogFont 1
if %Button=1
WhileNot (Anz%>%GetCount)
Let Datei$=ListBoxItem$(Anz%)
Erase Datei$
Inc Anz%
endwhile
WhileNot (Anz%>%GetCount) Zweiter Durchlauf, um sicher zu sein!
Let Datei$=ListBoxItem$(Anz%)
Erase Datei$
Inc Anz%
endwhile
MessageBox("Dateien wurden gelöscht!","Meldung",0)
else
MessageBox("Dateien wurden NICHT gelöscht!","Meldung",48)
endif
endif
endif von der Frage ob Pruefung&=2
ELSEIF GETFOCUS(BUTTON8&) BUTTON
ClearList
AddFiles *"*.xls"
AddFiles *"*.dbf"
AddFiles *"*.txt"
AddFiles *"*.csv"
if %GetCount>=0
if MessageBox("Es befinden sich noch XLS-,DBF-,TXT- oder CSV-Dateien im Verzeichnis >Daten<."+chr$(13)+chr$(10)+"Vor dem Versand bitte unbedingt die Schritte 6 und 7 durchführen oder die Dateien manuell löschen!","Meldung",49) =1
ENDE%=1
endif
else
ENDE%=1
endif
ELSEIF GETFOCUS(RICHEDIT1&) RICHEDIT
ENDIF
ENDWHILE
|
| | | | |
| |  Dieter Zornow | Also bei mir scheint es zu gehen, ohne XPSE compiliert. Es ist auch ein Fehler in Zeile 1080 da hast du einen langen String getrennt mit aber eine Leerzeile danach, so dass der das abschließende " nicht gefunden wurde
Es erscheint ja nur die Messagbox, dass eine Datei nicht gefunden wurde und das Programm wird beendet. |
| | | Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 25.07.2009 ▲ |
| |
| |  Thomas Freier | Ich habe nicht getestet, aber ab XProfan 11 sollten die: $H ocx2.ph $I ocx2.inc durch: $H ocx3a.ph $I ocx3a.inc ersetzt werden und min. darauf achten, dass Dateinamen nicht mehr mit ocxMethod(Object&,"LoadFile","*"+File$) (Änderungen nachlesen!) aufgerufen werden. |
| | | | |
| |  Christof Neuß | Hallo und vielen Dank für die Hinweise.
Werde das in Kürze mal ausprobieren.
Ich melde mich mit dem Ergebnis 
Gruß
Christof |
| | | | |
|
AntwortenThemenoptionen | 9.031 Betrachtungen |
ThemeninformationenDieses Thema hat 5 Teilnehmer: |