Windows.Form o.ä. in Citavi Makros?

Paul S. hinzugefügt 19 Tagen her
beantwortet

Liebes Citavi-Team,

ist es möglich im Rahmen eines Citavi-Makros individueller mit dem Nutzer zu interagieren als nur über MessageBox.Show? Ich bin leider noch ein C# Anfänger, schätze aber, dass ich eine Windows.Form benötige (siehe dieser Stackoverflow-Beitrag).

Das Ziel ist es, dass der Nutzer während des Makros eine Auswahl aus mehreren Optionen trifft, die den weiteren Verlauf des Makros bestimmten. Eine Lösung mit mehreren individuellen Buttons oder RadioButtons wäre ideal.

Beste Grüße

Paul

Kommentare (1)

Foto
2

Lieber Paul,

die Citavi-Makros eigenen sich nicht so richtig für Abläufe mit Benutzerinteraktion. Dafür waren sie nicht konzipiert, sondern eher als Lösung um schnell eine Vielzahl von Änderungen am Projekt vorzunehmen, die sich so nicht über die Oberfläche umsetzen lassen.

Falls Sie eine eigene Benutzeroberfläche benötigen, würde es sich anbieten, ein Add-On zu entwickeln. Beispielcode finden Sie hier: https://github.com/Citavi/C6-Add-Ons-and-Online-Sources

Darf ich fragen, was der konkrete Anwendungsfall ist?

Viele Grüße

Sebastian

Foto
1

Danke Sebastian für die schnelle Antwort! Das mit den Add-Ons schaue ich mir gleich mal an.

Ja, der Anwendungsfall ist folgender: Ich bin großer Fan eures CIM007 Makros und habe mir vor einiger Zeit eine Abwandlung von eben diesem geschrieben. Prinzipiell ist mein Arbeitsablauf oft so, dass ich

  1. Eine Excel-Tabelle aus einem Citavi-Projekt exportiere
  2. Die Tabelle bearbeite - vorrangig mit der Software R
  3. Die neuen/veränderten Spalten der Excel-Tabelle zurück in entsprechende Felder des Citavi-Projekts importiere

Das importieren einer Spalte und joinen via Kurztitel geht dank des CIM007 Makros. Manchmal muss ich aber via der eindeutigeren Citavi-ID und nicht via Kurztitel joinen und das habe ich glücklicherweise in einer abgewandelten Form des CIM007 Makros hinbekommen. Außerdem will ich manchmal gleich mehrere neue/veränderte Spalten importieren und auch dafür habe ich eine Version des Makros erstellen können.

Das ist alles gut und tut was es soll.

Allerdings habe ich so für jeden Fall eine leicht abgewandelte Form des gleichen Makros. Stattdessen hätte ich lieber eine Benutzerinteraktion. Ich bin in diesem Moment dran die MessageBoxButtons.YesNoCancel zu missbrauchen um zumindest die Entscheidung "via Kurztitel" und "via ID" mit den "Ja" und "Nein" Knöpfen hinzubekommen. Welche Excel-Spalte dann aber in welches Citavi-Feld importiert werden soll muss wohl weiterhin "hardcoded" im Makro stehen. Es sei denn die Addons liefern da einen Ansatz den ich gestemmt kriege.

Beste Grüße

Paul

Foto
1

P.S. Ich würde mich sehr über eine Einschätzung zu meinem Vorhaben freuen - sei es auch nur ein kurzer Kommentar.

Foto
2

Hallo, Paul

Eine Einschätzung ist nicht ganz einfach. Machbar ist das Projekt sicherlich, der Aufwand aber sicher nicht unerheblich. Ich möchte noch auf das Github-Repository von Daniel Lutz verweisen, der dort in der FAQ noch weitere Hinweise zum Entwickeln von Addons gibt.

Ich denke, für Sie ist es letztlich eine Abwägung, ob Sie das Add-on um des Projekts willen programmieren möchten oder ob es Ihnen am Ende nur um die Zeitersparnis im Arbeitsablauf geht.

Viele Grüße

Sebastian

Foto