Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: eknori am 12.02.03 - 12:45:23
-
@All.
Ich baue gerade an einer Datenbank für eine Raumbelegung.
Ich will nicht die Resourcenreservierung verwenden, da die zu fehleranfällig ist.
In meiner Maske habe ich neben dem Namen der Ressource noch 4 Felder
StartDate -- StartTime
EndDate -- EndTime
Wie kann ich nun beim Erstellen einer neuen Buchung feststellen, ob es zu einer Terminüberschneidung kommt. ?
Hab euch die Datenbank mal beigefügt ;D
Ich habe den Link aktualisiert. Die DB enthält jetzt alle Routinen für den Availability - Check
-
hi,
das wird wohl aufwendig.
- fällt der neue start-termin in einen zeitraum der anderen doc's
wenn ja, ist die neue startzeit >= startzeit des gefundenen docs UND <= endzeit des gefunden docs? wenn ja, termin belegt.
so ungefähr jedenfalls . . . . ;)
-
... in meiner Lib zum DateHandling habe ich eine Klasse drin, die ein Array für einen Zeitraum initialisiert. Wenn die beiden Array's in einem Element Deckung haben, dann findet eine Überschneidung statt - ich denke damit könntest du es bekommen.
ArrayGetIndex(...) ist die Entsprechung zu @Member
... wenn dir die ganz Lib zu groß ist, kannst du zumindest Teile daraus verwenden...
ata
-
hmm, ja, ich denke ??? damit komme ich weiter. ??? ::) ;D
-
Hallo Eknori,
kann Dir leider nicht helfen... - aber ich habe gerade Deine Datenbank angeschaut und frage mich nun wie Du Wunderknabe das geschafft hast das das JAVA Applet perfekt lauft ohne das der NotesClient danach hängt? Ich weiss nicht wieviele Notesprogrammierer sich damit bisher rumgekämpft haben - auf jeden Fall schon superviele die ich kenne...
Gruss
Martin
-
Wie kann ich nun beim Erstellen einer neuen Buchung feststellen, ob es zu einer Terminüberschneidung kommt. ?
Ich habe das bei einem Eventkalender so gelöst, daß ich den Datumsbereich des Ereignisses in einer Ansicht expandiert (exploded) habe und beim Vergleich nur diese Schlüssel der Ansicht prüfe. Damit beschränke ich die Zahl der zu prüfenden Termine auf alle die Ereignisse, die nach Datum potentiell überschneiden könnten und muß nicht alle Ereignisse der DB prüfen.
Aber ich denke mal, diesen logischen Weg dürftest Du schon vorgesehen haben.
-
Habe diese Formel hier
@Explode(@Date(@TextToTime(@Text(co_StartDate) + " " + @Text(@Time(0;0;0)) + " - " + @Text(@If(co_EndDate > co_StartDate; @Adjust(co_EndDate; 0; 0; -1; 0; 0; 0); co_EndDate)) + " " + @Text(@Time(0;0;0)))))
um den Datumsbereich zwischen Start- und Enddatum zu "exploden"
Ich kriege das einfach nicht für ZEITFELDER umgesetzt.
Wer kann helfen ??
In Script kriege ich das hin.... Aber ich und Formeln :o :o :o
-
... das sieht schlecht aus mit Zeitangaben , ich denke das funzt nur mit Datum - nicht mit Zeitwerten
dateRange
Time-date range or time-date range list. The range of dates whose individual days you want to make into a text list.
ata
-
um den Datumsbereich zwischen Start- und Enddatum zu "exploden"
Ich kriege das einfach nicht für ZEITFELDER umgesetzt.
Geht auch nicht, steht irgendwo versteckt bei @Explode in der Doku, momang...
"The range of dates whose individual days you want to make into a text list."
Gemein.
Aber besser so, als tausende von Terminen zu vergleichen, die wild über's ganze Jahr verstreut liegen.
-
hi eknori,
ich hab da einen lösungsvorschlag in script(bist da wahrscheinlich schon selber draufgekommen...):
- programmatische view: 1.spalte=ressource, 2.spalte=zeitangabe(vorzugsweise KW, weil ja wohl bei den räumen keine übergriffe in die nächste woche vorkommen; ich hab das in einer db mit 3 spalten(jahr, tag,monat) gelöst); 3.spalte=dein feld DaysOutOS mit der zeitspanne in tagen
- im querysave der maske dann eine schleife einbauen:
dim keyarray(1) as string
KeyArr( 0 ) = ...Ressource...
KeyArr( 1 ) = ...Zeitangabe(KW)...
Set datecol = view.getalldocumentsbykey ( KeyArr, True )
datecolnr = datecol.count
Set resdoc = datecol.getfirstdocument
For i = 0 To datecolnr-1
While Not ( resdoc Is Nothing )
Set ListeVonBis = resdoc.getfirstitem( "DaysOutOS" )
Forall x In ListeVonBis.values
'VERGLEICH eingabe- reservierungen
If x = Von Or x = Bis Then
'wenn überschneidungen bei den tagen, dann zeitwertevergleic
End If
End Forall
Set doc = datecol.getnextdocument(doc)
Wend
Next
tschö
-
Danke für den Tip.
Ich habe das bereits selbst per Script gelöst. Der Link im ersten Posting enthält nun die aktuelle version der DB.
In den ScriptLibs und Agenten ist im prinzip schon alles drin , was man braucht.
Ein paar Bugs gibt es noch:
-Wenn ich einen bestehenden termin ändere checkt der Code auch den eigenen Zeitbereich und meldet den Raum als belegt.
-Wenn ein termin im chart durch ziehen des slot verändert wird, ändert sich nicht die Werteliste im Feld "TimeSlots"
- der availability - check ist noch nicht in der Aktion "Speichern und in Kalender eintragen" vorhanden.
- Wiederholungstermine checken nicht auf Kollision mit bereits bestehenden Terminen.
Vielleicht kann mir ja der eine oder andere helfen, die Bugs zu beseitigen :D
So ein paar funktionen möcht ich noch einbauen:
- Auswahl möglicher Resourcen anhand der Personenzahl
- Anzeige freier Resourcen anhand Datum und Uhrzeit.
Ich weiß, ich weiß, "das hat Notes doch alles schon".
Aber die C&S Geschichte arbeitet solange ich Notes kenne nicht halbwegs fehlerfrei.
Bei uns kommt es ständig zu Terminüberschneidungen. Gerade, wenn dann auch noch ein Kundenbesuch ansteht und sog. repräsentative Räume durch Doppelbuchungen belegt sind, könnt ihr euch sicher vorstellen, wie groß die Begeisterung bei den Beteiligten ist.
Daher möchte ich gerne ein System aufbauen, in dem ich die Kontrolle über die Abläufe habe.
eknori
-
Hi eknori,
ich hab da eine Lösung ;)
Wie schaut dies aus Sicht des Anwenders aus:
Man gibt die Daten ein (Anfangszeit, Endzeit, Datum), und klickt auf "Speichern".
Wenn es dann in dem Zeitraum bereits ein Dok gibt kommt eine Fehlermeldung inkl. des Datums und der Uhrzeit, bei der es die Fehlermeldung gibt.
Leider ist mir vorhin die CPU + Motherboard meines Hauptrechner abgeschmiert, auf der die DB liegt. Ich arbeite aktuell mit einem Notebook, auf dem bis auf einen Browser keine Daten drauf sind :-(
D.h. es wird noch ein paar Tage dauern, bis ich überhaupt weiß was für ein Motherboard und CPU ich mir besorge und dann erst bestelle......
Aber wenn Du Dich 1-2 Wochen geduldest kommt die Lösung! (kein Fake!)
Afaik holt sich das Skript die Daten aus einer Ansicht, in der sich die Spalten "Jahr" "Monat" "Tag" "Stunden" und "Minuten" befinden.
Das Teil hat aber etliche Zeilen (ist nicht von mir!) aber arbeitet 1a.
Bob
-
Ich habe in ATNOTES.de den Beitrag über die Datenbank 'reservierung' gelesen.
Ich habe ein ähnliches Problem und wäre sehr an der DB interessiert.
Leider kann ich bei uns das eingestellte ZIP-Format nicht downloaden.
Könnte man die DB evtl. als .nsf in das Forum stellen
-
hier die DB im nsf - Format
-
hm..eknori, ich werde mich jetzt am WE an Deine Ressourcen Kiste dranmachen und versuchen einzubauen, daß man
- gleichzeitig Raum und Ressource bebuchen kann
- dabei bei allen Ressourcen die Freie Zeit checkt (aber nicht mit der R5 Busytime Systematik wahrscheinlich - da zu unzuverlässig - , werds aber parallel unter R6 mit dem Planer und der Busytime dann machen)
- öhm..ja , halt ein bißerl die Ansichten verändern
- Formeln würde ich eher weniger zum Überschneidungscheck verwenden (weil Du irgendwas damit machen wolltest, weiß zwar nicht warum, aber egal... :D)
- und die Wiederholungsproblematik natürlich auch berücksichtigen
Wenn Du magst, call mich mal am WE an (Abends).
-
So, der guten Ordnung halber hier der Code für den CHECK
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim workspace As New NotesUIWorkspace
Dim dc As NotesDocumentCollection
Set db = session.CurrentDatabase
Set View = db.GetView ( "($BUSYTIME)" )
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument 'Look at the current document on the screen
Dim dtimefromNEU As New NotesDateTime ( Cstr ( uidoc.FieldGetText ( "StartDatumZeit" ) ) )
Dim dtimetoNEU As New NotesDateTime ( Cstr ( uidoc.FieldGetText ( "EndDatumZeit" ) ) )
DOCUID$ = uidoc.FieldGetText ( "ID" )
Set dc = view.GetAllDocumentsByKey( uidoc.FieldGetText( "co_Resource" ) )
For i% = 1 To dc.Count ' Alle docs in der collection durchlaufen
Set doc = dc.GetNthDocument ( i% ) ' erstes doc aus collection holen
If doc.ID(0) <> DOCUID$Then ' gefundenes doc ist nicht uidoc
Dim dtimefromALT As New NotesDateTime ( Cstr ( doc.StartDatumZeit(0) ) )
Dim dtimetoALT As New NotesDateTime ( Cstr ( doc.EndDatumZeit(0) ) )
If dtimefromNEU.TimeDifference ( dtimetoALT ) > 0 Or dtimetoNEU.TimeDifference ( dtimefromALT ) < 0 Then
flag% = 0 ' keine überschneidung
Else
flag% = 1
Goto NotAvailable
End If
End If
Next
Exit Sub
NotAvailable:
Msgbox "NotAvailable"
End Sub
Die Ansicht ($BUSYTIME) enthält in der ersten Spalte aufsteigend sortiert den Namen der Resource.
-
habe es nahezu ebenso gelöst..
bei mir kommt noch dazu, daß ich mittlerweile widerholende Termine verarbeite und dabei mehrfach vorhandene, zu reservierende Ressourcen/Räume im aktuellen Termindoc auf mögliche Terminüberschneidungen gechecked und einzeln reported werden müssen. Daher ist mein Code noch etwas länger geworden. Wenn ich das Teil fertig habe, werde ich es hier posten...momentan ist er noch sehr unsauber (keine explizite Deklaration, keine vernünftigen Variablen Namen, etc...unnötige, doppelte Intialisierungen von Objekten, etc...).
Erschwerend kommt hinzu, daß man tagesüberschreitend ganztägige Termine eingeben kann, wobei die EndZeit kleiner der Startzeit sein kann (klar, heute Auto um 12:00 Uhr bis übermorgen ausgeliehen, Rückgabe um 09:00 Uhr)...dabei werden repetierende Einzeltermine angelegt beim Abspeichern und der letzte Tag mit der EndZeit 09:00 Uhr in dem Beispiel.
Und, um es noch etwas einfacher zu machen ;D...*grins....gut schwarzen Humor zu haben* dass man Serientermine verändern kann - natürlich muß dann erneut ein Terminkollisionscheck ausgeführt werden - und das System den User fragt "wollen sie den Termin löschen, alle löschen, alle Serien Termine in der Zukunft entsprechend anpassen, alle Serien Termine in der Vergangenheit..., oder nur diesen anpassen?" :P :P :P
*bin schon am Singen:
Mein Lotus Notes fährt 210, schwupp, IBM hat's nicht geseh'n,
das macht Spaß! Ich geb' Gas, ich geb' Gas!
Will nicht spar'n, will nicht vernünftig sein,
bau nur das beste rein, ich mach' Spaß!
Ich geb' Gas ich geb' Gas! - Ich will Spaß, ich will Spaß!
Ich will Spaß ich will Spaß! Ich geb' Gas, ich geb' Gas!
Ich will Spaß, ich will Spaß!
Ich schubs die Templates aus dem Verkehr, ich jag'die Formeln vor mir her,
ich mach' Spaß! Ich mach' Spaß, ich mach' Spaß!
Und kost'der Mist auch viele Müh, scheiß egal, es wird schon
geh'n,
ich will coden! Ich will jodln, ich will johln.
Ich will Spaß, ich will Spaß! Ich will Spaß, ich will Spaß!
Ich geb' Gas, ich geb' Gas! Ich will Spaß, ich will Spaß!
IBM, Microsoft, spürst du mich?
Heut'nacht komm ich über dich - das macht Spaß!
Das macht Spaß, das macht Spaß ~
Der Ozzie ist mein bester Freund, hui wenn ich komm', wie der
sich freut
er braucht Spaß! Er hat Spaß, er hat Spaß
Wir wollh Spaß, wollen Spaß! Wir woll'n Spaß, wollen Spaß!
Wir geb'n Gas, geben Gas! Wir woll'n Spaß, wollen Spaß!
Wir mach'n Spaß, machen Spaß! Wir geb'n Gas, geben Gas! . . . *
macht Notes eigentlich plemplem? :o :o
-
in Anlehnung eines "Hits von einem gewissen Dieter B. aus H:
Take Notes today
everything is possible
;D ;D
-
yep... ;D ;D
-
@Rob
Ich wußte gar nicht, dass du so toll texten und singen kannst. ;D ;D
Wenn kommt denn deine erste Platte ?
Und wann der Auftritt beim Grand Prix ?
;D ;D
Aber Spaß beiseite:
Klingt gut mit den tagesüberschreitenden Terminen. Bin sehr am Code interessiert.
Axel
-
mit Notesliedern?
Hm,..
Titel "Take Notes Today"
Produziert by: eknori, Notes&Music Media AG
written&composed by: RobGreen, Crazy Notes Studios
gesungen: Axel Superstar 8) 8)
-
Hätte da noch ein paar Cover Versionen anzubbieten
Jeronimos formula ( kennt man doch, oder? )
Script-Li-bra-ry ( Y.M.C.A)
Dancing Script (Dancin' queen )
Notes on the water ( Smoke on the water )
na, ja und die Kapelle, die das zu besten gibt könnte heißen...
ACL/ECL oder
RedScreen/ BlueScreen
-
... mit Solosänger Mike Crow Soft... ;D ;D ;D
... das wäre ja schon fast Kabarett-tauglich - wenn ihr noch nen Gitarristen sucht...
ata
-
so..eknori..mir klingelte was in den Ohren, daß ich vor Jahren meiner Kollegin eine Formel für Terminüberschneidungen freudejauchzend vor die Nase gehalten hatte (sie mußte so ne kleine Autoreservierungs DB schreibseln...)
und siehe da...ich habs beim guten alten Martin Scott gefunden:
Description
Given lists of StartTimes, EndTimes, Persons, and EventNames, determines which Persons/Events intersect a proposed event with StartTimeProposed, EndTimeProposed.
Comments
at the end of the code, if TextSet is "", then there is no intersection between the existing event times and the proposed event time.
Code
REM "======================================================";
REM "Date Range Intersection detection.";
REM "Jamie Magee 8/18/98";
REM "Martin Scott Consulting LLC, American Management Systems, Inc.";
REM "Given a list of StartTimes, list of EndTimes, Persons, and EventNames ";
REM "this formula determines which Persons/Events intersect a proposed event ";
REM "with StartTimeProposed, EndTimeProposed.";
REM "======================================================";
REM "any unlikely-to-occur string, used for internal data separation";
sep := "~!@";
REM "interface with field data values on form";
REM "...Who and When (day)";
t_ProposedPersons := Invitees+sep+@Text(@Date(MeetingDate));
REM "...When (time)";
t_StartTimeProposed := @TextToTime( @Left(@Text(MeetingTime); " -"));
t_EndTimeProposed := @TextToTime( @Right(@Text(MeetingTime); "- "));
@If(t_StartTimeProposed !="" & t_EndTimeProposed !="" & @Trim(Invitees) !=""; ""; @Return(@Success));
REM "...lookup location";
t_EventView := "MeetingsByPerson-ConflictChecking";
t_EventDataColumnNum := 2;
REM "formatting - keep in mind that only 256 characters show up in an @Prompt message";
EventNameMaxDisplayLength := 60;
REM "============== DO NOT CHANGE CODE BELOW =============";
t_EventData := @DbLookup("":"NoCache"; ""; t_EventView; t_ProposedPersons; t_EventDataColumnNum);
@If(@IsError(t_EventData); @Do(@Set("ConflictMessage"; ""); @Return(@Prompt([OK]; "Conflict checking"; "No conflicts found."))); "");
t_StartTimes := @TextToTime(@Word(t_EventData; sep; 1));
t_EndTimes := @TextToTime(@Word(t_EventData; sep; 2));
t_EventNames := @Word(t_EventData; sep; 3);
REM "used later to exclude the current doc from the list of conflicts...";
t_NoteIDs := @Word(t_EventData; sep; 4);
REM "lookup the list of persons again, so we can accurately pair them up with their respective meetings on that day.";
t_Persons := @Word(@DbLookup("":"NoCache"; ""; t_EventView; t_ProposedPersons; 1); sep; 1);
REM "used for text message at end of this routine. Removing leading zeros saves output space.";
t_EventTimes := @Text(t_StartTimes; "T1" ) + " - " + @Text(t_EndTimes; "T1" );
@Set("t_EventTimes"; @ReplaceSubstring(t_EventTimes; "01:":"02:":"03:":"04:":"05:":"06:":"07:":"08:":"09:"; "1:":"2:":"3:":"4:":"5:":"6:":"7:":"8:":"9:"));
REM "calculate the differences between start and end times";
sas := t_StartTimes - t_StartTimeProposed ;
sbe := t_EndTimeProposed - t_StartTimes ;
eas := t_EndTimes - t_StartTimeProposed ;
ebe := t_EndTimeProposed - t_EndTimes ;
sbs := t_StartTimeProposed - t_StartTimes ;
eae := t_EndTimes - t_EndTimeProposed ;
sas_1 := (@Abs(sas)-sas)+1;
sbe2 := @TextToNumber(@Replace(@Text(sbe); "0"; "-1"));
sbe_1 := (@Abs(sbe2)-sbe2)+1;
eas2 := @TextToNumber(@Replace(@Text(eas); "0"; "-1"));
eas_1 := (@Abs(eas2)-eas2)+1;
ebe_1 := (@Abs(ebe)-ebe)+1;
sbs_1 := (@Abs(sbs)-sbs)+1;
eae_1 := (@Abs(eae)-eae)+1;
test1 := @Replace(@Text(SAS_1 * SBE_1); "1"; "<<<");
test2 := @Replace(@Text(EAS_1 * EBE_1); "1"; "<<<");
test3 := @Replace(@Text(SBS_1 * EAE_1); "1"; "<<<");
REM "match up known conflict row numbers with event info for an informative message detailing the conflicts.";
Set1 := @Trim(@Left(t_Persons + sep + t_EventTimes + sep + t_EventNames + test1; "<<<"));
Set2 := @Trim(@Left(t_Persons + sep + t_EventTimes + sep + t_EventNames + test2; "<<<"));
Set3 := @Trim(@Left(t_Persons + sep + t_EventTimes + sep + t_EventNames + test3; "<<<"));
TextSet := @Trim(@Unique(Set1 : Set2 : Set3) );
REM "if this doc is already saved, make sure to exclude it from the list of found conflicts, else it will conflict with itself.";
@If(@IsNewDoc; ""; @Set("TextSet"; @Trim(@Replace(TextSet ; @Right(t_NoteIDs + t_Persons + sep + t_EventTimes + sep + t_EventNames; @NoteID); ""))) );
message := @If(TextSet = ""; @Return(@Prompt([OK]; "Conflict checking"; "No conflicts found.")); @Implode(" " + @Left(@Word(TextSet; sep; 1); 1) + ". " + @Right(@Word(TextSet; sep; 1); " ") + " - " + @Word(TextSet; sep; 2) + ": " + @Left(@Left(@Word(TextSet; sep; 3); "|||"); EventNameMaxDisplayLength); @NewLine));
FIELD ConflictMessage := message;
Quelle: http://www.martinscott.com/DesignLibrary.nsf/scategory/844BD6BD3F7E00ED85256C08001DF281?opendocument
-
Hi Leute,
die DB von Eknori schaut jetzt schon klasse aus.
Allerdings wäre eine Möglichkeit der Reservierung über die Einladung aus dem Kalender die Top-Sache schlechthin.
Wie ist jetzt die "letzte" Version der Entwicklung?
Ich kann auch "etwas" Script und Formula... also will ich auch gerne mithelfen...
Gruß
Iron ;)
-
Was ist den eigentlich aus euren schönen resservierungs db geworden?
hab mir zwar mal die aktuelle version angeschaut, aber vielleicht ist ja noch kräftig daran weiter gearbeitet worden?
wäre eine schöne sache, mit der noteseigenen ressourcen db komme ich nämlich gar nicht zurecht.
-
Was ist den eigentlich aus euren schönen resservierungs db geworden?
liegt bei mir in der Schublade und will und will sich nicht alleine weiterentwickeln.
-
Ulrich hat m.W das ganze wieder verworfen weil die Anforderungen immer höher wurden und der Aufwand darüber vermutlich gigantisch geworden wäre....
So schlimm finde ich die Notes- interne Resourcenverwaltung aber gar nicht - ich habe bei uns die Ansichten (aber nur die Ansichten der ResourcenDB) noch etwas angepasst (kosmetisch und auf die relevanten Infos beschränkt) und wir leben recht gut damit. Klar ist Sie sicherlich nicht optimal, aber man kann schon ganz gut damit leben. Bei mir wird 1x am WE die busytime.nsf gelöscht und seitdem habe ich ruhe...
Gruss
Martin
-
schade das ihr nicht mehr daran weiter entwickelt habt.
dann werde ich wohl doch einen thread mit meinen ressources db problemen auf machen müssen...
-
Hallo Eknori,
beim Stöbern im Forum bin ich auf Deine Versuche mit einer eigenen Reservierungsdatenbank gestoßen.
Deine Ansätze sind bestechend. Ich selbst quäle mich mit Erweiterungen der 4.6-er Schablone herum, da auch die neuere Standard-Datenbank nicht die gewünschten Funktionen enthält.
Dabei ist Dein Applet "Belegungsplan" eine tolle Ergänzung. Daher meine Frage:
Ist es wohl möglich, diese Funktion in die obige Version einzubauen, ohne im Java-Code programmieren zu müssen?
Ein kurzes Statement dazu wäre sehr nett.
Alexis
-
Am Java Code musst du nix machen; daß lässt sich alles über Parameter einstellen ...
-
Hallo Eknori,
hab' noch eine Nachfrage:
Da die Feldnamen in meiner Maske anders lauten, findet das Applet wohl offensichtlich keine verwertbaren Daten. Heisst das, dass ich alle bestehenden Reservierungen auf deine Maske überführen muss?
Alexis
-
Hallöchen, vielen Dank an alle die sich diesem Problem gewidmet haben. In euren Beispielen werden immer nur Uhrzeiten (StartTime > EndTime" verglichen. Wenn ich aber die Abfrage für mehrere Tage bzw. einen Zeitraum stellen möchte ? Wie müßte dann das Script aussehen ? Ich habe nämlich einen Gruppenkalender als Zimmerbelegungs-Datenbank umfunktioniert. Es soll eine Abfrage möglich sein, ob das Zimmer in diesem Zeitraum verfügbar ist.
Sprich: Eine Maske ist vorhanden in der ich eine Reservierung erstelle. Datum wird per Kalender ausgewählt. Felder sind mit datumVon und datumBis bezeichnet.
Wenn ich z.B. das Zimmer für den 31.07.2008 reservieren möchte, es aber vom 29.07.08-01.08.2008 bereits reserviert ist, wie muß dann die Abfrage lauten ? Ich danke euch.
Gruß Sascha
P.S. Wir arbeiten zur Zeit mit der 6er Version.
-
P.S. Wir arbeiten zur Zeit mit der 6er Version.
Und warum die Frage nicht im 6er-Forum?
Und warum einen alten Thread wieder öffnen?