using System; using System.IO; using System.Diagnostics; using System.Windows.Forms; using Eplan.EplApi.ApplicationFramework; using Eplan.EplApi.Base; using Eplan.EplApi.Scripting; public class IoCheckList { static string ProjectName { get { return PathMap.SubstitutePath("$(PROJECTNAME)").Replace(",", ""); } } static string strFolderIoCheckliste { get { return @"C:\temp\IO_Checkliste\"; } } static string strFolderEinzeldateien { get { return @"C:\temp\IO_Checkliste\Einzeldateien\"; } } static string strStrukturkennzeichen { get { return @"C:\temp\IO_Checkliste\Strukturkennzeichen.txt"; } } static string strDateinamenExcelFile { get { return @"C:\temp\IO_Checkliste\DateinamenExcelFile.txt"; } } [Start] public void Export() { //Löscht möglicherweise in dem Hilfsverzeichnis noch vorhandene Dateien TempVerzeichnisBereinigen(strFolderIoCheckliste); //Liste mit den Strukturkennzeichen für die Einbauorte ausgeben StrukturkennzeichenAusgeben("Strukturkennzeichen Liste", strStrukturkennzeichen, "Einbauorte"); string[] lines = System.IO.File.ReadAllLines(strStrukturkennzeichen); int NumberOfSteps = lines.Length; int count = 0; Progress progress = new Progress("Simple Progress"); progress.SetAllowCancel(false); progress.SetNeededSteps(NumberOfSteps); progress.SetTitle("IO Checkliste exportieren."); progress.ShowImmediately(); foreach (string line in lines) { count++; progress.Step(count); string strLocation = line.Replace("+", ""); FilterSchemaAnpassen(strLocation, strFolderEinzeldateien); } progress.EndPart(true); } //Hier wird das Filterschema fuer den Einbauort angepasst public static void FilterSchemaAnpassen(string Location, string DestinationFile) { Eplan.EplApi.Base.Settings oSettings = new Eplan.EplApi.Base.Settings(); string sSchemeName = "EA-Liste"; //Name des Schemas Fertigungsdaten Export string sLocation = Location; //Wert der bei Einbauort eingetragen wird SchemeSetting oSchemeSetting = new SchemeSetting(); oSchemeSetting.Init("USER.Labelling.Config"); //Einstellungspfad zum Schema if (oSchemeSetting.CheckIfSchemeExists(sSchemeName)) { oSchemeSetting.SetScheme(sSchemeName); string sValue = "0|1|0|1220;0|0|" + sLocation + "|0|1|1|0|0|0;0|"; //Wert des Sortierschemas oSchemeSetting.SetStringSetting("SortFilter.FilterSchemeData", sValue, 0); //Wert einstellen } BeschriftungenAusgeben(DestinationFile + @"+" + sLocation + @"_EA Liste.xlsx", sSchemeName); //return; } //Beschriftungen ausgeben public static void BeschriftungenAusgeben(string Destinationfile, string Configscheme) { ActionCallingContext LabellingContext = new ActionCallingContext(); LabellingContext.AddParameter("CONFIGSCHEME", Configscheme); LabellingContext.AddParameter("DESTINATIONFILE", Destinationfile); LabellingContext.AddParameter("LANGUAGE", "de_DE"); new CommandLineInterpreter().Execute("label", LabellingContext); } //Über die Funktion Beschriftungen werden die Strukturkennzeichen der Einbauorte in eine .txt-Datei ausgegeben public static void StrukturkennzeichenAusgeben(string Configscheme, string Destinationfile, string Filterscheme) { ActionCallingContext LabellingContext = new ActionCallingContext(); LabellingContext.AddParameter("CONFIGSCHEME", Configscheme); LabellingContext.AddParameter("DESTINATIONFILE", Destinationfile); LabellingContext.AddParameter("FILTERSCHEME", Filterscheme); LabellingContext.AddParameter("LANGUAGE", "de_DE"); new CommandLineInterpreter().Execute("label", LabellingContext); } //Löscht möglicherweise in dem Hilfsverzeichnis noch vorhandene Dateien public static void TempVerzeichnisBereinigen(string strFolderIoCheckliste) { DirectoryInfo di = new DirectoryInfo(strFolderIoCheckliste); FileInfo[] files = di.GetFiles(); foreach (FileInfo file in files) { file.Delete(); } } }