Daten aus Adressbuch von Mac OS X holen

Von Benedikt Quirmbach. | 22 September, 2006 - 16:57
Kurzbeschreibung:

Erstellen einer Liste aller Adressen einer Gruppe im Adressbuch von Mac OS X

Ausführliche Beschreibung:

RagTime stellt einige Funktionen zur Verfügung, mit denen man das Adressbuch von Mac OS X verwenden kann.

In dem hier beschriebenen Dokument wird ein Rechenblatt mit den Vor- und Nachnamen der Mitglieder einer Gruppe im Adressbuch gefüllt.

Vorbedingungen:
Das Ganze funktioniert narürlich nur unter Mac OS X mit RagTime ab Version 5.6.
Natürlich muss man auch eine oder mehere Gruppen im Adressbuch eingerichtet haben.

Beschreibung:
Der ganze Vorgang besteht aus vier Teilen:
1. die Gruppennamen aus dem Adressbuch lesen und für ein Einblend-Menü in RagTime aufbereiten
2. Auswahl der gewünschten Adressbuch-Gruppe
3. Füllen eines Rechenblattes mit den Vor- und Nachnamen aus der Gruppe
4. Fehlerwerte vermeiden

1. Gruppennamen
Leider gibt es in RagTime keine Funktion, mit der die Namen der Gruppen aus dem Adressbuch gelesen werden können. Da hilft nur ein Umweg über AppleScript. In dem als Download angebotenen Dokument befindet sich das AppleScript unter dem Namen "Adressbuchgruppen lesen". Die Scripte finden Sie in RagTime unter Extras->AppleScript->Scripte verwalten...

Das Script liest die Namen der Gruppen. Dann schaut es nach, ob im aktuellen Dokument ein Rechenblatt namens "Adressbuchgruppen" ist. Wenn nicht, wird es angelegt. Dann wird das Rechenblatt geleert und die gerade gefundenen Gruppennamen in die erste Spalte eingetragen.

Das Script kann nicht von selbst starten. Es muss mit einem Klick auf den Knopf "Adressbuchgruppen lesen" gestartet werden.

2. Auswahl
Damit man die Gruppe mit den gewünschten Adressen einfach auswählen kann, enthält das Dokument eine weitere Knopf-Komponente, die als Einblendmenü gestaltet ist. Als Inhalt des Menüs wird die (komplette) erste Spalte des Rechenblattes "Adressbuchgrppen" genommen. Wichtig ist, dass in den Knopf-Informationen des Menüs unter "Allgemein" "Titel ist Resultat" ausgewählt ist.

3. Rechenblatt füllen
Die Liste der Adressen wird in einem eigenen Rechenblatt angelegt, Im Beispiel heißt es "Adressen-Liste".
Hier habe ich als erstes die Zelle A1 mit einer Formel versehen:
AdressbuchfeldGruppe('First';Gruppen!X;Zeile)
Der Parameter 'First' bezeichnet das Datenfeld "Vorname" im Adressbuch.
Der Parameter "Gruppen!X" bezieht sich auf das Einblendmenü, dass "Gruppen" genannt wurde. Hier wird einfach der ausgewählte Namen einer Adressbuchgruppe aus der Knopf-Komponente gelesen.
Der letzte Parameter dient als Zähler: Zeile gibt einfach die Nummer der Rechenblattzeile zurück, in der die Formel steht. Damit wird später durch die Mitglieder der Gruppe gezählt.

Als nächstes habe ich die Zelle kopiert und in B1 eingesetzt. Im Formel-Editor habe ich den Namen des Datenfeldes in "Last" geändert um den Nachnamen zu bekommen. Daraus wurde dann:
AdressbuchfeldGruppe('Last';Gruppen!X;Zeile)
Das könnte man in den weiteren Zellen der Rechenblattzeile fortführen und so alle möglichen Datenfelder aus den Adressen holen.

Dann habe ich die beiden mit Formeln gefüllten Zellen kopiert, die beiden Spalten A und B im Rechenblat ausgewählt und die Zellen dort eingesetzt. Dadurch sind die beiden Formeln in alle Zellen der beiden Spalten gewandert. Das reicht für 16000 Adressen...

4. Fehlerwerte vermeiden
Da nicht alle Gruppen im Adressbuch 16000 Mitglieder haben, muss man vermeiden, dass in den leer gebliebenen Zellen ein Fehlerwert auftaucht.
Dafür öffnet man die Dokumenteinstellungen im Menü Extras und wählt die Tafel "Adressbuch". Hier muss bei "Erfolglose Adressbuchzugriffe" "liefern einen leeren Wert" ausgewählt sein.

Bei der Verwendung des Dokumentes gibt es noch eine kleine Klippe zu umschiffen: Ist das Dokument erst einmal gespeichert, werden die Adressbuchformeln "eingefroren". Man muss sie erst wieder zum Leben erwecken. Das macht man auch in den Dokumenteinstellungen auf der Tafel "Adressbuch". Hier muss man "Alle Adressbuchfunktionsergebnisse sind fixiert" abwählen. Man könnte natürlich diesen Vorgang auch mit einem AppleScript lösen, dass man an einen Knpf "hängt"...

Anhang Größe
Adressbuch-Liste.rtd 841.39 KB