Outlook Adressen
Moderator: Moderatoren
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Outlook Adressen
Hallo,
ich habe erfolgreich den Abgleich von Kontakten meiner Anwendung mit denen von Outlook integriert. Nun möchte ich aber die Zeit wissen, wann der Outlook-Kontakt zuletzt geändert wurde. Dafür lese ich das property
"LastModificationTime" vom Contactitem aus, aber das bringt mir nur ein Datum, nicht die Zeit.
Kann mir jemand sagen, wie ich an den Zeitwert herankomme ?
ich habe erfolgreich den Abgleich von Kontakten meiner Anwendung mit denen von Outlook integriert. Nun möchte ich aber die Zeit wissen, wann der Outlook-Kontakt zuletzt geändert wurde. Dafür lese ich das property
"LastModificationTime" vom Contactitem aus, aber das bringt mir nur ein Datum, nicht die Zeit.
Kann mir jemand sagen, wie ich an den Zeitwert herankomme ?
Viele Grüße
Wolfgang
Wolfgang
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Wolfgang,
da kann ich Dir auch nicht wirklich weiterhelfen - nur der Hinweis:
Von der VBA-Programmierung her weiß ich, dass ein Wert vom Typ DateTime (und dabei wird es sich in Deinem Fall wohl handeln) nur das Datum "zurückgibt", wenn man es einer Variablen vom Typ Date zuweist (da diese ja keinerlei Zeitinformationen kennt)!
Intern ist ein DateTime eh' als riesig große Zahl gespeichert - nämlich als Anzahl Sekunden, die seit einem bestimmten Datum (01.01.1904? Bin ich mir nicht sicher...) vergangen sind. Das wird dann umgerechnet in ein Datum und das was übrig bleibt, ist dann die Uhrzeit an dem entsprechenden Datum.
Vielleicht hilft Dir das ein wenig weiter?
Viele Grüße,
Martin
da kann ich Dir auch nicht wirklich weiterhelfen - nur der Hinweis:
Von der VBA-Programmierung her weiß ich, dass ein Wert vom Typ DateTime (und dabei wird es sich in Deinem Fall wohl handeln) nur das Datum "zurückgibt", wenn man es einer Variablen vom Typ Date zuweist (da diese ja keinerlei Zeitinformationen kennt)!
Intern ist ein DateTime eh' als riesig große Zahl gespeichert - nämlich als Anzahl Sekunden, die seit einem bestimmten Datum (01.01.1904? Bin ich mir nicht sicher...) vergangen sind. Das wird dann umgerechnet in ein Datum und das was übrig bleibt, ist dann die Uhrzeit an dem entsprechenden Datum.
Vielleicht hilft Dir das ein wenig weiter?
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Wolfgang,
möglich. Und Xbase++ kennt kein DateTime - also versuchen, das als String zu interpretieren und dann die Angaben selber umwandeln.
Viele Grüße,
Martin
möglich. Und Xbase++ kennt kein DateTime - also versuchen, das als String zu interpretieren und dann die Angaben selber umwandeln.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
-
- Rekursionen-Architekt
- Beiträge: 315
- Registriert: Mo, 16. Okt 2006 13:04
- Wohnort: Region Stuttgart
Hallo Wolfgang,
den Dank möchte ich an Andreas Herdt weiterreichen, der letztes Jahr in der ActiveX-Newsgroup folgendes schrieb:
Günter
den Dank möchte ich an Andreas Herdt weiterreichen, der letztes Jahr in der ActiveX-Newsgroup folgendes schrieb:
Viele Grüße,Andreas Herdt hat geschrieben: Re: importing data from outlook2003 Calendar
Currently there is no way to get/set time information.
The next refresh will contain a fix for this problem.
A new method will be introduced
AutomationObject:treatDateAsString( .T. | .F. ) // default .F.
If .T. is set then the date will be returned as character string
in the following syntax:
"YYYYMMDDHHMMSS"
Günter
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Hallo Wolfgang,
kannst Du mir sagen wie dies gehen soll
oAutomationObject:TreatDateAsString(.T.)
Ich lese dies aus mit:
Wenn ich schreibe
Hab ich "oAutomationObject" retour aber kein String.
Gruss Thomas
kannst Du mir sagen wie dies gehen soll
oAutomationObject:TreatDateAsString(.T.)
Ich lese dies aus mit:
Code: Alles auswählen
oContact:LastModificationTime
Code: Alles auswählen
oContact:TreatDateAsString(.T.)
Gruss Thomas
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Hallo Thomas,
du musst nicht bei oContact, dh. einem Kontaktitem sondern beim oOutlook diese Eigenschaft setzen.
du musst nicht bei oContact, dh. einem Kontaktitem sondern beim oOutlook diese Eigenschaft setzen.
Code: Alles auswählen
oOutlook := CreateObject( "Outlook.Application" )
.....
oOutlook:TreatDateAsString(.T.)
....
ol_dt:=m->oContact:LastModificationTime
ol_date:=stod(substr(ol_dt,1,8))
ol_time:=substr(ol_dt,9,2)+":"+substr(ol_dt,11,2)+":"+substr(ol_dt,13,2)
Viele Grüße
Wolfgang
Wolfgang
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Abgleichen
Hallo Wolfgang,
Ich hab Probleme mit Abgleichen, da ich die Daten von einem Ordner in den Kontakten nicht überschreiben lassen.Es wird zusätzlich ein neuer Kontakt geschrieben mit gleichen Daten.
Kann ich dies Umgehen?
Weisst Du vielleicht noch wie ich diese Felder ansprechen kann:
Details->Abteilung und Büro
Gruss Thomas
Ich hab Probleme mit Abgleichen, da ich die Daten von einem Ordner in den Kontakten nicht überschreiben lassen.Es wird zusätzlich ein neuer Kontakt geschrieben mit gleichen Daten.
Kann ich dies Umgehen?
Weisst Du vielleicht noch wie ich diese Felder ansprechen kann:
Details->Abteilung und Büro
Gruss Thomas
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Hallo Thomas,
ich habe das so gelöst, dass ich jedem Kontakt eine eindeutige Nummer gebe (z.B. Kundennummer), diese schreibe ich beim Anlegen in das Outlookfeld CustomerID. Beim Abgleichen suche ich dann nach der Nummer, wenn vorhanden, ersetze ich die Daten, ansonsten Neuanlage. Zum Suchen verwende ich folgendes:
Zu den Felder:
Die sind immer ein wenig schwer über die englischen Bezeichnungen zuzuordnen, ich denke es könnten die Felder OfficeLocation, Department sein, am Besten wäre es wahrscheinlich alle Felder in Outlook zu beschreiben und dann auszulesen. Ich kann dir gerne eine Hilfe-Datei zusenden, in der alle Methoden, Events und Properties der AktiveX Komponente enthalten sind, wenn du mir eine private email schickst (ciriack_at_ciju.de)
ich habe das so gelöst, dass ich jedem Kontakt eine eindeutige Nummer gebe (z.B. Kundennummer), diese schreibe ich beim Anlegen in das Outlookfeld CustomerID. Beim Abgleichen suche ich dann nach der Nummer, wenn vorhanden, ersetze ich die Daten, ansonsten Neuanlage. Zum Suchen verwende ich folgendes:
Code: Alles auswählen
function ChangeOlSatz(oC)
local retw:=0, oI, v_dt, v_d, v_t
local sSearch:="[CustomerID] = '"+outl->o_id+"'"
** in o_id ist die Nummer als string gespeichert
oI:=oC:Items:Find(sSearch)
if oI<>NIL
oI:CompanyName:=alltrim(outl->firma)
oI:FileAs:=alltrim(outl->firma)
if alltrim(upper(outl->firma))<>alltrim(upper(outl->name1))
oI:LastName:=alltrim(outl->name1)
oI:FileAs:=alltrim(outl->firma)+" "+chr(10)+chr(13)+alltrim(outl->name1)
endif
oI:Email1Address:=alltrim(outl->email)
if ku->(dbseek(str(outl->nummer,5),.F.,1))
oI:BusinessAddressStreet:=alltrim(ku->strasse)
oI:BusinessAddressPostalCode:=ku->plz
oI:BusinessAddressCity:=alltrim(ku->ort)
oI:BusinessHomepage:=ku->internet
........
oI:Save()
Die sind immer ein wenig schwer über die englischen Bezeichnungen zuzuordnen, ich denke es könnten die Felder OfficeLocation, Department sein, am Besten wäre es wahrscheinlich alle Felder in Outlook zu beschreiben und dann auszulesen. Ich kann dir gerne eine Hilfe-Datei zusenden, in der alle Methoden, Events und Properties der AktiveX Komponente enthalten sind, wenn du mir eine private email schickst (ciriack_at_ciju.de)
Viele Grüße
Wolfgang
Wolfgang