Autor Thema: Ideensammlung - Dokument einfach vervielfältigen -  (Gelesen 3648 mal)

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Hallo Forum,

ich wollte mal nach ein paar Anregungen fragen. Ich soll eine Art Schichtplanung in Notes für Hausmeister verwirklichen. Die sind immer ein paar Wochen an einem Objekt tätig, haben eine Soll-Zeit und dann auch eine Ist Zeit wenn der Einsatz rum ist.
Ich dachte zuerst an eine Maske mit :

Objektname
Hausmeistername
Eingesetzt von  (Tag)
Eingesetzt bis   (Tag)
Sollzeitbeginn  (Uhrzeit)
Sollzeitende  (Uhrzeit)

Das ganze schön aufdröseln und im Kalender dann an den entsprechenden Tagen anzeigen lassen.

Nun hab ich aber die Sache mit der Sollzeit, da sollten die Hausmeister dann ihre tatsächliche Arbeitszeit eintragen. Innerhalb eines einzigen Dokumentes meiner Meinung nach aber total umständlich, weil sie mal so, mal so arbeiten, und die Möglichkeit haben ggf. Tage anzupassen.

Also wäre es m.E. besser, je Tag ein Dokument zu erstellen und dieses zu bearbeiten.

Ich suche nun für den Schichtplaner eine einfach Möglichkeit für einen größeren Zeitraum für jeden Tag ein Dokument zu erstellen. Also z.B. er gibt für einen Hausmeister ein, dass der im Rathaus den ganzen Januar von 6 - 12 Uhr anwesend sein soll, und ich bekomme dann 31 Dokumente für jeden Tag, mit der entsprechenden Soll-Zeit.

Wie würdet ihr das realisieren?

Ich wünsche ein schönes Wochenende

Thomas
Thomas von der IuK

Offline WernerMo

  • @Notes Preisträger
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.050
  • Geschlecht: Männlich
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #1 am: 09.11.07 - 15:40:23 »
Hallo

da hätte ich vorher noch einige Fragen:
1. Wie hängen die Doku (logisch) zusammen? (Einsatz von bis)?
2. Wie sollen Änderungen eingepflegt übertragen werden (z.B. Anfang und /oder Ende ändert sich)?
3. Welche Infos müssen noch rein in so eine "Tagesbuchung"?

Gruß Werner
Gruß Werner
  o                                                  o   
 /@\  Nächster @Notes-Stammtisch  /@\  online Sept. 2020?
_/_\__________________________/_\_ Details folgen.

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #2 am: 09.11.07 - 16:03:35 »
Hallo Werner,

vielen Dank für deine Rückmeldung

zu 1.  Eigentlich sehe ich keinen Grund dass die Logisch irgendwie zusammenhängen sollten. In der Datenbank werden bestimmte Leute Veranstaltungen einpflegen, andere werden die Hausmeister einpflegen. Beides hängt bei uns nicht zusammen. Daher gibt es aus dieser (denkbaren) Sicht keinen Grund eine logische Verknüpfung der einzelnen Datensätze zu erreichen, da z.B. die Veranstaltung 5 Tage am Stück geht, aber jeden Tag ein anderer Hausmeister da ist.

Im Grunde hat unser Schichtplaner derzeit eine große Tabelle (Stundenplan) in der er mit Farbstift die Schichtzeiten einträgt, halt einen langen waagerechten Strich vom 1. des Monats bis z.B. zum 14. Das ist recht einfach, und soll natürlich auch weiterhin recht einfach bleiben.  Der erstellte Schichtplan ändert sich nur in Kleinigkeiten, also hier oder da mal ein Tag der wegfällt, natürlich bei Krankheiten auch mal mehr.

Zu 2.   Anfang und Ende der Sollzeit ändert sich in der Regel nicht, nur die Istzeiten sind anders. Da sollte also irgendjemand in das Dokument vom entsprechenden Tag reinklicken und die Istzeiten einpflegen (extra Felder, da die Sollzeiten erhalten bleiben sollen)

3. Es müssen ausser Name, Vorname, Beginn und Ende, Objekt und Betreuungsart (Einzelbetreuung, Springer, Mehrfachbetreuung ... ) keine komplizierten Daten mit rein, da wie ja oben schon gesagt, die Veranstaltungen und was sonst so in den Objekten los ist, in anderen Masken gepflegt und dann einfach im Kalender zusammengeworfen werden.


Interessieren würde mich nun wirklich hauptsächlich mal als erstes, wie ich es schaffe, mit möglichst wenigen Einträgen sowas wie mit der Tabelle hinzukriegen, also z.B. 10 Hausmeister möglichst schnell für einen Monat zu verplanen, und dabei 10 * 31 Tage = 310 Dokumente bekomme mit den entsprechenden Infos je Tag.

 
Thomas von der IuK

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #3 am: 09.11.07 - 16:09:46 »
Deine Intention kann ich nachvollziehen, Thomas, und einen Zusammenhang stellst Du ja schon selber her (Name, dann auch Einsatzort und -art).

Wo liegt jetzt aber Dein Problem, automatisiert x Dokumente auf einmal anzulegen? Dieses würde sich ja erst durch weitere Randbedingungen (Feiertage zum Beispiel oder "X arbeitet donnerstags nicht") ergeben. Vor allem natürlich auch dadurch, dass bereits vergebene Zeiten nicht derart doppelt vergeben werden dürfen.
Du brauchst doch nur eine Dialogbox, in der Start, Ende, Name, Einsatzort etc. eingegeben werden können. Auf Basis dieser Daten erzeugst Du dann die erforderlichen Dokumente im Backend.

Bernhard

Offline WernerMo

  • @Notes Preisträger
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.050
  • Geschlecht: Männlich
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #4 am: 09.11.07 - 16:11:20 »
Hallo

ich bin nicht ganz sicher ob ich alles richtig verstanden habe, aber wenn das im Prinzip fix ist, dann könnte man doch einen periodischen Agenten machen, der immer am ersten Tag des Monats um z.B. 4:00 Uhr startet und für alle Tage des Monats diese 10 Dokumente pro Tag (evtl. über ein "Psudoprofildokument" eingesteuerte Zahl) erzeugt.

Gruß Werner
Gruß Werner
  o                                                  o   
 /@\  Nächster @Notes-Stammtisch  /@\  online Sept. 2020?
_/_\__________________________/_\_ Details folgen.

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #5 am: 09.11.07 - 16:25:09 »
Oh, Hallo Bernhard, auch noch am schaffen :-)

Ich bin, wie gesagt ein wenig am Ideen sammeln, und habe ja nun schonmal zwei Stichworte, nämlich Dialogbox und Pseudoprofildokument, denen ich nachgehen kann.

Es gibt vielleicht mehrere Vorgehensweisen, die ich noch nicht so recht kenne.

Was mir z.B. auch im Kopf rumgeht, ist eine Maske mit einer (dynamischen?) Tabelle, in der die Namen der Hausmeister senkrecht, die Wochentage waagerecht stehen, und wo der Planer dann nur seine "x"le bei Früh- oder Spätschicht hinsetzt, und dann die entsprechenden Dokumente generiert werden.

Das wäre möglicherweise noch einfacher als die Sache mit der Dialogbox, die ich (ich gestehe) noch nie verwendet habe, da sich sowas in meiner bisherigen, kurzen Notesprogrammierzeit noch nie ergeben hat.

Fakt ist, das bleibt aber unter uns, das ich es nachher mit Personen zu tun habe, die handwerklich topfit sind, am computer aber ... hüstel ... räusper ... schwbdiwpp ... sind. Da muss es total einfach zugehen. Wie ich es hinbekomme ist erstmal zweitrangig.

(wie immer halt  ;) )
Thomas von der IuK

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #6 am: 09.11.07 - 16:27:22 »
Fast hätte ich Werner vergessen.

Es ist nicht immer Fix, natürlich rotieren die Hausmeister, mal haben Sie Frühschicht, mal Spätschicht, mal sind sie in dem Objekt, mal dort.
Thomas von der IuK

Offline WernerMo

  • @Notes Preisträger
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.050
  • Geschlecht: Männlich
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #7 am: 09.11.07 - 17:26:44 »
Hallo,

Im Grunde hat unser Schichtplaner derzeit eine große Tabelle (Stundenplan) in der er mit Farbstift die Schichtzeiten einträgt, halt einen langen waagerechten Strich vom 1. des Monats bis z.B. zum 14. Das ist recht einfach, und soll natürlich auch weiterhin recht einfach bleiben.  Der erstellte Schichtplan ändert sich nur in Kleinigkeiten, also hier oder da mal ein Tag der wegfällt, natürlich bei Krankheiten auch mal mehr.

Zu 2.   Anfang und Ende der Sollzeit ändert sich in der Regel nicht, nur die Istzeiten sind anders. Da sollte also irgendjemand in das Dokument vom entsprechenden Tag reinklicken und die Istzeiten einpflegen (extra Felder, da die Sollzeiten erhalten bleiben sollen)

hatte ich so verstanden, dass zumindest die Anzahl fix ist (nicht die Belegung).
Mir würde es sehr helfen, wenn Du ein (ganz einfaches - schematisches) bild von diesem Blatt des Schichtplans hier posten könntest (oder mailen, wenn das nicht erlaubt ist).

Grüße Werner
« Letzte Änderung: 09.11.07 - 17:28:31 von WernerMo »
Gruß Werner
  o                                                  o   
 /@\  Nächster @Notes-Stammtisch  /@\  online Sept. 2020?
_/_\__________________________/_\_ Details folgen.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #8 am: 09.11.07 - 17:33:10 »
Wieso, Werner? Thomas hat sein Ziel doch insofern sauber aufgemalt: Person X soll von A bis B in M arbeiten. Dafür sollen automatisch die erforderlichen Dokumente - basierend jeweils auf einem Tag - erzeugt werden.

@Thomas: Von der "document per day"-Methodik würde ich nicht abgehen.

Bernhard

Offline WernerMo

  • @Notes Preisträger
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.050
  • Geschlecht: Männlich
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #9 am: 09.11.07 - 17:40:40 »
Hallo Bernhard

Von der "document per day"-Methodik würde ich nicht abgehen.

Da bin ich ganz bei Dir (evtl. sind es zwar "Halbtage").
Ich würde nur gerne noch Regelmäßigkeiten erkennen/verstehen, um diese in einem periodischen Agenten - wie oben beschrieben - umzusetzen.

Gruß Werner
Gruß Werner
  o                                                  o   
 /@\  Nächster @Notes-Stammtisch  /@\  online Sept. 2020?
_/_\__________________________/_\_ Details folgen.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #10 am: 09.11.07 - 17:44:25 »
Reicht das nicht als Regelmässigkeit, Werner:
dass der im Rathaus den ganzen Januar von 6 - 12 Uhr anwesend sein soll

Die Aufgabe ist (bis dahin!!!) doch wirklich erstmal einfach.

Bernhard

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #11 am: 09.11.07 - 22:26:16 »
Hallo Werner, Hallo Bernhard,

bin wieder da.

@Werner:  Du kennst doch sicherlich diese großen Kalender an der Wand, Waagerecht die Monate mit den einzelnen Tagen. Nun nimmt der Schichtplaner den roten Stift für den Werner und malt einen Strich vom 1.1. bis zum 7.1. in der oberen Hälfte der Tage. (Frühschicht) Dann einen Strich vom 8.1. bis zum 15.1. in der unteren Hälfte (Spätschicht). Dann nimmt er den grünen Stift für den Bernhard, und malt vom 1.1. bis zum 7.1. in der unteren Hälfte (Spätschicht) und vom 8.1. bis zum 15.1 in der oberen Hälfte (Frühschicht) einen Strich. Fertig. Und das halt je Objekt mit zig Hausmeistern, die Woche für Woche auch in den Objekten rotieren, und inzwischen den Überblick verlieren wer wann, wo zu sein hat, insbesondere wenn man nicht regelmäßig eine aktualisierte Kopie des Planes bekommt.

Das ganze nennt sich Hausmeisterpool, was heisst, dass nicht ein Hausmeister für ein Objekt tätig ist, sondern ein Hauptobjekt hat, und Nebenobjekte bei denen er mithelfen muss.

Leider gibt es keine Regelmäßigkeit die ich erkennen kann, die Planung erfolgt immer Quartalsweise, ein Quartal im voraus, und ändert sich jedesmal total, weil halt auf die persönlichen Gegebenheiten (Urlaub usw) eingegangen werden muss.

Eins ist mir inzwischen schon klarer geworden, die "Dokument per Day" Variante ist es noch nicht, es muss eine "Dokument per Day and Objekt" sein, also tatsächlich sowas wie Halbtage. Heisst, die Eingaben verdoppeln sich. Bei 10 Hausmeistern, 31 Tagen und 2 Schichten sind das schon 620 Dokumente je Monat.

Ich hab sowas bisher noch nie gemacht, aber im Grunde wird es ja wohl eine Maske sein, die über Agent oder Script mit den schon o.g. Vorgaben zig mal gefüllt und abgespeichert wird.

Über ein paar Stichworte (Befehle) zur Vorgehensweise wäre ich dankbar, muss kein Code sein, nur halt irgendwas wo ich mal nachlesen könnte.

Was ist mit meiner anderen Idee, hat sowas jemand schon mal gesehen? Ist sowas machbar? Ich gebe einen Namen ein und den Monat, es öffnet sich eine Maske mit einer Tabelle (vergleichbar mit dem o.g. Wandkalender) und ich kann in den einzelnen Zellen dann z.B. ein Objekt oder Früh/Spätschicht an"x"en?

Gibt es vielleicht noch andere Ideen, einen Schichtplan einfach zu erstellen, und, was vielleicht später mal noch interessant sein könnte, auch einfach darzustellen?


Ich möchte hier übrigens nicht versäumen mich wiedermal für Eure Hilfe zu bedanken, ich glaube ich muss irgendwann mal in den offtopics ein paar Worte über meine Wenigkeit und meinen Werdegang hier im Rathaus (vom Beamten im Sozialamt bis hin zum Notesprogrammierer) verlieren, damit ihr Euch nicht zu sehr über meine vielleicht manchmal einfachen Fragen wundert.

Gute Nacht Deutschland

Thomas
Thomas von der IuK

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #12 am: 13.11.07 - 16:11:34 »
Hallo,
also ich hab mir das mal durch den Kopf gehen lassen und mich ein wenig eingelesen. Das mit der Dialogbox scheint mir der richtige Weg zu sein. Aktionsbutton in der Ansicht, Dialogbox öffnen in der nur Name, Objekt und von-bis eingegeben wird. Von-Bis Exploden und dann für die entsprechende Anzahl von Tagen neue Dokumente anlegen.

Was mir nun noch nicht ganz klar ist:

a) Geht sowas eigentlich auch mit Formelsprache? Mir scheint eher nein, aber ist mir noch nicht klar.

b) Wie um alles in der Welt bekomme ich die Einträge aus der Dialogbox in die Dokumente? Ich will die Dialogbox NICHT aus einer Maske heraus aufrufen, sondern von der Ansicht aus, und dann auch nicht das (zufälligerweise) markiere Dokument damit füllen, sondern neue Dokumente. Neue Dokumente erstellen bekomme ich wohl über db.createDocument hin (kanns grad nicht ausprobieren, sitze zuhause Kind hüten) aber die Übergabe ... da hab ich noch keinen Plan.

Würde mich wie immer über ein paar Stichworte freuen.

Thomas
Thomas von der IuK

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #13 am: 13.11.07 - 16:26:05 »
zu b.

Das kann (ganz vereinfacht) so aussehen:

...

'Dialog anzeigen
Set dlgdoc = New NotesDocument(db)
If workspace.DialogBox( "NameDerDialogmaske", True, True, False, False, False, False, "Export", dlgdoc, True) Then

   'Neues Dokument anlegen
   Set newdoc = New NotesDocument(db)
   newdoc.Form = NameDerDokumentmaske

   'Übernahme der Daten aus Dialog
   newdoc.Feld1 = dlgdoc.Feld1
   newdoc.Feld2 = dlgdoc.Feld2
   'usw.
...


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #14 am: 13.11.07 - 16:58:55 »
Hallo Axel,

ist das so korrekt dass da keine Bedingung nach den IF folgt? Oder heisst das im Grunde:
Wenn in der Dialogbox was ausgefüllt wurde, dann?

Gruß
Thomas
Thomas von der IuK

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #15 am: 13.11.07 - 17:11:42 »
Du siehst das richtig: NotesUIWorkspace.DialogBox gibt False zurück, wenn der Benutzer auf Abbrechen geklickt hat. Dann braucht man auch nichts mehr zu machen.
Weiters: Dein Vorhaben ist mit Formelsprache nicht zu realisieren, sowas geht nur mit LS. Oder Java oder C/C++ oder VB oder VBA usw.

Ich stelle Dir unten mal aus einer Zeiterfassung die Routine ein, die verantwortlich ist für das Erstellen mehrtägiger Einträge. Direkt nützen wird Dir das nix (es werden etliche weitere Module aufgerufen), aber ein paar Prinzipien (z.B. Schleifen über n Tage von - bis etc.) wirst Du ggf. gebrauchen können.

Bernhard

Code
Sub CreateRepeatingEntry ()
	'==================================================================================================================
	' Purpose:		Creates repeating time registration entries
	'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	' Arguments:	Nothing
	'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	' Returns:		Nothing
	'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	' Created by:  	Bernhard Koehler on 14.12.2004            Modified by: Bernhard Koehler on 09.11.2007
	'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
	' Changes:		BK on 17.12.2004 - enhance the tests for IsFreeTime and CheckOrderValidity
	'					BK on 21.12.2004 - Add the items Department and Region
	'					BK on 22.12.2004 - Add the DocID
	'					BK on 03.01.2005 - Correct the items names to read department and region from the global setup document
	'					BK on 27.01.2005 - Add CostCenter details from the order
	'					BK on 09.11.2007 - Replace "StartWeekday" with "StartDateWeekday"
	'==================================================================================================================
	
	Const VIEW_ORDERS_NAME = "(LookupOrderByNumbers)"
	Const RULE_ALLDAY = "1"
	Const RULE_PARTDAY = "2"
	Const RULE_FLEXDAY = "3"
	
	Dim ws As New NotesUIWorkspace
	Dim session As New NotesSession
	Dim dbCurrent As NotesDatabase
	Dim dbConfig As NotesDatabase
	Dim viewLookupOrders As NotesView
	Dim docSetup As NotesDocument
	Dim docOrder As NotesDocument
	Dim docDialog As NotesDocument	
	Dim docTemp As NotesDocument
	Dim docEntry As NotesDocument
	Dim itemAccess As NotesItem
	
	Dim szErrorMessage As String
	Dim vLoop As Variant
	Dim vTemp As Variant
	Dim dblWorkingHours As Double
	
	On Error Goto ErrorRoutine
	
	'The preliminary settings:
	Set dbCurrent = session.CurrentDatabase
	Set docSetup = GetSetupDocument (True, "Global Setup", szErrorMessage)
	If docSetup Is Nothing Then
		Exit Sub
	End If
	
	'Check for a correct setup (the worktime per date area):
	If CheckGlobalSetup (True, docSetup, szErrorMessage) = False Then
		Exit Sub
	End If
	
	'Get a dialog box to retrieve the user's data:
	Set docDialog = dbCurrent.CreateDocument
	docDialog.Form = "(DialogDateRangeEntry)"
	docDialog.TRUser = docSetup.TRUserName (0)
	docDialog.TRCreator = session.UserName
	docDialog.Department = docSetup.TRDepartment
	docDialog.Region = docSetup.TRRegion
	
	If ws.DialogBox ("(DialogDateRangeEntry)", True, True, False, False, False, False, "Mehrtägige Zeiterfassung", docDialog, True, False) = False Then
		Exit Sub										'The user pressed Escape and canceled the action !
	End If
	
	'Get the order document:
	Set dbConfig = GetDBConfig (True, szErrorMessage)
	If dbConfig Is Nothing Then
		Exit Sub
	End If
	
	Set viewLookupOrders = dbConfig.GetView (VIEW_ORDERS_NAME)
	If viewLookupOrders Is Nothing Then
		Messagebox "Die Ansicht '" & VIEW_ORDERS_NAME & "' wurde in der Auftrags-DB nicht gefunden !" & MSG_INFORM_ADMIN, MB_ICONEXCLAMATION, "Fehler"
		Exit Sub
	End If
	
	Set docOrder = viewLookupOrders.GetDocumentByKey (docDialog.OrderNo (0), True)
	If docOrder Is Nothing Then
		Messagebox "Der gewählte Auftrag Nr. " & docDialog.OrderNo (0) & " konnte nicht geöffnet werden !" & MSG_INFORM_ADMIN, MB_ICONEXCLAMATION, "Fehler"
		Exit Sub		
	End If
	
	'Make the necessary checks before creating new documents:
	Set docTemp = Nothing
	Set docTemp = dbCurrent.CreateDocument
	docTemp.TRUser = docDialog.TRUser
	docTemp.OrderNo = docDialog.OrderNo
	docTemp.StartDate = docDialog.StartDate
	docTemp.StartTime = docDialog.StartTime
	docTemp.EndTime = docDialog.EndTime
	
	'Loop through the given date range and make the necessary checks:	
	For vLoop = docDialog.StartDate (0) To docDialog.EndDate (0) Step 1
		'Get the standard working hours for the current weekday:
		vTemp = docSetup.GetItemValue ("Hours" & Cstr (Weekday (vLoop)))
		dblWorkingHours = vTemp (0)
		
		If (dblWorkingHours > 0) Or docOrder.OrderDateRangeRule (0) = RULE_FLEXDAY Then	'Build entries only for working days except for orders with FLEXDAY rule!
			If docOrder.OrderDateRangeRule (0) = RULE_ALLDAY Then			'Build a new start and end time:
				docTemp.StartTime = Timenumber (8, 0, 0)
				docTemp.EndTime = docDialog.StartTime (0) + (dblWorkingHours / 24)
			End If
			
			docTemp.StartDate = vLoop
			Call NormalizeStartEndTime (docTemp)
			
			If IsFreeTime (False, docTemp, szErrorMessage) = False Then
				Messagebox "Die Einträge können nicht erstellt werden, weil:" & Chr$ (10) & szErrorMessage & Chr$ (10) & Chr$ (10) &_
				"Die Operation wurde gestoppt !"
				Exit Sub
			End If
			
			If CheckOrderValidity (False, docTemp, szErrorMessage) = False Then
				Messagebox "Die Einträge können nicht erstellt werden, weil:" & Chr$ (10) & szErrorMessage & Chr$ (10) & Chr$ (10) &_
				"Die Operation wurde gestoppt !"
				Exit Sub
			End If
			
		End If 'of "If (dblWorkingHours > 0) Or docOrder.OrderDateRangeRule (0) = RULE_FLEXDAY Then"
		
	Next
	
	
	'Loop through the given date range to create repeating entries:
	For vLoop = docDialog.StartDate (0) To docDialog.EndDate (0) Step 1
		
		'Get the standard working hours for the current weekday:
		vTemp = docSetup.GetItemValue ("Hours" & Cstr (Weekday (vLoop)))
		dblWorkingHours = vTemp (0)
		
		'Check if the given day is a red letter day:
		Dim vWorkingDays As Variant						'An array of the user's working days - we don't use this functionality of function GetWorkingAndRedLetterDays
		Dim vRedLetterDates As Variant
		Dim vRedLetterDayNames As Variant
		Dim dblWorkingDays As Double
		
		dblWorkingDays = GetWorkingAndRedLetterDays (vLoop, vLoop, docDialog.Region (0), vWorkingDays, vRedLetterDates, vRedLetterDayNames)
		If dblWorkingDays = 0 Then
			dblWorkingHours = 0
		Else
			If dblWorkingDays < 1 Then
				dblWorkingHours = dblWorkingHours * dblWorkingDays 	'for partial red letter days ...	
			End If
		End If
		
		
		If (dblWorkingHours > 0) Or docOrder.OrderDateRangeRule (0) = RULE_FLEXDAY Then	'Build entries only for working days except for orders with FLEXDAY rule!
			If docOrder.OrderDateRangeRule (0) = RULE_ALLDAY Then			'Build a new start and end time:
				docDialog.StartTime = Timenumber (8, 0, 0)
				docDialog.EndTime = docDialog.StartTime (0) + (dblWorkingHours / 24)
			End If
			
			'Create the time registration document:
			Set docEntry = dbCurrent.CreateDocument	
			docEntry.Form = "TimeRegistration"
			docEntry.DocID = docEntry.UniversalID
			docEntry.TRUser = docDialog.TRUser
			docEntry.TRCreator = docDialog.TRCreator
			docEntry.Department = docDialog.Department
			docEntry.Region = docDialog.Region
			docEntry.Order = docDialog.Order
			docEntry.OrderNo = docDialog.OrderNo
			docEntry.CostCenterNo = docDialog.CostCenterNo
			docEntry.CostCenterDescription = docDialog.CostCenterDescription
			docEntry.Customer = docDialog.Customer
			docEntry.Location = docDialog.Location
			docEntry.Activity = docDialog.Activity
			docEntry.Description = docDialog.Description
			If docEntry.Description (0) = "" Then docEntry.Description = docDialog.Activity
			docEntry.StartDate = vLoop
			docEntry.StartTime = vLoop + docDialog.StartTime (0)
			docEntry.EndTime = vLoop + docDialog.EndTime (0)
			docEntry.Duration = GetTimeDifferenceMin (docEntry.StartTime (0), docEntry.EndTime (0))
			docEntry.StartDateWeekday = g_WeekdayNames (Weekday (docEntry.StartDate (0)))
			docEntry.WeekNo = CalculateWeekNo (docEntry.StartDate (0))
			
			'Set the author and reader access:
			docEntry.AllowedAuthors = ArrayAdd ("[Administrator]", "[TREditor]")
			Set itemAccess = docEntry.GetFirstItem ("AllowedAuthors")
			itemAccess.IsAuthors = True
			
			docEntry.AllowedReaders = ArrayAdd ("[Administrator]", "[TRReader]")
			Set itemAccess = docEntry.GetFirstItem ("AllowedReaders")
			itemAccess.IsReaders = True
			
			Call StoreVersionNo (docEntry)
			Call UpdateHistory (docEntry, "Erstellt", 10)
			docEntry.DTSaved = Now
			
			Call SetTRUserNameChanges (docEntry)
			
			Call docEntry.Save (True, False, True)			
			Print "Eintrag erstellt für den " & Cstr (docEntry.StartDate (0)) & " von " & Cstr (docEntry.StartTime (0)) & " bis " & Cstr (docEntry.EndTime (0))
			
		End If 'of "If (dblWorkingHours > 0) Or docOrder.OrderDateRangeRule (0) = RULE_FLEXDAY"
		
	Next
	
	'Clear the status bar:
	Print
	
	'Refresh the view:
	Call ws.ViewRefresh
	
	Exit Sub
	
ErrorRoutine:
	Call ErrorHandler ("CreateRepeatingTREntries")
	Exit Sub	
End Sub

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Ideensammlung - Dokument einfach vervielfältigen -
« Antwort #16 am: 13.11.07 - 17:18:42 »
Ups,
durch diesen Eintrag hat sich die Textmenge in diesem Thread verdoppelt  :D

Na da hab ich ja was zum lesen. Grad hab ich per Mail von meinem Chef die Mitteilung bekommen dass wir morgen was ganz anderes weiterführen müssen (Mitarbeiterbewertung). Da sind wir schon recht weit, jetzt gehts nur noch um Ausdrucke usw.

Aber ich werde auf jeden Fall dranbleiben und mir das zu Gemüte führen. Ich halte Euch auf dem Laufenden.
Ich denk mal mit den beiden letzten Antworten habt ihr mir schon viel geholfen was die Realisierung angeht.

Thomas
Thomas von der IuK

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz