This forum is read-only - Please use our new Citavi Forum instead.
Dieses Forum dient nur zur Recherche - Bitte nutzen Sie das neue Citavi Forum für Ihre Fragen.

grafische Darstellung der Literaturverweise

Schlagen Sie neue Funktionen vor. Wir sind gespannt auf Ihre Wünsche.

grafische Darstellung der Literaturverweise

Postby dia » 2017-05-11 11:51

Hallo,

ich fände es super, wenn die Literaturverweise im Reiter Zusammenhang grafisch darstellbar wären oder zumindest so exportierbar o.ä.--> Ziel: Mindmap/Übersicht zu den Zusammenhängen/Genese der Paper.
dia
 

Re: grafische Darstellung der Literaturverweise

Postby jay-squared » 2017-05-11 13:01

Ich weiß, daß das nur ein Trostpreis ist, aber folgendes Makro kann immerhin alle Querverweise und die Querverweise der Querverweise, etc. als Auswahl erzeugen, so dass man alle Werke, welche aufeinander verweisen in der Auswahl hat. Ist auch schon manchmal praktisch. (Übliche Warnung: Makro ändert nichts am Projekt, aber vor dem ersten Ausführen besser eine Sicherungskopie des Projektes machen, um sicherzugehen)

Code: Select all
using System;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
using System.Windows.Forms;

using SwissAcademic.Citavi;
using SwissAcademic.Citavi.Metadata;
using SwissAcademic.Citavi.Shell;
using SwissAcademic.Collections;

// Implementation of macro editor is preliminary and experimental.
// The Citavi object model is subject to change in future version.

public static class CitaviMacro
{
   public static void Main()
   {
      //ProjectReferenceCollection references = Program.ActiveProjectShell.Project.References;      
      List<Reference> references = Program.ActiveProjectShell.PrimaryMainForm.GetSelectedReferences();
      
      List<Reference> webOfKnowlege = new List<Reference>();
      
      //if we need a ref to the active project
      SwissAcademic.Citavi.Project activeProject = Program.ActiveProjectShell.Project;
      
      List<string> titleList = new List<string>();
         
      foreach (Reference reference in references)
      {
         webOfKnowlege.Add(reference);      
         titleList.Add(reference.ShortTitle);      
         int depthLevel = 0;
         webOfKnowlege = CastWeb(reference, webOfKnowlege, depthLevel);
      }
      
      if(webOfKnowlege.Count > 0)
      {
         string titleString = string.Join(", ", titleList);
         ReferenceFilter filter = new ReferenceFilter(webOfKnowlege, titleString, false);
         Program.ActiveProjectShell.PrimaryMainForm.ReferenceEditorFilterSet.Filters.ReplaceBy(new List<ReferenceFilter> { filter });
      }
   }
   static List<Reference> CastWeb(Reference reference, List<Reference> webOfKnowlege, int depthLevel)
    {
      List<Reference> linkedReferences = new List<Reference>();
      
      foreach (EntityLink entityLink in reference.EntityLinks)
      {
         if (entityLink.Source == reference && entityLink.Indication == EntityLink.ReferenceLinkIndication)
         {
            Reference target = (Reference)entityLink.Target;
            if (target.SequenceNumber != reference.SequenceNumber)
            {
               if (!webOfKnowlege.Any(item => item.SequenceNumber == target.SequenceNumber)) linkedReferences.Add(target);
               if (!webOfKnowlege.Any(item => item.SequenceNumber == target.SequenceNumber)) webOfKnowlege.Add(target);
            }
         }
         if (entityLink.Target == reference && entityLink.Indication == EntityLink.ReferenceLinkIndication)
         {
            Reference source = (Reference)entityLink.Source;
            if (source.SequenceNumber != reference.SequenceNumber)
            {
               if (!webOfKnowlege.Any(item => item.SequenceNumber == source.SequenceNumber)) linkedReferences.Add(source);
               if (!webOfKnowlege.Any(item => item.SequenceNumber == source.SequenceNumber)) webOfKnowlege.Add(source);
            }
         }
      }      
      foreach (Reference linkedReference in linkedReferences)
      {
         if (reference == linkedReference) break;
         CastWeb(linkedReference, webOfKnowlege, depthLevel+1);
      }
      //List<string> output = new List<string>();
      //foreach (Reference linkedReference in linkedReferences) output.Add(linkedReference.Title);         
      //MessageBox.Show(string.Join("\n", output));
      return webOfKnowlege;
   }
}
jay-squared
Citavi Expert
 

Re: grafische Darstellung der Literaturverweise

Postby Jana Votteler » 2017-05-12 07:29

Hallo dia,

vielen Dank für Ihren Verbesserungsvorschlag!

Wir wissen, dass die wechselseitigen Verweise viele Verbesserungspotential haben- u.a. die graphische Darstellung der Verweise.
Dieser Wunsch steht bereits auf unserer internen Wunschliste für unsere Entwickler.

Derzeit liegt allerdings der Fokus der Entwicklung auf Citavi Web, was den größten Teil unserer Ressourcen bindet. Daher ist nicht absehbar, ob bzw. wann wir Ihren Wunsch umsetzen können.

Möglicherweise hilft Ihnen zusätzlich zu JJs Makro auch dieses Makro unserer FAQs.

Viele Grüße
Jana

Wurde Ihre Frage vollständig beantwortet? Bitte klicken Sie auf das grüne Häkchen (= Antwort akzeptieren) oben rechts in meiner Antwort. Andere Forenbenutzer können sich dann leichter orientieren, wenn sie auf der Suche nach einer Lösung sind.
Jana Votteler
Citavi Customer Service
 


Return to Wunschliste