Autor Thema: Kalendereintrag schon da?  (Gelesen 2680 mal)

Offline Silke

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Weiblich
  • Carpe Diem
Kalendereintrag schon da?
« am: 10.04.03 - 12:36:35 »
Mein Manager möchte  ;D  einen Agenten (oder was auch immer) der beim Import einer Datei (voll mit Kalendereinträgen) überprüft ob die Einzräge schon da sind und sie ansonsten einträgt ::)
Geht das überhaupt  wenn ja wie ???
Silke 8)

1. Mitglied der 1. DAU Selbsthilfegruppe :D

Support für Alles und Jeden

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Kalendereintrag schon da?
« Antwort #1 am: 10.04.03 - 12:41:37 »
also bist Du Sänger? cool... ;D

wat ist denn der Aufhänger für einen "gleichen" Eintrag?
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Silke

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Weiblich
  • Carpe Diem
Re:Kalendereintrag schon da?
« Antwort #2 am: 10.04.03 - 12:56:05 »
also bist Du Sänger? cool... ;D

Was issn nen SÄNGER???

wat ist denn der Aufhänger für einen "gleichen" Eintrag?

Also   vooor Wochen   :o sprich Anfang des Jahres hatte er schonmal den Anfall.
Also habe ich einen Datei gebaut mit der die Geburtstage der GE eingetragen werden.    ;)
Und er möchte das diese Textdatei jetzt regelmässig gepflegt wird (von mir natürlich) und man sie alle 4-8 Wochen reinbügelt. Dabei würden dann aber doppelte ohne Ende endstehen daher die Kontrolle nach doppelten.

Ikke hab keene Ahnung ob det oder gar wie det jet
Silke 8)

1. Mitglied der 1. DAU Selbsthilfegruppe :D

Support für Alles und Jeden

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Kalendereintrag schon da?
« Antwort #3 am: 10.04.03 - 19:53:52 »
... es müsste gehen, denn in der Kalender-Dokumente haben ja Werte die du dir zum Überprüfen heranziehen kannst, den Betreff des Eintrages, den Tag und die Uhrzeiten (Dauer)...

ata
Grüßle Toni :)

Offline Silke

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Weiblich
  • Carpe Diem
Re:Kalendereintrag schon da?
« Antwort #4 am: 11.04.03 - 12:48:51 »
... es müsste gehen, denn in der Kalender-Dokumente haben ja Werte die du dir zum Überprüfen heranziehen kannst, den Betreff des Eintrages, den Tag und die Uhrzeiten (Dauer)...

ata
Danke für den guten Tip    aber dsa ist so als ob man jmd  der kein Telefon hat sagt ruf mich mal an ;D
Mit anderen Worten ich weiss zwar  nach hartem Kampf wie ich sone Liste erstellen muss um sie dann zu importieren aber das wars dann auch.  :-[

Mit anderen Worten ich brauche ein Kochrezept mit allen Zutaten und am besten noch den Topf und den Herd dazu (Anschluss nicht vergessen) ::)
Silke 8)

1. Mitglied der 1. DAU Selbsthilfegruppe :D

Support für Alles und Jeden

klaussal

  • Gast
Re:Kalendereintrag schon da?
« Antwort #5 am: 11.04.03 - 13:24:11 »
.. mach es dir doch viel einfacher:
im ersten schritt allle dokument in die tonne hauen, und dann die datei neu importieren. dabei bedenken: das geht nur, wenn niemand neue docs in die db einstellen darf / kann.

Offline Silke

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Weiblich
  • Carpe Diem
Re:Kalendereintrag schon da?
« Antwort #6 am: 11.04.03 - 13:47:34 »
...und da ist dann ja schon der Haken. Jeder hat natürlich auch noch über die Liste hinausgehende Kalendereinträge.

Ich würde da ja keinen Herrmann machen ; ;D, denn die Liste trägt ja nur die Geburtstage für ein Jahr ein und mann könne Sie fürs folgende Jahr einfach mit dem neuen Jahr versehen ;D und gut ist, aber mein Manager möchte sie auch im laufenden Jahr aktualisieren können.  Warum habe ich nicht ganz verstanden :-\
Silke 8)

1. Mitglied der 1. DAU Selbsthilfegruppe :D

Support für Alles und Jeden

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Kalendereintrag schon da?
« Antwort #7 am: 11.04.03 - 13:59:05 »
... häng mal ein Muster deiner Importdatei an, vielleicht hat ja einer Luft am WE...


ata
Grüßle Toni :)

klaussal

  • Gast
Re:Kalendereintrag schon da?
« Antwort #8 am: 11.04.03 - 14:11:26 »
hi silke,
also wenn ich das richtig verstanden habe.
NUR du pflegst die liste (und sonst kein anderer). was spricht also dagegen, die daten der ln-db jedes mal in die tonne zu hauen ?

Offline Silke

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Weiblich
  • Carpe Diem
Re:Kalendereintrag schon da?
« Antwort #9 am: 11.04.03 - 14:14:14 »
Hier eine gekürzte und namenlose (Betriebsrat) Version meiner Import Datei. Es folgen noch ca 50 Datensätze aber alle nach dem Selben Strickmuster.
Silke 8)

1. Mitglied der 1. DAU Selbsthilfegruppe :D

Support für Alles und Jeden

klaussal

  • Gast
Re:Kalendereintrag schon da?
« Antwort #10 am: 11.04.03 - 14:25:05 »
... hier mal ein kleiner auszug aus der designer-hilfe:

' Display the contents of c:\config.sys a line at a time.
Dim text As String, fileNum As Integer
fileNum% = FreeFile()
Open "c:\config.sys" For Input As fileNum%
Do While Not EOF(fileNum%)
   Line Input #1, text$
   Print text$          ' Prints one line of config.sys
Loop
Close fileNum%

jetzt musst du "nur noch" text$ zerpflücken, nachschauen ob es das doc schon gibt, wenn ja, alle felder updaten, ansonsten neues doc anlegen.

Offline Silke

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Weiblich
  • Carpe Diem
Re:Kalendereintrag schon da?
« Antwort #11 am: 11.04.03 - 14:31:18 »
jetzt musst du "nur noch" text$ zerpflücken, nachschauen ob es das doc schon gibt, wenn ja, alle felder updaten, ansonsten neues doc anlegen.

Die Worte "nur noch"   lassen mich schon schlucken  ich sitze NUR im Sekretariat ::)  habe zwar CLP Design aber die Betonung liegt auf Design   nicht so sehr auf programmieren. ;D
Silke 8)

1. Mitglied der 1. DAU Selbsthilfegruppe :D

Support für Alles und Jeden

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Kalendereintrag schon da?
« Antwort #12 am: 11.04.03 - 17:06:51 »
@Silke

CLP Design hat auch mit Programmierung zu tun - nicht nur Maskengestaltung...

... ich leg dir die Routine am WE ins Posting...

ata
Grüßle Toni :)

Offline Silke

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Weiblich
  • Carpe Diem
Re:Kalendereintrag schon da?
« Antwort #13 am: 13.04.03 - 10:00:52 »
hi silke,
also wenn ich das richtig verstanden habe.
NUR du pflegst die liste (und sonst kein anderer). was spricht also dagegen, die daten der ln-db jedes mal in die tonne zu hauen ?
Jeder importiert die Liste in seinen Kalender und hat dort auch noch andere Einträge :-\
Silke 8)

1. Mitglied der 1. DAU Selbsthilfegruppe :D

Support für Alles und Jeden

Offline Silke

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Weiblich
  • Carpe Diem
Re:Kalendereintrag schon da?
« Antwort #14 am: 13.04.03 - 10:02:03 »
@Silke

CLP Design hat auch mit Programmierung zu tun - nicht nur Maskengestaltung...


Das ist der Haaken an der Sache  ich verstehe vieles aber kann es seltern selber  :-[
Silke 8)

1. Mitglied der 1. DAU Selbsthilfegruppe :D

Support für Alles und Jeden

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Kalendereintrag schon da?
« Antwort #15 am: 13.04.03 - 23:33:54 »
... ich habe den Code nicht bis ins letzte getestet...
... es werden neue Kalendereinträge erstellt, wenn noch keine zu dieser Person eingetragen waren...

Zitat
' # Code kann in einer Aktion oder Schaltfläche verwendet werden...
' # ... Import von Geburtstagsterminen aus einer Textdatei...
' # ... Abgleich, ob ein Kalendereintrag bereits existiert,
' # ... wenn nicht, dann wird ein neuer Eintrag erstellt - ata - 04.2003
   
   Dim session As New NotesSession               ' # Wird zur initialisierung der Mail-DB benötigt
   Dim dbMail As NotesDatabase                      ' # ... die Datenbank mit den Terminen
   Dim vMailDB As Variant                           ' # ... Parameteraufahme
   Dim sSearch As  String                           ' # ... für die Suchformel
   Dim sdt As New NotesDateTime( "01/01/1990" )   ' # ... Dokumente ab diesem Datum werden gesucht
   Dim dc As NotesDocumentCollection               ' # ... alle Geburtstagseinträge in der Datenbank
   Dim doc As NotesDocument                     ' # ... bestehnder Geburtstagseintrag
   Dim docNew As NotesDocument                  ' # ... neuer Geburtstagseintrag
   Dim i As Integer                                 ' # ... Laufvariable
   Dim found As Variant                           ' # ... = True = Kalendereintrag gefunden
   Dim fileNum As Integer                           ' # ... Dateinummer - wird zum identifizieren der Importdatei benötigt
   Dim counter As Integer                           ' # .. Zählervariable
   Dim Zeile() As String                              ' # ... Array mit den eingelesenen Werten ( Grenzen bei 64K Index )
   Dim sSubject As String                           ' # ... der Betreff des Kalendereintrages - Geburtstag: Name
   Dim CalDate As NotesDateTime                  ' # ... Datum für Kalendereintrag
   Dim item As NotesItem                           ' # ... um ein Feld zu Datumsfeld zu konvertieren
   
   fileNum = Freefile()                              ' # ... der Importdatei eine Nummer vergeben
   counter = 0                                       ' # ... Zählervariable auf Null setzen
   Open "D:\Geburtstage.txt" For Input As fileNum   ' # Textdatei zum Lesen öffnen - ### Pfad korrigieren !!! ###
   Do While Not Eof(fileNum)                        ' # ... bis zum Ende der Textdatei...
      Redim Preserve Zeile(0 To counter )            ' # ... ... das Array um ein Element erweitern
      Line Input #fileNum, Zeile( counter )            ' # ... ... eine Zeile in das Array übernehmen
      counter = counter + 1                         ' # ... ... weiterzählen
   Loop                                             ' # ... wiederholen bis Ende der Textdatei erreicht
   Close fileNum
   Print Cstr(counter) + " Einträge gefunden"
      
      vMailDB = Evaluate("@MailDBName")               ' # Parameter der Maildatenbank des Users
      Set dbMail = session.GetDatabase( vMailDB(0) , vMailDB(1) ) ' # ... Maildatenbank initialisieren - Parameter eventuell anpassen
      If dbMail.IsOpen Then                           ' # ... wenn die Mail-DB geöffnet werden konnte...
         sSearch = |SELECT Form = "Appointment" & @Left( Subject ; 10 ) = "Geburtstag" | ' # ... Suchformel bilden
         Set dc = dbMail.Search( sSearch , sdt , 0)       ' # ... alle Geburtstagseinträge
         Print Cstr( dc.Count ) + " Einträge gefunden..."
         For i = 0 To counter - 1                        ' # Abarbeiten der eingelesenen Daten des Arrays
            sSubject = Mid( Zeile( i ) , 12 , Len( Zeile(i)) -11) ' # ... den gesuchten Betreffeintrag aus der Textdatei isolieren
            Print sKey + " - " sSubject                  ' # ... Kontrollausgabe für Debugging
            If dc.Count > 0 Then                        ' # ... wenn Kalendereinträge gefunden wurden
               found = False                           ' # ... zurücksetzen der flag
               Set doc = dc.GetFirstDocument         ' # ... den ersten Kalendereintrag initialisieren
               While Not doc Is Nothing                  ' # ... alle Kalendereinträge...         
                  If  Trim( doc.Subject(0) ) = Trim( sSubject ) Then   ' # ... ... wenn es ein Geburtstagseintrag ist, dann            
                     found = True                     ' # ... ... flag auf True setzen
                     Goto IsFound                     ' # ... ... keine weitere Suche notwendig - springe zu IsFound
                  End If
                  Set doc = dc.GetNextDocument(doc)   ' # ... ... ächsten Kalendereintag, solange noch nicht gefunden
               Wend                                 ' # ... alle Kalendereinträge sind abgearbeitet
IsFound:
               If found Then                            ' # Sollte der Eintrag gefunden worden sein, dann...
                  Print "Gefunden: " + sSubject          ' # ... ... Kontrollausgabe für Debugging
               Else                                    ' # ... ansonsten
                  Goto Neuanlage                     ' # ... Geburtstagseintrag nicht gefunden => Neuanlage eines Dokumentes
               End If
            Else                                       ' # ... keine Kalendereinträge mit "Geburtstag" gefunden, bzw. Neuanlage
Neuanlage:
               Print "Neuanlage: " + sSubject             ' # ... Kontrollausgabe für Debugging
               Set docNew = dbMail.CreateDocument    ' # Neues Dokument in der Mail-DB erstellen
               docNew.Form = "Appointment"                                 ' # ... Termineintrag
               docNew.AppointmentType = "1"                                 ' # ... Jahrestag
               Set calDate = New NotesDateTime( Left(Zeile( i ) , 10 ) + " 07:00:00"  )
               Set item = New NotesItem( docNew , "CalendarDateTime" , calDate.LsLocalTime)
               item.IsSummary = True
               Set calDate = New NotesDateTime( Left(Zeile( i ) , 10 ) + " 23:59:59"  )
               Set item = New NotesItem( docNew , "EndDateTime" , calDate.LsLocalTime)
               item.IsSummary = True
               Call docNew.ReplaceItemValue("$CSVersion" , "2")
               Call docNew.ReplaceItemValue("Subject" , sSubject)             ' # ... Betreff des Termines
               Call docNew.ReplaceItemValue("_ViewIcon" , 63)                ' # ... Appointment-Icon für gleiches Display
               Call docNew.ReplaceItemValue("$Alarm" , "1")                   ' # ... Alarm einschalten
               Call docNew.ReplaceItemValue("$AlarmDescription" , sSubject )   ' # ... Alarminhalt
               Call docNew.ReplaceItemValue("$AlarmOffset" , -1440 * 1 )       ' # ... 1 = einen Tag davor benachrichtigen
               Call docNew.Save( True , True )         ' # Kalendereintrag in der Mail-DB speichern
            End If
         Next
         Print "Import der Geburtstage abgeschlossen."
      Else
         Print "Maildatenbank konnte nicht geöffnet werden." ' # ... Kontrollmeldung: Kein Import möglich - nur zur Absicherung
      End If   

... ich denke das war was du brauchst,
... ich hab' es ausfühlich kommentiert...

ata
« Letzte Änderung: 13.04.03 - 23:40:42 von ata »
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz