Ich hab, mit Hilfe des tollen API-Supports, es geschafft per Script den Seitenfilter zu setzen und diesen auch zu aktivieren.
In diesem Beispiel wird dann der Filter (sofern vorhanden) “MyFilter” im Seitennavigator gesetzt:
const string SCHEME_NAME = "MyFilter"; const string SETTINGS_PATH = "USER.PageBrowserGui.PageFilterScheme"; SchemeSetting schemeSetting = new SchemeSetting(); schemeSetting.Init(SETTINGS_PATH); // Update page filter schemeSetting.SetLastUsed(SCHEME_NAME); new Settings().SetBoolSetting("USER.PageBrowserGui.PageFilterScheme.ApplyCheckBox", true, 0); EventParameterString eventParameterString = new EventParameterString(); eventParameterString.String = "RefreshPageFilter"; new EventManager().Send("RefreshPageFilter", eventParameterString);
Zur Info:
Funktioniert beim 2D-Schaltschrankaufbau Navigator nicht
Leider ist der Seitennavigator der einzige Navigator der diese Möglichkeit mit bringt.
Kann es so sein das es nicht mehr funktioniert in Version 2.9SP1?
Habe es nicht getestet, aber denke kann gut sein, weil es die Checkbox nicht mehr gibt:
new Settings().SetBoolSetting("USER.PageBrowserGui.PageFilterScheme.ApplyCheckBox", true, 0);
Ich habe auch Probleme mit der erste Linien. Habe die Fehlermeldung CS0116 und CS1518. Ich konnte diese Fehlermeldungen leider nicht auflösen
Hast du das ganze auch als Script definiert? Dies ist nur ein Ausschnitt davon.
Kann ich “USER.PageBrowserGui.PageFilterScheme.ApplyCheckBox” auch auslesen? Z.B. mit “GetBoolSetting”?
Ja
Hallo Johann,
das Umschalten der Seitenfilter funktioniert gut. Aber gibt es eine Möglichkeit den Filter wieder auf – Nicht aktiviert – zurückzusetzen?
Ich habe das umgangen, indem ich mir einen Filter “Alles” angelegt habe, der leer ist. Und den spreche ich dann über das Script an.
Ist natürlich nicht so charmant….
Viele Grüße Jens
Das sollte gehen (habe ich nicht getestet):
new Settings().SetBoolSetting("USER.PageBrowserGui.PageFilterScheme.ApplyCheckBox", false, 0);
EventParameterString eventParameterString = new EventParameterString();
eventParameterString.String = "RefreshPageFilter";
new EventManager().Send("RefreshPageFilter", eventParameterString);
Klappt wunderbar!
Danke!
Danke für das Skript wirklich praktisch.
Nur eine Frage habe ich noch.
Bekommt man es auch hin, dass “LabellingContext” den aktuellen Seitenfilter berücksichtigt?
Mit diesem Code, wird die Beschriftung immer für das ganze Projekt ausgeführt, außer ich markiere eine der noch eingeblendeten Seiten.
Was aber nur funktioniert, wenn ich eine Seite vor dem Ausführen des Skripts im Seitennavi auswähle, die nicht durch den Filter ausgeblendet wird.
Denn nach dem ich den Seitenfilter über das Skript setze, springt der Fokus im Seitennavi sonst automatisch auf das Projekt und die Beschriftung erfolgt wieder für das ganze Projekt.
ActionCallingContext LabellingContext = new ActionCallingContext();
LabellingContext.AddParameter(“CONFIGSCHEME”, Configscheme);
LabellingContext.AddParameter(“DESTINATIONFILE”, Destinationfile);
LabellingContext.AddParameter(“FILTERSCHEME”, Filterscheme);
LabellingContext.AddParameter(“LANGUAGE”, “de_DE”);
LabellingContext.AddParameter(“SORTSCHEME”, Sortscheme);
LabellingContext.AddParameter(“TASKREPEAT”, Taskrepeat);
LabellingContext.AddParameter(“USESELECTION”, “1”);
new CommandLineInterpreter().Execute(“label”, LabellingContext);
Seitenfilter bzw. eigene Selektion ist leider nur per API möglich.
Hi,
also bei mir hat es Funktioniert wenn ich folgende Parameter noch hinzugefügt habe:
LabellingContext.AddParameter(“type”, “PAGES”);
LabellingContext.AddParameter(“PAGEFILTERNAME”, strSeitenfilter);
Das gleich kann man auch bei PDF-Export machen:
exportContext.AddParameter(“type”, “PDFPAGESSCHEME”);
exportContext.AddParameter(“PAGEFILTERNAME”, strSeitenfilter);
Wenn man die Parameter hinzufügt muss man den Seitenfilter nicht vorher über das Skript ändern.