Seite 1 von 1

GEDCOM-Datenexport für Excel-Plugin

Verfasst: 02.10.2010, 12:45
von wolfgang8
Hallo,

ich möchte eine Excel-Anwendung, über die Plugin-Schnittstelle in Ahnenblatt einbinden.
Dabei soll Ahnenblatt eine GEDCOM-Datei der aktuell geöffneten Ahnenblatt-Datei im Windows-Temp-Ordner erzeugen, die dann von der Excel-Anwendung verarbeitet und anschließend gelöscht wird.

Im Forum habe ich dazu bereits einige hilfreiche Beiträge gefunden und eine abp-Datei erstellt.

Mit folgenden Befehlen in der abp-Datei wird die GEDCOM-Datei erzeugt:

1=$MAKEDIR(%temp%\AhnenGeoMap)
2=$SAVEAS(GEDCOM-ANSI,%temp%\AhnenGeoMap\AhnenGeoMap.ged)


Das funktioniert soweit auch ganz gut. Nur scheint es so zu sein, dass Ahnenblatt nach dem Export die ursprünglich geöffnete Ahnenblatt-Datei schließt und die erzeugte GEDCOM-Datei öffnet, ohne, dass das ersichtlich ist. In der Titelleiste zeigt Ahnenblatt nach wie vor den Namen der ursprünglich geöffneten Ahnenblatt-Datei an. Bemerkbar wird das erst, nach dem Neustart von Ahnenblatt. Es erscheint die Meldung, dass die GEDCOM-Datei - die von der Excel-Anwendung bereits gelöscht wurde - nicht gefunden werden konnte.

Gibt es eine Möglichkeit (z.B. durch Parametrierung des $SAVEAS-Befehls) zu verhindern, dass Ahnenblatt die GEDCOM-Datei nach dem Export öffnet?


Vielen Dank

Wolfgang

Verfasst: 02.10.2010, 16:19
von Hugo
Guten Tag Wolfgang
Herzlich Willkommen im Ahnenblattportal (Nuzer helfen Nutzer)

Könntest Du bitte Deine ganze abp-Datei reinstellen ???
Anhand Deiner 2 Zeilen läßt sich das Problem nicht erkennen :oops:

Gruß Hugo

Re: GEDCOM-Datenexport für Excel-Plugin

Verfasst: 02.10.2010, 16:23
von Marcus
Habe den Beitrag mal in den Bereich "Erweiterungen zu Ahnenblatt" verschoben - dort wird er eher von anderen Plugin-Programmierern entdeckt.

Hier ist oben in dem Bereich auch eine Diskussion 'angepinnt', die Dir die meisten Informationen rund um die Plugin-Schnittstelle in einem Beitrag zusammenfasst: "Infos zur Plugin-Schnittstelle".

wolfgang8 hat geschrieben:
Nur scheint es so zu sein, dass Ahnenblatt nach dem Export die ursprünglich geöffnete Ahnenblatt-Datei schließt und die erzeugte GEDCOM-Datei öffnet, ohne, dass das ersichtlich ist. In der Titelleiste zeigt Ahnenblatt nach wie vor den Namen der ursprünglich geöffneten Ahnenblatt-Datei an. Bemerkbar wird das erst, nach dem Neustart von Ahnenblatt. Es erscheint die Meldung, dass die GEDCOM-Datei - die von der Excel-Anwendung bereits gelöscht wurde - nicht gefunden werden konnte.
Das ist eigentlich ein ganz normales Verhalten, dass fast alle Programme an den Tag legen. Die Datei wird nicht nach der Erstellung extra geöffnet, sonst ist es bereits durch die Speicherung als anderer Dateityp. So geschieht dies auch z.B. in fast allen Textverarbeitungen und Grafikprogrammen - die gerade gespeicherte Datei hat man danach zur Weiterbearbeitung geöffnet.
Das dies nicht in der Titelleiste angezeigt wird, würde ich hier als Fehler ansehen und auch so in die Wunschliste aufnehmen.

Die erscheinende Fehlermeldung nach dem Neustart, rührt aus einer Einstellung in Deinen Optionen, nach der Ahnenblatt beim Start die zuletzt geöffnete Datei (was die gespeicherte csv ist), wieder öffnet.
Marcus

Re: GEDCOM-Datenexport für Excel-Plugin

Verfasst: 03.10.2010, 08:29
von Jürgen T.
Hallo Wolfgang
Marcus hat geschrieben: Die erscheinende Fehlermeldung nach dem Neustart, rührt aus einer Einstellung in Deinen Optionen, nach der Ahnenblatt beim Start die zuletzt geöffnete Datei (was die gespeicherte csv ist), wieder öffnet.
Marcus
um es genauer (entschuldige Marcus) zu sagen:
Entferne bitte unter Extras -> Optionen -> Allgemein das Häkchen vor "beim Programmstart zuletzt benutzte Datei laden".

Verfasst: 03.10.2010, 08:40
von Iemhoff
Habe den Beitrag mal in den Bereich "Erweiterungen zu Ahnenblatt" verschoben - dort wird er eher von anderen Plugin-Programmierern entdeckt.
Hallo Marcus

Ist es möglich wie : "Erweiterungen zu Ahnenblatt" als Link zu kennzeichnen?

Verfasst: 03.10.2010, 11:04
von wolfgang8
Hallo an alle,

danke für eure Antworten!


An Hugo:

Hier die gesamte abp-Datei:

[plugin]

HideWhenFilesMissing=1
FileMustBeOpened=1

text=AhnenGeoMap
text.1031=AhnenGeoMap

MustExist.1=%abpluginpath%\AhnenGeoMap.xla
MustExist.2=%abpluginpath%\AhnenGeoMap.xls

1=$MAKEDIR(%temp%\AhnenGeoMap)
2=$SAVEAS(GEDCOM-ANSI,%temp%\AhnenGeoMap\AhnenGeoMap.ged)
3=%abpluginpath%\AhnenGeoMap.xla



An Marcus und Jürgen:

Mit dem Entfernen des Häkchens bei der Option "beim Programmstart zuletzt benutzte Datei laden" ist das Problem lösbar. Allerdings mit etwas Komfortverlust verbunden...

...ich hab´s mir also nochmals etwas genauer angesehen und dabei folgendes festgestellt:
-Entgegen meiner ursprünglichen Annahme, bleibt die aktuell geöffnete Datei auch nach dem GEDCOM-Export geöffnet. Datenänderungen werden in die aktuelle Datei geschrieben.
-Erst nach dem Neustart versucht Ahnenblatt die zuvor exportierte GEDCOM-Datei zu öffnen und zeigt die Meldung an, dass die GEDCOM-Datei nicht gefunden werden konnte. Vorausgesetzt die Option "beim Programmstart zuletzt benutzte Datei laden" ist angehakt.
-Dieses Verhalten tritt jedoch nur dann auf, wenn eine GEDCOM-Datei exportiert wird. Wird eine CSV-Datei exportiert, z.B. mit 2=$SAVEAS(CSVFILE-UNICODE,%temp%\AhnenGeoMap\Test.csv), wird beim Neustart die zuletzt geöffnete Ahnenblatt-Datei wieder geöffnet.

GEDCOM-Exporte werden also anders behandelt als CSV-Exporte. Das "CD brennen"-Plugin verhält sich dabei genauso. Auch dort wird nach dem Erstellen der CD und Neustart von Ahnenblatt die Datei der CD-Daten und nicht mehr die ursprüngliche Ahnenblatt-Datei geöffnet.
Dieses Verhalten hätte ich intuitiv so nicht erwartet. Es birgt meiner Meinung nach auch das Risiko, dass ich mit den exportierten Daten und nicht den Originaldaten weiterarbeite und mich irgendwann wundere, dass Änderungen an den Date nicht (bzw. in einer anderen Datei als erwartet) gespeichert werden...

Wolfgang

Verfasst: 03.10.2010, 11:58
von Jürgen T.
Hallo Wolfgang,

das Verhalten von Ahnenblatt hängt davon ab, welche Dateiendungen mit Ahnenblatt verknüpft sind.
I.d.R. sind die ahn- und die ged-Dateien mit Ahnenblatt verknüpft. D. h., wenn man einen Doppelklick auf solch eine Datei macht, öffnet sich Ahnenblatt.
Wenn man auch csv-Dateien mit Ahnenblatt verknüpft, wird auch die zuletzt aus Ahnenblatt heraus gespeicherte csv-Datei beim nächsten Programmstart geöffnet.

Übrigens:
Der Dateiname "AhnenGeoMap" klingt sehr vielversprechend...

Verfasst: 03.10.2010, 17:37
von Marcus
Das Speichern in den verschiedenen Formaten müsste vielleicht wirklich besser ein echtes Exportieren werden - so dass hier alle 'Fehlbedienmöglichkeiten' ( :mrgreen: ) eliminiert werden.


Zu Iemhopff:
Iemhoff hat geschrieben: Ist es möglich wie : "Erweiterungen zu Ahnenblatt" als Link zu kennzeichnen?
Ich weiß nicht, ob ich das wirklich verstehe :oops: Einfach so? "Erweiterungen zu Ahnenblatt"
Oder was meinst Du?
Marcus

Verfasst: 04.10.2010, 19:31
von wolfgang8
Hallo Jürgen,

die Verknüpfungslogik, die du beschreibst, hat mich auf die Idee gebracht, die Export-Datei nicht "AhnenGeoMap.ged" sondern "AhnenGeoMap.exp" zu benennen.

2=$SAVEAS(GEDCOM-ANSI,%temp%\AhnenGeoMap\AhnenGeoMap.exp)

Es erscheint beim Neustart jedoch die selbe Meldung "Datei xy nicht gefunden!". Es dürfte also der erste Parameter des $SAVEAS-Befehls dafür ausschlaggebend sein, ob Ahnenblatt beim Neustart versucht die exportierte Datei zu öffnen.

Momentan erscheint mir als günstigste Variante, die Option "beim Programmstart zuletzt benutzte Datei laden" anzuhaken und nach der Verwendung von AhnenGeoMap die Ahnenblatt-Datei manuell zu öffnen. Das ist komfortabel bei der normale Arbeit mit Ahnenblatt und bietet Sicherheit bei der Verwendung von AhnenGeoMap.

Wolfgang

ps: AhnenGeoMap - hoffe der Name beschreibt die Funktion :) - trägt Ereignisorte in geographische Karten ein.

Verfasst: 04.10.2010, 20:37
von Jürgen T.
Hallo Wolfgang,

ich hab das ganze mal nachgestellt, und es ist wirklich so wie Du es beschreibst.
Egal wie man die Datei nennt, die gespeichert werden soll: Durch den Befehl SAVES(GEDCOM... wird diese Datei in die Ahnblatt.ini in die Zeile LastFileName= geschrieben.

Ich erwarte schon gespannt Dein Plugin.