| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN | | | | Evon ist jetzt Teil des Eplan Partner Networks - die digitale Wertschöpfungskette der Gebäudeautomation im Fokus, eine Pressemitteilung
|
Autor
|
Thema: Inhaltsverzeichnis mit Seitenfilter per Script (555 mal gelesen)
|
Stringeater Mitglied
Beiträge: 104 Registriert: 27.11.2014 EPLAN Electric P8 Select 2.9, Windows 10 EPLAN Electric P8 2023, Windows 10
|
erstellt am: 31. Jul. 2023 09:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute Ich suche eine Möglichkeit, per Script wahlweise einen Seitenfilter für das Inhaltsverzeichnis anzuwenden. Im Seitenbaum habe ich den Seitenfilter 'FltCustomer' definiert. Dieser funktioniert im Seitenbaum korrekt. Die API-Hilfe erwähnt für die Action 'reports' die Parameter 'PAGEFILTERNAME' und 'USEPAGEFILTER' in Kombination mit ("TYPE", "PAGES"). Der folgende Code wendet den Seitenfilter dennoch nicht an. Der Code funktionert aber ansonsten. Neue oder gelöschte Seiten aktualisiert er nämlich. Code: var cli = new CommandLineInterpreter(); var acc = new ActionCallingContext();acc.AddParameter("PAGEFILTERNAME", "FltCustomer"); acc.AddParameter("USEPAGEFILTER", "1"); acc.AddParameter("TYPE", "PAGES"); acc.AddParameter("PAGENAME", "01.1"); // Die Seite mit dem Inhaltsverzeichnis bool success = cli.Execute("reports", acc);
Es scheint, dass er den Seitenfilter ignoriert. Auch ein falsch geschriebener Filter erzeugt keinen Fehler. Wenn ich hingegen ("TYPE", "PROJECT") angebe, ergibt ein falsch geschriebener Filter success = false. Aber auch dann wird ein korrekt geschriebener Seitenfilter ignoriert. Ich könnte einen Filter in die Definition des Inhaltsverzeichnis einbauen. Aber dann ist dieser Filter immer aktiv. Ich möchte ihn per Script wahlweise ein- und ausschalten. Hintergrund: Im PDF für die Kunden lasse ich zwei vertrauliche Seiten weg. Diese sollten dann auch im Inhaltsverzeichnis fehlen. Im internen PDF muss hingegen alles sichtbar sein. Bis jetzt hatte ich die Seiten per Script gelöscht und auf die Rückfragen automatisch draufgehauen. Das ist unzuverlässig und hässlicher Stil. Ein Seitenfilter wäre sehr nützlich. Vielen Dank für eure Hinweise. Stringeater
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EPLAN-Buesgen Mitglied
Beiträge: 498 Registriert: 25.07.2003
|
erstellt am: 16. Aug. 2023 10:48 <-- editieren / zitieren --> Unities abgeben: Nur für Stringeater
Hallo, ich habe intern folgende Info bekommen - ansonsten bitte an den EPLAN API Support wenden. Ich hätte hier über P8 den jeweiligen Seiten, die ausgeblendet werden sollen, in einem Seitenzusatzfeld zum Beispiel dem Vermerk „intern“ hinterlegt und sowohl im Seitennavigator, als auch im PDF-Ausgabeschema einen Filter auf dieses Seitenzusatzfeld erstellt, der die Seiten mit dem Vermerk „intern“ nicht ausgibt. VG Robin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
F.S. Moderator
Beiträge: 1881 Registriert: 23.04.2003 EPLAN Electric P8 2024 Prof.
|
erstellt am: 16. Aug. 2023 15:00 <-- editieren / zitieren --> Unities abgeben: Nur für Stringeater
Hallo, ich habe mal ein wenig rumprobiert. Ein Seitenfilter im Seiten-Navigator funktioniert hier nicht, das Inhaltsverzeichnis wertet immer alle Seiten aus. Das einzige was funktioniert ist in der Auswertungsvorlage des Inhaltsverzeichnisse einen Filter einzustellen und das Projekt auswerten zulassen, ein Aktualisieren reicht nicht aus. Hier wäre nun die Aufgabenstellung per Skript in der Auswertungsvorlage einen Filter zu aktivieren dann das Projekt neu auszuwerten und zum Schluss wieder den Filter zu deaktivieren. Dafür muß man sich die Auswertungsvorlage mit eingestelltem Filter exportieren. In der XML-Datei findet man die benötigten Werte, die man per Skript setzen muß. Code: using Eplan.EplApi.ApplicationFramework; using Eplan.EplApi.Base; using Eplan.EplApi.Scripting;class UpdateArticelPrices { [Start] public void Start() { CommandLineInterpreter cli = new CommandLineInterpreter(); ActionCallingContext acc = new ActionCallingContext(); // In der Auswertungsvorlage den Filter definieren // Hier im Beispiel unter Inhaltsverzeichnis die Vorlage 1 acc.AddParameter("set", "FormGeneratorGui.Templates.PxfForm_TABLEOFCONTENTS.1.FilterSchemeData"); acc.AddParameter("value", "0|1|0|11029;0|0|1|0|1|1|0|0|0;0|"); cli.Execute("XAfActionSettingProject", acc); // In der Auswertungsvorlage den Filter definieren // Hier im Beispiel "Schaltplan allpolig" acc.AddParameter("set", "FormGeneratorGui.Templates.PxfForm_TABLEOFCONTENTS.1.FilterSchemeName"); acc.AddParameter("value", "Schaltplan allpolig"); cli.Execute("XAfActionSettingProject", acc); CommandLineInterpreter cli2 = new CommandLineInterpreter(); ActionCallingContext acc2 = new ActionCallingContext(); acc2.AddParameter("TYPE", "PROJECT"); cli2.Execute("reports", acc2); // In der Auswertungsvorlage den Filter entfernen acc.AddParameter("set", "FormGeneratorGui.Templates.PxfForm_TABLEOFCONTENTS.1.FilterSchemeData"); acc.AddParameter("value", ""); cli.Execute("XAfActionSettingProject", acc); // In der Auswertungsvorlage den Filter entfernen acc.AddParameter("set", "FormGeneratorGui.Templates.PxfForm_TABLEOFCONTENTS.1.FilterSchemeName"); acc.AddParameter("value", ""); cli.Execute("XAfActionSettingProject", acc); } }
------------------ grüße FrankS Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stringeater Mitglied
Beiträge: 104 Registriert: 27.11.2014 EPLAN Electric P8 Select 2.9, Windows 10 EPLAN Electric P8 2023, Windows 10
|
erstellt am: 17. Aug. 2023 10:31 <-- editieren / zitieren --> Unities abgeben:
Hallo Frank Deine Lösung funktioniert perfekt. Das ist genau, was ich gesucht hatte. Herzlichen Dank für deinen Einsatz. Die Filter-Details habe ich, wie von dir beschrieben, im XML-File gefunden. @ Robin: Die PDF-Ausgabe funktioniert problemlos. Die Action "export" akzeptiert den Seitenfilter mit dem Parameter "PAGEFILTERNAME". Die ausgefilterten Seiten fehlen dann im PDF. Wenn ich für "PAGEFILTERNAME" einen Leerstring "" angebe, werden wieder alle Seiten im PDF ausgegeben. Das Problem war nur das Anpassen des Inhaltsverzeichnis. Aber danke fürs Nachfragen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|