public void Open(string filePath, Project project) { PartsManagerment = new MDPartsManagement(); PartsDataBase = PartsManagerment.OpenDatabase(); FilePath = filePath; CurrentProject = project; ExcelExtension = new ExcelExtension(FilePath, true); PartSheets = ExcelExtension.ExcelPackage.Workbook.Worksheets; }
public bool OnUnregister() { var partsManagement = new MDPartsManagement(); partsManagement.UnregisterAddin(AddinName); partsManagement.UnregisterItem(ItemType); partsManagement.UnregisterTabsheet(TabsheetName); return(true); }
public static List <EplPartProperties> Search(string partNumber) { try { if (mDPartsManagement == null) { mDPartsManagement = new MDPartsManagement(); } if (mDPartsDatabase == null || !mDPartsDatabase.IsOpen) { mDPartsDatabase = mDPartsManagement.OpenDatabase(); } var parts = mDPartsDatabase.Parts.Where(i => i.PartNr.Contains(partNumber) || partNumber.Contains(i.PartNr)).ToList(); if (parts == null) { return(null); } var result = parts.Select(s => new EplPartProperties { PartNumber = s.PartNr, Supplier = s.Properties.ARTICLE_SUPPLIER, Description = s.Properties.ARTICLE_NOTE, Manufacturer = s.Properties.ARTICLE_MANUFACTURER, OrderNumber = s.Properties.ARTICLE_ORDERNR, Unit = s.Properties.ARTICLE_QUANTITYUNIT, Quantity = s.Properties.ARTICLE_PACKAGINGQUANTITY, Macro = s.Properties.ARTICLE_MACRO, Characteristic = s.Properties.ARTICLE_CHARACTERISTICS, Price = s.Properties.ARTICLE_PACKAGINGPRICE_1, PartGroup = s.Properties.ARTICLE_GROUPNUMBER, Symbol = (s.Properties.ARTICLE_REPORT_SYMBOL[1].IsEmpty ? "" : s.Properties.ARTICLE_REPORT_SYMBOL[1].ToString()), //ProductGroup = s.ProductGroup, //ProductSubGroup = s.ProductSubGroup, //ProductTopGroup = s.GenericProductGroup, Voltage = s.Properties.ARTICLE_VOLTAGE, VoltageType = s.Properties.ARTICLE_VOLTAGETYPE, Current = s.Properties.ARTICLE_ELECTRICALCURRENT, TrippingCurrent = s.Properties.ARTICLE_TRIGGERCURRENT, ConnectionPointCrossSection = s.Properties.ARTICLE_CONNECTIONCROSSSECTION, SwitchingCapacity = s.Properties.ARTICLE_ELECTRICALPOWER, MaxPowerDissipation = s.Properties.ARTICLE_POWERDISSIPATION, }).ToList(); return(result); } catch (Exception ex) { Logger.WriteLine("Search error.", ex); return(null); } }
public static MDPart SelectPartWithGui() { EplApplication eplanApplication = new EplApplication(); MDPartsManagement partsManagement = new MDPartsManagement(); string partnNumber = string.Empty; string partVariant = string.Empty; eplanApplication.ShowPartSelectionDialog(ref partnNumber, ref partVariant); MDPartsDatabase partsDatabase = partsManagement.OpenDatabase(); MDPart part = partsDatabase.GetPart(partnNumber, partVariant); return(part); }
public bool OnInitGui() { var partsManagement = new MDPartsManagement(); var actionName = nameof(ItemTypeExampleExampleAction); partsManagement.RegisterAddin(AddinName, actionName); partsManagement.RegisterItem(AddinName, ItemType); partsManagement.RegisterTabsheet(AddinName, ItemType, TabsheetName); var dialogBarFactory = new DialogFactoryDB(TabsheetName, typeof(ItemTypeExampleExampleContent)); ItemTypeExampleExampleAction.ItemType = ItemType; return(true); }
public bool OnInitGui() { var partsManagement = new MDPartsManagement(); string actionName = nameof(PartsManagementExtensionExampleAction); partsManagement.RegisterAddin(AddinName, actionName); partsManagement.RegisterItem(AddinName, ItemType); partsManagement.RegisterTabsheet(AddinName, ItemType, TabsheetName); DialogFactoryDB dialogBarFactory = new DialogFactoryDB(TabsheetName, typeof(PartsManagementExtensionContent)); PartsManagementExtensionExampleAction.TabsheetName = TabsheetName; return(true); }
public static MDPart CreatePart(ArticleReference articleReference) { // Need to lock project var project = articleReference.Project; project.SmartLock(); if (articleReference.ParentObject != null) { articleReference.ParentObject.SmartLock(); } articleReference.SmartLock(); // Init var partsDatabase = new MDPartsManagement().OpenDatabase(); articleReference.SmartLock(); var partNr = articleReference.PartNr; var partVariant = articleReference.VariantNr; MDPart part = partsDatabase.GetPart(partNr, partVariant); // Create new part if (part == null) { articleReference.SmartLock(); // ReSharper disable once RedundantAssignment part = partsDatabase.AddPart(partNr, partVariant); using (new LockingUtility.SeplaLockingVector()) { new EplApplication().ShowPartSelectionDialog(ref partNr, ref partVariant); } partsDatabase = new MDPartsManagement().OpenDatabase(); // Second Call needed to get new part part = partsDatabase.GetPart(partNr, partVariant); } // Load data var article = project.Articles .FirstOrDefault(obj => obj.PartNr.Equals(partNr) && obj.VariantNr.Equals(partVariant) ); if (article != null) { article.SmartLock(); article.LoadFromMasterdata(); } return(part); }
public static MDPart GetMDPart(string partnumber) { if (mDPartsManagement == null) { mDPartsManagement = new MDPartsManagement(); } if (mDPartsDatabase == null || !mDPartsDatabase.IsOpen) { mDPartsDatabase = mDPartsManagement.OpenDatabase(); } var part = mDPartsDatabase.Parts.Where(i => i.PartNr == partnumber).FirstOrDefault(); return(part); }
public static MDPart GetMDPart(this EplPartProperties eplPartProperties) { if (mDPartsManagement == null) { mDPartsManagement = new MDPartsManagement(); } if (mDPartsDatabase == null || !mDPartsDatabase.IsOpen) { mDPartsDatabase = mDPartsManagement.OpenDatabase(); } var part = mDPartsDatabase.Parts.Where(i => i.PartNr == eplPartProperties.PartNumber).FirstOrDefault(); return(part); }
public static MDPart CreatePart(ArticleReference articleReference) { // Need to lock project var project = articleReference.Project; project.SmartLock(); if (articleReference.ParentObject != null) { articleReference.ParentObject.SmartLock(); } articleReference.SmartLock(); // Init var partsDatabase = new MDPartsManagement().OpenDatabase(); //var articleReference = function.ArticleReferences.First(); articleReference.SmartLock(); var partNr = articleReference.PartNr; var partVariant = articleReference.VariantNr; MDPart part = partsDatabase.GetPart(partNr, partVariant); // Create new part if (part == null) { part = partsDatabase.AddPart(partNr, partVariant); // PartSelection to edit data new EplApplication().ShowPartSelectionDialog(ref partNr, ref partVariant); //partsDatabase = new MDPartsManagement().OpenDatabase(); // Second Call needed to get new part //part = partsDatabase.GetPart(partNr, partVariant); } // Load data var article = project.Articles .FirstOrDefault(obj => obj.PartNr.Equals(partNr) && obj.VariantNr.Equals(partVariant) ); if (article != null) { article.SmartLock(); article.LoadFromMasterdata(); } return(part); }
public static MDPart CreateOrUpdatePart(ArticleReference articleReference, bool updateFunctionTemplate) { // Need to lock project var project = articleReference.Project; project.SmartLock(); //if (articleReference.ParentObject != null) articleReference.ParentObject.SmartLock(); articleReference.SmartLock(); // Init var partsDatabase = new MDPartsManagement().OpenDatabase(); //var articleReference = function.ArticleReferences.First(); articleReference.SmartLock(); var partNr = articleReference.PartNr; var partVariant = articleReference.VariantNr; MDPart part = partsDatabase.GetPart(partNr, partVariant); // Check if article is in project and remove, because the eplan action to create is not possible var existingArticle = project.Articles .FirstOrDefault(obj => obj.PartNr.Equals(partNr) && obj.VariantNr.Equals(partVariant) ); if (existingArticle != null) { existingArticle.SmartLock(); existingArticle.Remove(); } // Need to focus again if its lost if (articleReference.ParentObject is Placement placementToBringInFront) { new Edit().BringToFront(placementToBringInFront); } // Create new part if (part == null) { // LockingVector is needed because of locking exception from EPLAN action (no catch possible) using (new LockingUtility.SeplaLockingVector()) { new CommandLineInterpreter().Execute("XPameCreateType"); } partsDatabase = new MDPartsManagement().OpenDatabase(); // Second Call needed to get new part part = partsDatabase.GetPart(partNr, partVariant); } // Existing part else { // Check if pro panel, because there is no update possible bool isProPanel = articleReference.ParentObject is Component; string partNrTemp = partNr; if (!isProPanel) { // Rename part string suffix = "_temp"; partNrTemp = part.PartNr + suffix; try { articleReference.PartNr = partNrTemp; articleReference.ParentObject.SmartLock(); articleReference.StoreToObject(); // Quiet create temp part var application = new EplApplication(); var quiteMode = application.QuietMode; application.QuietMode = EplApplication.QuietModes.ShowNoDialogs; using (new LockingUtility.SeplaLockingVector()) { new CommandLineInterpreter().Execute("XPameCreateType"); } application.QuietMode = quiteMode; } finally { // Rename back articleReference.PartNr = partNr; articleReference.StoreToObject(); } // Copy FunctionTemplate if (updateFunctionTemplate) { partsDatabase = new MDPartsManagement().OpenDatabase(); // Second Call needed to get new part MDPart partDuplicate = partsDatabase.GetPart(partNrTemp, partVariant); foreach (var partFunctionTemplatePosition in part.FunctionTemplatePositions) { part.RemoveFunctionTemplatePosition(partFunctionTemplatePosition); } foreach (var partDuplicateFunctionTemplatePosition in partDuplicate.FunctionTemplatePositions) { part.AddFunctionTemplatePosition(partDuplicateFunctionTemplatePosition); } partsDatabase.RemovePart(partDuplicate); } } // Check if article is in project var existingTempArticle = project.Articles .FirstOrDefault(obj => obj.PartNr.Equals(partNrTemp) && obj.VariantNr.Equals(partVariant) ); if (existingTempArticle != null) { existingTempArticle.SmartLock(); existingTempArticle.Remove(); } } // Load data var article = project.Articles .FirstOrDefault(obj => obj.PartNr.Equals(partNr) && obj.VariantNr.Equals(partVariant) ); if (article != null) { article.SmartLock(); article.LoadFromMasterdata(); } return(part); }
private void button1_Click(object sender, EventArgs e) { if (!this.IsValidPartNr()) { MessageBox.Show("부품 종류와 부품 번호를 입력해야 합니다."); return; } string partNr = comboBox4.Text; string category = comboBox1.Text; string subCategory = comboBox2.Text; string maker = comboBox3.Text; string description1 = comboBox5.Text; string note = textBox1.Text; string groupSymbolMacro = textBox2.Text; MDPartsManagement pm = new MDPartsManagement(); MDPartsDatabase database = pm.OpenDatabase(); MDPart mdPart = database.GetPart(partNr); if (mdPart != null) { MessageBox.Show(partNr + " 부품이 있습니다."); return; } DialogResult dr = MessageBox.Show(partNr + " 부품을 생성합니다.", "부품 생성 확인", MessageBoxButtons.OKCancel); if (DialogResult.OK != dr) { return; } Data.Mdb mdb = Data.MdbFactory.GetUniqueInstance; string[] attributes = mdb.GetAttribute(comboBox1.Text, comboBox2.Text); mdPart = database.AddPart(partNr); if (mdPart == null) { MessageBox.Show(mdPart.PartNr + " 부품이 생성이 실패했습니다."); return; } mdPart.Variant = "0"; mdPart.Properties.ARTICLE_PRODUCTGROUP = attributes[0]; mdPart.Properties.ARTICLE_PRODUCTSUBGROUP = attributes[1]; mdPart.Properties.ARTICLE_PRODUCTTOPGROUP = attributes[2]; mdPart.Properties.ARTICLE_MANUFACTURER = maker.Trim().Length == 0 ? " " : maker; mdPart.Properties.ARTICLE_TYPENR = partNr; mdPart.Properties.ARTICLE_NOTE = note; mdPart.Properties.ARTICLE_GROUPSYMBOLMACRO = groupSymbolMacro; MultiLangString mls = new MultiLangString(); mls.AddString(ISOCode.Language.L___, description1); mdPart.Properties.ARTICLE_DESCR1 = mls; mdb.AddAttribite(mdPart, category, subCategory); MessageBox.Show(mdPart.PartNr + " 부품이 생성되었습니다."); }