Einzelnen Beitrag anzeigen

onk

Registriert seit: 12. Aug 2008
Ort: Berlin-Lichterfelde
8 Beiträge
 
Delphi 10 Seattle Professional
 
#4

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

  Alt 21. Apr 2019, 11:34
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)




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;
Michael Zimpel
  Mit Zitat antworten Zitat