GEDCOM-Datenexport für Excel-Plugin
GEDCOM-Datenexport für Excel-Plugin
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
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
Re: GEDCOM-Datenexport für Excel-Plugin
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".
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
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".
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.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 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
Hallo Wolfgang
Entferne bitte unter Extras -> Optionen -> Allgemein das Häkchen vor "beim Programmstart zuletzt benutzte Datei laden".
um es genauer (entschuldige Marcus) zu sagen: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
Entferne bitte unter Extras -> Optionen -> Allgemein das Häkchen vor "beim Programmstart zuletzt benutzte Datei laden".
Gruß
Jürgen
Jürgen
Hallo MarcusHabe den Beitrag mal in den Bereich "Erweiterungen zu Ahnenblatt" verschoben - dort wird er eher von anderen Plugin-Programmierern entdeckt.
Ist es möglich wie : "Erweiterungen zu Ahnenblatt" als Link zu kennzeichnen?
MfG. Iemhoff
----------------“doing by trying; trying by doing”-----------------
-------Mann bleibt nicht so jung wie man möchte-------
----------------“doing by trying; trying by doing”-----------------
-------Mann bleibt nicht so jung wie man möchte-------
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
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
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...
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...
Gruß
Jürgen
Jürgen
Das Speichern in den verschiedenen Formaten müsste vielleicht wirklich besser ein echtes Exportieren werden - so dass hier alle 'Fehlbedienmöglichkeiten' (
) eliminiert werden.
Zu Iemhopff:
Einfach so? "Erweiterungen zu Ahnenblatt"
Oder was meinst Du?
Marcus
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
Zu Iemhopff:
Ich weiß nicht, ob ich das wirklich versteheIemhoff hat geschrieben: Ist es möglich wie : "Erweiterungen zu Ahnenblatt" als Link zu kennzeichnen?
![Embarassed :oops:](./images/smilies/icon_redface.gif)
Oder was meinst Du?
Marcus
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.
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
![Smile :)](./images/smilies/icon_smile.gif)
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.
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.
Gruß
Jürgen
Jürgen