Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Einige Daten werden in der Vcard nicht angezeigt, MS-Office 2007 (https://www.delphipraxis.net/200447-einige-daten-werden-der-vcard-nicht-angezeigt-ms-office-2007-a.html)

onk 21. Apr 2019 07:27

Einige Daten werden in der Vcard nicht angezeigt, MS-Office 2007
 
Hallo liebe Delphi-Freunde,

ich arbeite mit RAD Studio Seattle Pro und MS-Office 2007.

ich möchte von meinem Programm aus Vcards erzeugen und diese in den Outlook-Kontakten übernehmen.
Die Infos habe ich von den folgenden Webseiten:

https://de.wikipedia.org/wiki/VCard

http://wiki.christian-stankowic.de/d...rd#anwendungen

Was ich nicht verstehe, die E-Mail wird z.B. angezeigt, aber die Webadresse bleibt leer, steht aber in der Visitenkarte.
Die Festnetznummer und die Mobilnummer werden angezeigt, nicht aber die Faxnummer. Auch bleibt die Anschrift leer. Im Source der Vcard ist alles eingetragen.



Das ist der Source der Vcard:

BEGIN:VCARD
VERSION:4.0
FN:Musti Mustermann
ORG:Mustermann AG
TITLE:Bürohonk
TEL;TYPE=work:22 55 22 66
TEL;TYPE=fax:22 55 22 67
TEL;TYPE=cell:0177 / 1 10 22 55 22
X-MS-OL-DEFAULT-POSTAL-ADDRESS:0
EMAIL:m.mustermann@test.de
URL:www.mustermann.de
ADR;TYPE=work;LABEL="Mustermannstr. 33\n12203 Berlin"
:;;Mustermannstr. 33;Berlin;12203n\Deutschland
note:Ich bin Mustermannfähig.
REV:20140301T221110Z
END:VCARD





Delphi-Quellcode:

              festnetz:=dapc.FieldByName('TelefonFirma').asstring;
              Position:=dapc.FieldByName('Position').asstring;
              notizen:=dapc.FieldByName('notizen').asstring;
               anrede:=dapc.FieldByName('anrede').asstring;
               vorname:=dapc.FieldByName('vorname').asstring;
               nachname:=dapc.FieldByName('nachname').asstring;
               firma:=dapc.FieldByName('firma').asstring;
               email:=dapc.FieldByName('email').asstring;
               webseite:=dapc.FieldByName('webseite').asstring;
               fax:=dapc.FieldByName('fax').asstring;
               mobil:=dapc.FieldByName('mobiltelefon').asstring;
               strasse:=dapc.FieldByName('strasse').asstring;
               plz:=dapc.FieldByName('plz').asstring;
               ort:=dapc.FieldByName('ort').asstring;


  pfad:=ExtractFilePath(Application.ExeName) + '\vcard.txt';


            if FileExists(pfad) then
              DeleteFile(pfad);

            if not FileExists(pfad) then
            begin
              AssignFile(tFile, pfad);
              ReWrite(tFile);
              WriteLn(tFile, 'BEGIN:VCARD');
              WriteLn(tFile, 'VERSION:4.0');
//            WriteLn(tfile,'N;LANGUAGE=de:'+ name + ''); // Wenn ich das auskommentiere, wird im Outlook Editfeld "Speichern unter" form1 angezeigt
                                                            // wenn ich das ingnoriere werden korrekt der Nachname, das Komma und der Vorname angezeigt
              WriteLn(tFile, 'FN:' + vorname + ' ' + nachname + '');
              WriteLn(tFile, 'ORG:' + firma + '');
              WriteLn(tFile, 'TITLE:' + Position + '');
              WriteLn(tFile, 'TEL;TYPE=work:' + festnetz + '');
              WriteLn(tFile, 'TEL;TYPE=fax:' + fax + '');  //Wird nicht angezeigt
              WriteLn(tFile, 'TEL;TYPE=cell:' + mobil + '');
              WriteLn(tFile, 'X-MS-OL-DEFAULT-POSTAL-ADDRESS:0');
              WriteLn(tFile, 'EMAIL:' + email + '');
              WriteLn(tFile, 'URL:' + webseite + ''); // Wird nur in der Visitenkarte angezeigt
              WriteLn(tFile, 'ADR;TYPE=work;LABEL="' + strasse + '\n' + plz + ' ' + ort + '"'); // Wird nicht angezeigt
              WriteLn(tFile, ':;;' + strasse + ';' + ort + ';' + plz +
                'n\Deutschland');
              WriteLn(tFile, 'note:' + notizen + '');
              WriteLn(tFile, 'REV:20140301T221110Z');
              WriteLn(tFile, 'END:VCARD');
              closefile(tFile);
            end;

Ich bedanke mich schon im Voraus für eure Unterstützung.

Vielen Dank,
Viele Grüße aus Berlin
von Onk :)

zeras 21. Apr 2019 08:26

AW: Einige Daten werden in der Vcard nicht angezeigt, MS-Office 2007
 
Ich habe einmal eine VCard exportiert. Dort steht bei Webadresse:

Zitat:

URL;WORK:http://tester.com/
Also Office nutze ich die Version 2010.

Vielleicht hilft das weiter.

onk 21. Apr 2019 09:03

AW: Einige Daten werden in der Vcard nicht angezeigt, MS-Office 2007
 
Funktioniert, Dankeschön Zeras :)

Dann werde ich mal alle möglischen Varianten ausprobieren.

Wenn ich Erfolg habe, werde ich den Source und den Vcard-Source posten.

Vielen Dank

onk 21. Apr 2019 10:34

AW: Einige Daten werden in der Vcard nicht angezeigt, MS-Office 2007
 
Hallo Delphi Freunde,

also jetzt funktioniert es, hat aber zwei Makel.

In der Visitenkarte wird die Geschäftliche Telefonnummer als erstes angezeigt.
Der zweite Eintrag ist die Faxnummer und dahinter steht auch Geschäftlich.
Man erkennt nicht, dass das die Faxnummer ist.
So habe ich im Source noch ein Tel.: und ein Fax: davorgestellt.
Die Visitenkarte sieht ganz ansprechend aus, nur habe ich in den Editfeldern vor den Nummern Tel.: und Fax: zu stehen.
Das empfinde ich als Makel.


Vieleicht kennt ja jemand eine Lösung des Problems. Aber im Großen und Ganzen kann ich damit leben.

Viele Grüße aus Berlin

von

Micha(onk)
:-D



Hier der Vcard-Source:

BEGIN:VCARD
VERSION:4.0
FN:Musti Mustermann
ORG:Mustermann AG
TITLE:Bürohonk
TEL;TYPE=work:Tel.: 22 55 22 66 //Hier ist der Makel
TEL;TYPE=work,fax,voice:Fax: 22 55 22 67 // und hier auch
TEL;TYPE=cell:0177 / 1 10 22 55 22
EMAIL:m.mustermann@test.de
URL;work:www.mustermann.de
X-MS-OL-DEFAULT-POSTAL-ADDRESS:0
LABEL;TYPE=work,postal,parcel:Mustermannstr. 33\n12203 Berlin
:;;Mustermannstr. 33;Berlin;12203n\Deutschland
note:Ich bin Mustermannfähig.
REV:20140301T221110Z
END:VCARD


Hier ist der Source:

Delphi-Quellcode:
 

procedure TForm1.btVCardClick(Sender: TObject);
var pfad,pfaddesktop,komplettpfad,s,jahr:string;
firma,notizen,vorname,strasse,plz,ort,Position,anrede,nachname,email,webseite,fax,festnetz,mobil,adressdaten:String;
begin


               jahr:=formatdatetime('yymmdd',now);

               festnetz:=dapc.FieldByName('TelefonFirma').asstring;
              Position:=dapc.FieldByName('Position').asstring;
              notizen:=dapc.FieldByName('notizen').asstring;
               anrede:=dapc.FieldByName('anrede').asstring;
               vorname:=dapc.FieldByName('vorname').asstring;
               nachname:=dapc.FieldByName('nachname').asstring;
               firma:=dapc.FieldByName('firma').asstring;
               email:=dapc.FieldByName('email').asstring;
               webseite:=dapc.FieldByName('webseite').asstring;
               fax:=dapc.FieldByName('fax').asstring;
//                festnetz:=dapc.FieldByName('festnetz').asstring;
               mobil:=dapc.FieldByName('mobiltelefon').asstring;
//               adressdaten:=dapc.FieldByName('adressegeschäftlich').asstring;
                strasse:=dapc.FieldByName('strasse').asstring;
               plz:=dapc.FieldByName('plz').asstring;
               ort:=dapc.FieldByName('ort').asstring;


             pfad:=ExtractFilePath(Application.ExeName) + '\vcard.txt';

            if FileExists(pfad) then
              DeleteFile(pfad);

            if not FileExists(pfad) then
            begin
              AssignFile(tFile, pfad);
              ReWrite(tFile);
              WriteLn(tFile, 'BEGIN:VCARD');
              WriteLn(tFile, 'VERSION:4.0');
//            WriteLn(tfile,'N;LANGUAGE=de:'+ name + ''); // Wenn ich das auskommentiere, wird im Edit speichern unter form1 angezeigt
                                                            // wenn ich das ingnoriere werden korrekt der Nachname, das Komma und der Vorname angezeigt
              WriteLn(tFile, 'FN:' + vorname + ' ' + nachname + '');
              WriteLn(tFile, 'ORG:' + firma + '');
              WriteLn(tFile, 'TITLE:' + Position + '');
              WriteLn(tFile, 'TEL;TYPE=work:' + 'Tel.: ' + festnetz + ''); // Hier ist der 1. Makel.
              WriteLn(tFile, 'TEL;TYPE=work,fax,voice:' + 'Fax: ' + fax + '');  // Hier ist der 2. Makel.
              WriteLn(tFile, 'TEL;TYPE=cell:' + mobil + '');
              WriteLn(tFile, 'EMAIL:' + email + '');
              WriteLn(tFile, 'URL;work:' + webseite + '');
               WriteLn(tFile, 'X-MS-OL-DEFAULT-POSTAL-ADDRESS:0');
              WriteLn(tFile, 'LABEL;TYPE=work,postal,parcel:' + strasse + '\n' + plz + 
                ' ' + ort + '');
              WriteLn(tFile, ':;;' + strasse + ';' + ort + ';' + plz +
                'n\Deutschland');
              WriteLn(tFile, 'note:' + notizen + '');
              WriteLn(tFile, 'REV:20140301T221110Z');
              WriteLn(tFile, 'END:VCARD');
              closefile(tFile);
            end;

                  pfaddesktop:=controler.getshellfolder(CSIDL_DESKTOP);
                    komplettpfad:=pfaddesktop + '\MZ-Handout\';
                    s:= dapc.FieldByName('firma').AsString + '_' + dapc.FieldByName('vorname').AsString + ' ' + 
                        dapc.FieldByName('nachname').AsString;;

                      if directoryexists(komplettpfad) then
                             pfaddesktop:=komplettpfad + jahr + '_' + s + '.vcf';

                             RenameFileEx(pfad , pfaddesktop );

end;

zeras 21. Apr 2019 19:07

AW: Einige Daten werden in der Vcard nicht angezeigt, MS-Office 2007
 
Bei mir sehen die Exportdaten so aus:

TEL;HOME;VOICE:+49 xxxxxxx
TEL;CELL;VOICE:+49 xxxxxxx
TEL;WORK;FAX:+49 xxxxxxxxx

Ist doch noch ein wenig anders als bei dir.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz