Code um auszulesen, ob Option 1/2/3 gesetzt ist (bei Komponente)
Hallo,
ich versuche eine Komponente zu programmieren, die nur angezeigt wird, wenn bei dem konkreten Nachweis Option 1 bzw. 2 bzw. 3 gesetzt ist.
Konkret will ich eine Komponente "Online-Adresse" haben, die nur angezeigt wird, wenn eine von mehreren Bedingungen erfüllt ist. Eine dieser Bedingungen soll "Mit Option 3 formatieren" sein. Die anderen Bedingungen klappen auch.
Ich suche daher eigentlich nur die Programmzeile für "WENN Option 3 gesetzt", also irgendwas mit
if ( ...)Mir fehlt eigentlich nur der Inhalt der Klammern.
Zur Klarstellung: ich weiß, dass es eine vorprogrammierte Vorlagebedingung für Option 1 bis 3 gibt. Das hilft mir aber nichts. Ich verwende die Komponente an sehr vielen unterschiedlichen Stellen und es wäre unglaublich mühselig und unübersichtlich, das nur für "Option 3 ist gesetzt" zu verdoppeln.
Zur Veranschaulichung hier der Code, den ich bisher geschrieben habe:
using System.Linq; using System.Collections.Generic; using SwissAcademic.Citavi; using SwissAcademic.Citavi.Metadata; using SwissAcademic.Collections; using SwissAcademic.Drawing; namespace SwissAcademic.Citavi.Citations { public class ComponentPartFilter : IComponentPartFilter { public IEnumerable<ITextUnit> GetTextUnits(ComponentPart componentPart, Template template, Citation citation, out bool handled) { //return handled = true if this macro generates the output (as an IEnumerable<ITextUnit>); the standard output will be suppressed //return handled = false if you want Citavi to produce the standard output; handled = true; // this results in that the component is suppressed by default. if (componentPart == null) return null; if (componentPart.Elements == null || componentPart.Elements.Count == 0) return null; if (citation == null) return null; if (citation.Reference == null) return null; //if online-Adress is empty, the component will be suppressed if (string.IsNullOrEmpty(citation.Reference.OnlineAddress)) return null; if (componentPart.Scope == ComponentPartScope.ParentReference && citation.Reference.ParentReference == null) return null; //the component will only be shown if one of the following conditions is fulfilled if (citation.Reference.CustomField2.Contains("Internet") || citation.Reference.ReferenceType == ReferenceType.InternetDocument) handled = false; return null; } } }
Vielen Dank bereits
Hallo Jakob,
vielen Dank für Ihre Frage.
Bitte verwenden Sie für die programmierte Komponente die angehängte Skript-Version.
Viele Grüße
Susanne
Hallo Jakob,
vielen Dank für Ihre Frage.
Bitte verwenden Sie für die programmierte Komponente die angehängte Skript-Version.
Viele Grüße
Susanne
Vielen Dank, Susanne. Das funktioniert genauso wie erhofft.
Vielen Dank, Susanne. Das funktioniert genauso wie erhofft.
Hallo Jakob,
gern geschehen und vielen Dank für Ihre freundliche Rückmeldung.
Viele Grüße
Susanne
Hallo Jakob,
gern geschehen und vielen Dank für Ihre freundliche Rückmeldung.
Viele Grüße
Susanne
Hallo Susanne, jetzt muss ich leider doch noch einmal zurückrudern. Mir ist gerade aufgefallen, dass die Komponente doch nicht nicht ganz das macht, was sie soll. Wird bei irgendeinem Eintrag Option 3 aktiviert, dann wird die Internetadresse bei allen Fußnotennachweisen angezeigt, nicht nur bei demjenigen, bei dem der Option 3 ausgewählt ist.
Kann man das irgendwie beheben?
Vielen Dank
Jakob
Hallo Susanne, jetzt muss ich leider doch noch einmal zurückrudern. Mir ist gerade aufgefallen, dass die Komponente doch nicht nicht ganz das macht, was sie soll. Wird bei irgendeinem Eintrag Option 3 aktiviert, dann wird die Internetadresse bei allen Fußnotennachweisen angezeigt, nicht nur bei demjenigen, bei dem der Option 3 ausgewählt ist.
Kann man das irgendwie beheben?
Vielen Dank
Jakob
Hallo Jakob,
vielen Dank für Ihre Rückfrage.
Entschuldigen Sie bitte das Versehen - ich hatte angenommen, dass Sie die Komponente fürs Literaturverzeichnis benötigen. Dann muss die Komponente tatsächlich über alle Nachweise iterieren, um eine ggf. gesetzte Option 3 zu erkennen.
Im Anhang finden Sie die korrigierte Version, bei der nur noch beim aktiven Nachweis geprüft wird, ob die Format-Option 3 aktiviert ist.
Viele Grüße
Susanne
Hallo Jakob,
vielen Dank für Ihre Rückfrage.
Entschuldigen Sie bitte das Versehen - ich hatte angenommen, dass Sie die Komponente fürs Literaturverzeichnis benötigen. Dann muss die Komponente tatsächlich über alle Nachweise iterieren, um eine ggf. gesetzte Option 3 zu erkennen.
Im Anhang finden Sie die korrigierte Version, bei der nur noch beim aktiven Nachweis geprüft wird, ob die Format-Option 3 aktiviert ist.
Viele Grüße
Susanne
Wunderbar, vielen dank. Jetzt funktioniert es genau so wie ich das erwartet habe.
An dieser Stelle auch nochmal ganz großes Lob für den tollen und schnellen Support, den das Citavi-Team immer bietet.
Wunderbar, vielen dank. Jetzt funktioniert es genau so wie ich das erwartet habe.
An dieser Stelle auch nochmal ganz großes Lob für den tollen und schnellen Support, den das Citavi-Team immer bietet.
Hallo Jakob,
gern geschehen und vielen Dank für Ihre freundliche Rückmeldung und das ausgesprochen nette Lob!
Viele Grüße
Susanne
Hallo Jakob,
gern geschehen und vielen Dank für Ihre freundliche Rückmeldung und das ausgesprochen nette Lob!
Viele Grüße
Susanne
Diese Diskussion wurde geschlossen. Bitte erstellen Sie bei Bedarf einen neuen Beitrag.