Problemstellung
Regelmäßig wird nach der Projektbearbeitung vergessen auch noch die Fertigungsdaten oder Stücklisten neu auszuschreiben, oder es wird als „nerviges Übel“ empfunden und nur ungern gemacht. Manchmal gibt es auch Updates des Exportschemata und das Add-On zur Verteilung von Einstellungen etc. ist noch nicht bekannt oder wird schlicht nicht genutzt.
Problemlösung
Der Import des Schemata wurde schon behandelt, nun geht es an den Export. Über Label lassen sich alle Art von Fertigungsunterlagen und Listen ausschreiben, sofern diese nur vorher mal als Schemata angelegt wurden:
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Scripting;
public class fertdataexport {
[DeclareAction("loadscript")]
public void stuecklistenExport() {
string projektname = PathMap.SubstitutePath("$(PROJECTNAME)");
//string jobpath;
string schemeName = "StuecklisteXYZ";
string schemeFile = "LB.StuecklisteXYZ.xml";
string calcFileName = "StuecklisteXYZ_" + projektname + ".xlsm";
// wenn nicht in der gleichen Klasse noch ein new Klassenname(). davor
checkSchemeImport("USER.Labelling.Config", schemeFile, schemeName);
// Artikel aktualisieren kann nochmal hilfreich sein
new CommandLineInterpreter().Execute("XFgUpdateEvaluationAction");
// Userfeadback : a Process is running
Progress progress = new Progress("SimpleProgress");
progress.SetAllowCancel(true);
progress.SetAskOnCancel(true);
progress.BeginPart(100, "Berechnung Verlustleistungen");
progress.ShowImmediately();
// Define Params for execute
ActionCallingContext acc = new ActionCallingContext();
acc.AddParameter("CONFIGSCHEME", schemeName); // Konfigurationsschema
acc.AddParameter("LANGUAGE", "de_DE, en_US"); // Sprachen definieren
acc.AddParameter("DESTINATIONFILE ", "$(PROJECTPATH)\\" + calcFileName) ); // Zieldatei
acc.AddParameter("FILTERSCHEME", ""); // Filterschema (optional)
acc.AddParameter("RECREPEAT", "1"); // Anzahl der Wiederholungen pro Etikett
acc.AddParameter("SORTSCHEME", ""); // Sortierungsschemata
acc.AddParameter("PROJECTNAME", PathMap.SubstitutePath("$(P)"));
new CommandLineInterpreter().Execute("label", acc);
progress.EndPart(true);
return;
}
}