Frank hat ein schönes Script erstellt um mehrere Wertesätze schnell anzulegen.
Das Script wird über das Kontextmenü aufgerufen.
Download on GitHub
// PlaceHolderMultiAddRecord, Version 1.1.0, vom 04.11.2014 // // Erweitert das Kontextmenü vom Platzhalterobjekt (Reiter Werte) um den Menüpunkt "Neuer Wertesatz (Mehrfach)..." // Erlaubt darüber das anlegen von mehreren leeren Wertesätzen. // // Copyright by Frank Schöneck, 2013-2014 // letzte Änderung: Frank Schöneck, 16.01.2013 V1.0.0, Projektbeginn // Frank Schöneck, 04.11.2014 V1.1.0, Umgestellt von SendKeys auf Action "MacrosGuiIGfWindNewRecord" // // für Eplan Electric P8, ab V2.2 // using System.Drawing; public class FrankS_PlaceHolder { [DeclareMenu()] public void PlaceHolderMultiAddRecordContextMenu() { //Context-Menüeintrag (hier im Platzhalterobjekt) Eplan.EplApi.Gui.ContextMenu oContextMenu = new Eplan.EplApi.Gui.ContextMenu(); Eplan.EplApi.Gui.ContextMenuLocation oContextMenuLocation = new Eplan.EplApi.Gui.ContextMenuLocation("PlaceHolder", "1004"); oContextMenu.AddMenuItem(oContextMenuLocation, "Neuer Wertesatz (&Mehrfach)...", "PlaceHolderMultiAddRecord", false, false); } [DeclareAction("PlaceHolderMultiAddRecord")] public void PlaceHolderMultiAddRecord_Action() { string value = "2"; if (InputBox.Show("Neuer Wertesatz (Mehrfach)", "Wieviele Wertesätze sollen angelegt werden?", ref value) == DialogResult.OK) { int iValue = Convert.ToInt32(value); // Eingabe von Typ string in ein Typ int wandeln for (int i = 1; i <= iValue; i++) { new CommandLineInterpreter().Execute("MacrosGuiIGfWindNewRecord"); //SendKeys.SendWait("^+{F10}W"); //Taste Kontextmenü aufrufen und direkt Taste W } } return; } } public class InputBox { /// <summary> /// Displays a dialog with a prompt and textbox where the user can enter information /// </summary> /// <param name="title">Dialog title</param> /// <param name="promptText">Dialog prompt</param> /// <param name="value">Sets the initial value and returns the result</param> /// <returns>Dialog result</returns> public static DialogResult Show(string title, string promptText, ref string value) { Form form = new Form(); Label label = new Label(); TextBox textBox = new TextBox(); Button buttonOk = new Button(); Button buttonCancel = new Button(); form.Text = title; label.Text = promptText; textBox.Text = value; buttonOk.Text = "OK"; buttonCancel.Text = "Abbrechen"; buttonOk.DialogResult = DialogResult.OK; buttonCancel.DialogResult = DialogResult.Cancel; label.SetBounds(9, 18, 372, 13); textBox.SetBounds(12, 36, 372, 20); buttonOk.SetBounds(228, 72, 75, 23); buttonCancel.SetBounds(309, 72, 75, 23); label.AutoSize = true; textBox.Anchor = textBox.Anchor | AnchorStyles.Right; buttonOk.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; buttonCancel.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; form.ClientSize = new Size(396, 107); form.Controls.AddRange(new Control[] { label, textBox, buttonOk, buttonCancel }); form.ClientSize = new Size(Math.Max(300, label.Right + 10), form.ClientSize.Height); form.FormBorderStyle = FormBorderStyle.FixedDialog; form.StartPosition = FormStartPosition.CenterScreen; form.MinimizeBox = false; form.MaximizeBox = false; form.AcceptButton = buttonOk; form.CancelButton = buttonCancel; DialogResult dialogResult = form.ShowDialog(); value = textBox.Text; return dialogResult; } }
Hallo, wie genau kann ich den Script anwenden?
Ich bekomme immer die Meldung: “Es wurde keine öffentliche Funktion mit dem Attribut [Start] deklariert.
Für Hilfe wäre ich sehr dankbar!
MfG Patrick Watzata
Du musst das Script Laden und bekommst dann einen Menüpunkt im Platzhalter-Dialog (Kontextmenü).
Hallo,
wie kann auf Variablen, Werte und Artikel in allen Platzhaltern in einem Projekt zugreiffen.
MfG
Michal Bukala
Geht leider nur per API
Vielen Dank für die schnelle Antwort.
Also
NameOfRecord Gets/Sets the name of a record, specified by its index
ist nicht anwendbar, um die Informationen aus Platzhalter auszulesen?
Kenn die Action nicht… nur die Methode…
Wie würdest du diese ausführen?
Hallo,
habe versucht das Script unter Eplan 2.83 zu laden. Bekomme aber nur eine Fehlermeldung “Konnte nicht kompiliert werden”. Kann mmir jemand helfen?
Das Script habe ich schon im richtigen Ordner abgespeichert. Dieses hat die Endung .CS
Ich konnte es in 2.8 problemlos laden.
Evtl. hat beim Abspeichern etwas nicht geklappt (Kodierung).
Hallo Johann,
wie sieht es denn zu Version 2022 aus?
Hallo Johann,
gibt es für EPLAN 2023 ff. ein angepasstes Script. Hier wird kein Kontextmenüeintrag angezeigt?
Ich habe es nicht getestet, aber gerne direkt hier nachfragen:
https://suplanus.de/placeholdermultiaddrecord/