public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { try { poInfo.mbsAddInName = nameof(PdmAddIn); //"PdmAddIn"; poInfo.mbsDescription = "Bare bones PDM add-in"; poInfo.mbsCompany = "ACME Corp"; poInfo.mlAddInVersion = 1; poInfo.mlRequiredVersionMajor = 15; poInfo.mlRequiredVersionMinor = 0; poCmdMgr.AddCmd(1, "AA Atach Files", (int)( EdmMenuFlags.EdmMenu_OnlyInContextMenu | EdmMenuFlags.EdmMenu_OnlyFiles | EdmMenuFlags.EdmMenu_OnlySingleSelection)); // Only supporting single selection for now. // Example of adding a hook poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostAdd); } catch (Exception ex) { #if Debug MessageBox.Show(ex.ToString()); #else MessageBox.Show(ex.Message); #endif } }
public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { poInfo.mbsAddInName = "C# Add-in"; poInfo.mbsCompany = "Artrans S.A"; poInfo.mbsDescription = "Menu add-in that shows a message box."; poInfo.mlAddInVersion = 1; poInfo.mlRequiredVersionMajor = 6; poInfo.mlRequiredVersionMinor = 4; Vault = poVault; //Añado el hook para las validaciones en los cambios de estado. poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreState); poCmdMgr.AddCmd(1, "C# Add-in", (int)EdmMenuFlags.EdmMenu_Nothing); //Register hooks /* * //Notify the add-in when a file has been added * poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostAdd); * * //Notify the add-in when a file has been checked out * poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostLock); * * //Notify the add-in when a file is about to be checked in * poCmdMgr.AddHook(EdmCmdType.EdmCmd_PreUnlock); * * //Notify the add-in when a file has been checked in * poCmdMgr.AddHook(EdmCmdType.EdmCmd_PostUnlock); */ }
public void SaveCard_Click(System.Object sender, System.EventArgs e) { try { if (vault1 == null) { vault1 = new EdmVault5(); } if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } view.SaveData(); SaveCard.Enabled = false; } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void Form1_Load(System.Object sender, System.EventArgs e) { try { vault1 = new EdmVault5(); IEdmVault10 vault = (IEdmVault10)vault1; EdmViewInfo[] Views = null; vault.GetVaultViews(out Views, false); VaultsComboBox.Items.Clear(); foreach (EdmViewInfo View in Views) { VaultsComboBox.Items.Add(View.mbsVaultName); } if (VaultsComboBox.Items.Count > 0) { VaultsComboBox.Text = (string)VaultsComboBox.Items[0]; } } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
static public List <Info> GetFilesToConvert(IEdmVault5 vault, ref EdmCmd poCmd, ref EdmCmdData[] ppoData) { var list = new List <Info>(); foreach (var item in FilesPdm(vault, ref poCmd, ref ppoData)) { var taskParam = new Info(); taskParam.IdPDM = item.IdPDM; var extension = Path.GetExtension(item.FileName); switch (extension.ToUpper()) { case ".SLDPRT": taskParam.CurrentVersion = item.CurrentVersion; taskParam.FileName = item.FileName; taskParam.FolderPath = item.FolderPath; taskParam.FolderID = item.FolderID; taskParam.FullFilePath = item.FullFilePath; taskParam.ConvertFile = item.FileName.ToUpper().Replace(".SLDPRT", ".EPRT"); taskParam.TaskType = 1; list.Add(taskParam); break; } } return(list); }
private static bool AddFile2Vault(IEdmVault5 vault, string filePath, out IEdmFile5 edmFile) { edmFile = null; try { IEdmFolder9 parentFolder = vault.GetFolderFromPath(Path.GetDirectoryName(filePath)) as IEdmFolder9; if (parentFolder == null) { //文件夹也是新增的 string fileFolder = Path.GetDirectoryName(filePath).ToLower(); string vaultPath = vault.RootFolderPath.ToLower(); fileFolder = fileFolder.Replace(vault.RootFolderPath.ToLower(), ""); string[] subFolders = fileFolder.Split('/', '\\'); if (!RecursivelyAddFolder(vault, vault.RootFolder, subFolders, out parentFolder)) { return(false); } } int addFileStatus; parentFolder.AddFile2(0, filePath, out addFileStatus, "", (int)EdmAddFlag.EdmAdd_Simple); IEdmFolder5 folder; return(GetFileFromPath(vault, filePath, out edmFile, out folder)); } catch (Exception ex) { return(false); } }
public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MTcwMjQwQDMxMzcyZTMzMmUzMGhycFlDaldXNDVZeWxhdnFwckswQnRhMHVwclp2OWNrUEltNHczb21ENDQ9;MTcwMjQxQDMxMzcyZTMzMmUzMG4xOFQ1dnBDR1oxalUvazM5UmlTRkdUelJRcHkweURnVERXRXRabnpaZVE9"); Vault = (IEdmVault20)poVault; CmdMgr = poCmdMgr; Info = poInfo; //Specify information to display in the add-in's Properties dialog box poInfo.mbsAddInName = "PDM DWG Converter"; poInfo.mbsCompany = "FlowerRobot"; poInfo.mbsDescription = "This will convert dwgs to dxf and pdf"; poInfo.mlAddInVersion = 19; //Specify the minimum required version of SolidWorks PDM Professional poInfo.mlRequiredVersionMajor = 10; poInfo.mlRequiredVersionMinor = 1; //Register this add-in as a task add-in poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskRun); //Register this add-in to be called when selected as a task in the Administration tool poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetup); //Register this add-in to be called when the task is launched on the client computer poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskLaunch); //Register this add-in to provide extra details in the Details dialog box in the task list in the Administration tool poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskDetails); //Register this add-in to be called when the launch dialog box is closed poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskLaunchButton); //Register this add-in to be called when the set-up wizard is closed poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetupButton); }
public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { poInfo.mbsAddInName = "Demo AddIn"; poInfo.mlRequiredVersionMajor = 17; //SOLIDWORKS PDM 2017 SP0 poCmdMgr.AddCmd(TEST_CMD_ID, "Test Menu Command"); }
/// <summary> /// Pdm initializes an instance of this object by creating and producing auto-login. /// </summary> private void PDMInitialize() { try { if (edmVault5 == null) { edmVault5 = new EdmVault5(); Logger.ToLog("Создан экземпляр Vents-PDM"); } if (!edmVault5.IsLoggedIn) { edmVault5.LoginAuto(vaultname, 0); Logger.ToLog("Автологин в системе Vents-PDM системного пользователя " + vaultname); } } catch { Logger.ToLog("Невозможно создать экземпляр Vents-PDM - " + this.vaultname); throw new Exception("Невозможно создать экземпляр " + this.vaultname); } finally { Logger.ToLog("\n"); } }
//more efficient than using TryUnlockFile for checking in multiple files. private static FileCheckInResult UnlockFiles(IEdmVault5 vault, string[] filePaths) { try { IEdmVault7 vault7 = vault as IEdmVault7; IEdmBatchUnlock batchUnlocker = (IEdmBatchUnlock)vault7.CreateUtility(EdmUtility.EdmUtil_BatchUnlock); EdmSelItem[] selItems = new EdmSelItem[filePaths.Length]; for (int i = 0; i < filePaths.Length; ++i) { IEdmFile5 edmFile; IEdmFolder5 edmFolder; if (!GetFileFromPath(vault, filePaths[i], out edmFile, out edmFolder)) { return(FileCheckInResult.UNKNOWN_ERROR); } selItems[i].mlDocID = edmFile.ID; selItems[i].mlProjID = edmFolder.ID; } batchUnlocker.AddSelection(vault as EdmVault5, ref selItems); //这里必然有异常o(╥﹏╥)o batchUnlocker.CreateTree(0, (int)EdmUnlockBuildTreeFlags.Eubtf_MayUnlock); batchUnlocker.UnlockFiles(0); return(FileCheckInResult.OK); } catch (Exception ex) { return(FileCheckInResult.UNKNOWN_ERROR); } }
//Use IEdmBatchGet to check out several files, it is more efficient repeatedly calling LockFile. private static FileCheckOutResult LockFiles(IEdmVault5 vault, string[] filePaths, bool bLockReferenceFiles) { try { IEdmVault7 vault7 = vault as IEdmVault7; IEdmBatchGet batchGetter = vault7.CreateUtility(EdmUtility.EdmUtil_BatchGet); for (int i = 0; i < filePaths.Length; ++i) { IEdmFile5 edmFile; IEdmFolder5 edmFolder; if (!GetFileFromPath(vault, filePaths[i], out edmFile, out edmFolder)) { return(FileCheckOutResult.UNKNOWN_ERROR); } batchGetter.AddSelectionEx((EdmVault5)vault, edmFile.ID, edmFolder.ID, null); } int cmdFlag = bLockReferenceFiles ? (int)(EdmGetCmdFlags.Egcf_LockReferencedFilesToo | EdmGetCmdFlags.Egcf_Lock) : (int)EdmGetCmdFlags.Egcf_Lock; batchGetter.CreateTree(0, cmdFlag); batchGetter.GetFiles(0); return(FileCheckOutResult.OK); } catch (Exception ex) { return(FileCheckOutResult.UNKNOWN_ERROR); } }
/// <summary> /// 【11】获取组名 /// </summary> /// <returns>共有2列,Name和Code</returns> public static DataTable GetGroup() { DataTable dt = new DataTable(); dt.Columns.Add("Name"); dt.Columns.Add("Code"); IEdmUserMgr7 UsrMgr; IEdmUserGroup8 mngmtGroup; if (vault == null) { vault = new EdmVault5(); } if (!vault.IsLoggedIn) { vault.LoginAuto(VaultName, new Control().Handle.ToInt32()); } UsrMgr = (IEdmUserMgr7)vault; //Traverse groups //string Groups = ""; IEdmPos5 UserGroupPos = default(IEdmPos5); UserGroupPos = UsrMgr.GetFirstUserGroupPosition(); while (!UserGroupPos.IsNull) { mngmtGroup = (IEdmUserGroup8)UsrMgr.GetNextUserGroup(UserGroupPos); //Groups = Groups + mngmtGroup.Name + "\n"; DataRow dr = dt.NewRow(); dr["Name"] = mngmtGroup.Name; dr["Code"] = mngmtGroup.ID; dt.Rows.Add(dr); } return(dt); }
//Display the card of the selected file private void ShowCard(IEdmFolder5 folder, int fileID) { try { if (vault1 == null) { vault1 = new EdmVault5(); } if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } IEdmVault10 vault = (IEdmVault10)vault1; EdmCardViewParams @params = default(EdmCardViewParams); @params.mlFileID = fileID; @params.mlFolderID = folder.ID; @params.mlCardID = 0; @params.mlX = 40; @params.mlY = 300; @params.mhParentWindow = this.Handle.ToInt32(); @params.mlEdmCardViewFlags = (int)EdmCardViewFlag.EdmCvf_Normal; //Create the card view interface view = vault.CreateCardViewEx2(@params, this); if (view == null) { Interaction.MsgBox("The file does not have a card."); return; } //Set input focus to the first control in the card view.SetFocus(0); //Enable all controls in the card view.Update(EdmCardViewUpdateType.EdmCvut_EnableCtrl); //Get the size needed to display the card int width = 0; int height = 0; view.GetCardSize(out width, out height); //Resize the form window to make room for the card this.Width = (width + 100); this.Height = (height + 400); view.ShowWindow(true); SaveCard.Enabled = false; } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { poInfo.mbsAddInName = "ButtonPdmAddIn"; poInfo.mlAddInVersion = 1; poInfo.mlRequiredVersionMajor = 16; poCmdMgr.AddHook(EdmCmdType.EdmCmd_CardButton); }
public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { poInfo.mbsAddInName = "SW PDM Helper"; poInfo.mbsDescription = "Utility functions for SOLIDWORKS PDM"; poInfo.mlAddInVersion = 1; poInfo.mlRequiredVersionMajor = 17; //SOLIDWORKS PDM 2017 SP0 poCmdMgr.AddCmd((int)Commands_e.GetIds, "Get ID"); }
public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { // Version const int ver = 14; try { if (ThisIsTask) { #region Task poInfo.mbsAddInName = $"Make .eprt files Task Add-In ver." + ver; poInfo.mbsCompany = "Vents"; poInfo.mbsDescription = "Создание и сохранение файлов .eprt для листовых деталей"; poInfo.mlAddInVersion = ver; currentVer = poInfo.mlAddInVersion; //Minimum SolidWorks Enterprise PDM version //needed for C# Task Add-Ins is 10.0 poInfo.mlRequiredVersionMajor = 10; poInfo.mlRequiredVersionMinor = 0; //Register this add-in as a task add-in poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskRun); //Register this add-in to be called when //selected as a task in the Administration tool poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetup); poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetupButton); poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskDetails); #endregion } else { #region Addin // Addin version poInfo.mbsAddInName = "C# Task Add-In"; poInfo.mbsCompany = "Vents"; poInfo.mbsDescription = "PDF & EPRT"; poInfo.mlAddInVersion = 1; poInfo.mlRequiredVersionMajor = 6; poInfo.mlRequiredVersionMinor = 4; poCmdMgr.AddCmd(1, "Convert", (int)EdmMenuFlags.EdmMenu_Nothing, "", "", 0, 0); #endregion } } catch (COMException ex) { Logger.Add("GetAddInInfo HRESULT = 0x" + ex.ErrorCode.ToString("X") + "; " + ex.Message); } catch (Exception ex) { Logger.Add(ex.Message + "; \n" + ex.StackTrace); } }
private void populateVaultNames() { vault = new EdmVault5(); ((IEdmVault8)vault).GetVaultViews(out EdmViewInfo[] views, false); foreach (EdmViewInfo view in views) { vaultNames.Add(view.mbsVaultName); } }
public bool GetAsmIndoFromFile(IEdmVault5 poVault, string filePath, SldAsm asmPrd) { IEdmFolder5 opParentFolder; IEdmFile5 poFile = poVault.GetFileFromPath(filePath, out opParentFolder); IEdmEnumeratorVariable5 enumVar = poFile.GetEnumeratorVariable(); if (filePath == "") { return(false); } asmPrd.path = filePath; // object tmpVar; if (enumVar.GetVar("代号", "@", out tmpVar)) { asmPrd.number = tmpVar.ToString(); asmPrd.ztdm = asmPrd.number.Substring(0, asmPrd.number.IndexOf(".")); asmPrd.zjdm = asmPrd.number.Substring(asmPrd.number.IndexOf(".") + 1); } if (enumVar.GetVar("名称", "@", out tmpVar)) { asmPrd.name = tmpVar.ToString(); } if (enumVar.GetVar("设计", "@", out tmpVar)) { asmPrd.bzr = tmpVar.ToString(); } if (enumVar.GetVar("设计日期", "@", out tmpVar)) { asmPrd.bzsj = ((DateTime)tmpVar).ToString("%y/%m/%d"); } if (enumVar.GetVar("批准", "@", out tmpVar)) { asmPrd.pzr = tmpVar.ToString(); } if (enumVar.GetVar("批准日期", "@", out tmpVar)) { asmPrd.pzsj = ((DateTime)tmpVar).ToString("%y/%m/%d"); } if (enumVar.GetVar("阶段标记", "@", out tmpVar)) { asmPrd.jdbj = tmpVar.ToString(); } if (enumVar.GetVar("设备型号", "@", out tmpVar)) { asmPrd.sbxh = tmpVar.ToString(); } if (enumVar.GetVar("Project Name", "@", out tmpVar)) { asmPrd.projName = tmpVar.ToString(); } return(true); }
static void Main(string[] args) { WiseUtil wiseUtil = new WiseUtil(); string installLocation = wiseUtil.GetLocalMachineRegistryValue("SOFTWARE\\solidworks\\Applications\\PDMWorks Enterprise\\", "Location"); System.Console.WriteLine(installLocation); if (installLocation == "") { installLocation = "C:\\"; } string excelTemplate = installLocation + "ExportTemplate\\template-list.xlsx"; Workbook templateWb = wiseUtil.OpenExcel(excelTemplate); SldWorks.SldWorks swApp; //IEdmVault5 vault = new EdmVault5(); //vault.LoginAuto("科德研发部"); swApp = new SldWorks.SldWorks(); int longstatus = 0; int longwarnings = 0; //E:\\wisevault0\\draw\\G20-A01P.SLDDRW //F:\\科德研发部\\01-机床整机产品\\01-铣车复合机\\KMC800 系列机型\\02-裸机图纸\\KMC800\\710.14 滑枕组件\\710.1401 滑枕组件装配图基础 A2.SLDDRW ModelDoc2 modelDoc = swApp.OpenDoc6("E:\\wisevault0\\draw\\G20-A01P.SLDDRW", (int)swDocumentTypes_e.swDocDRAWING, (int)swOpenDocOptions_e.swOpenDocOptions_ReadOnly, "", ref longstatus, ref longwarnings); BomTableAnnotation bomTableAnno; string configName = ""; string topFileName = ""; wiseUtil.GetDrawingDocBOMTable(modelDoc, out bomTableAnno, out configName, out topFileName); //modelDoc.Close(); IEdmVault5 poVault = null; SldAsm asmPrd = wiseUtil.GetAsmIndoFromFile(poVault, topFileName);// new SldAsm(); if (asmPrd == null) { return(false); } //asmPrd.bzr = "hou"; //asmPrd.bzsj = "2016/1/1"; wiseUtil.ProcessTableAnn(poVault, bomTableAnno, configName, asmPrd); asmPrd.bzr = "hou"; asmPrd.bzsj = "2016/1/1"; wiseUtil.ProcessTableAnn(bomTableAnno, configName, asmPrd); wiseUtil.SaveBuyToWorkbook(templateWb, asmPrd); wiseUtil.SaveStdToWorkbook(templateWb, asmPrd); wiseUtil.SavePrtToWorkbook(templateWb, asmPrd); templateWb.SaveAs("D:\\a.xlsx"); templateWb.Close(); swApp.ExitApp(); swApp = null; }
public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { poInfo.mbsAddInName = "编码器v1"; poInfo.mbsCompany = "JES Company"; //poInfo.mbsDescription = "产品和零部件编码生成器;服务器:" + Utility.SQLHelper.strConn.Substring(7, Utility.SQLHelper.strConn.IndexOf(";", 0) - 7); poInfo.mbsDescription = "产品和零部件编码生成器"; poInfo.mlAddInVersion = 2; poInfo.mlRequiredVersionMajor = 5; poInfo.mlRequiredVersionMinor = 2; poCmdMgr.AddHook(EdmCmdType.EdmCmd_CardButton); }
private static bool GetReferencedFiles(IEdmVault5 vault, IEdmReference10 reference, string filePath, string projectName, ref List <string> refFiles) { try { bool bTop = false; if (reference == null) { bTop = true; SWFileType type = GetSWFileType(filePath); if (type != SWFileType.UNKNOWN) { refFiles.Add(filePath); IEdmFile5 edmFile; IEdmFolder5 edmFolder = null; if (!GetFileFromPath(vault, filePath, out edmFile, out edmFolder)) { return(false); } reference = (IEdmReference10)edmFile.GetReferenceTree(edmFolder.ID); if (type == SWFileType.ASSEMBLY) //装配体递归 { GetReferencedFiles(vault, reference, "", projectName, ref refFiles); } } } else { IEdmPos5 pos = default(IEdmPos5); pos = reference.GetFirstChildPosition3(projectName, bTop, true, (int)EdmRefFlags.EdmRef_File, "", 0); while ((!pos.IsNull)) { IEdmReference10 @ref = (IEdmReference10)reference.GetNextChild(pos); SWFileType type = GetSWFileType(@ref.FoundPath); if (type != SWFileType.UNKNOWN) { if (!refFiles.Contains(@ref.FoundPath)) { refFiles.Add(@ref.FoundPath); if (type == SWFileType.ASSEMBLY) //装配体递归 { GetReferencedFiles(vault, @ref, "", projectName, ref refFiles); } } } } } return(true); } catch (Exception ex) { return(false); } }
private static FileCheckOutResult LockFile(IEdmVault5 vault, string user, string fileFullPath) { IEdmFile5 file; IEdmFolder5 parentFolder; if (!GetFileFromPath(vault, fileFullPath, out file, out parentFolder)) { return(FileCheckOutResult.FILE_NOT_FOUND); } //已经检出 if (file.IsLocked) { if (file.LockedByUser.Name.ToLower() == user.ToLower()) { return(FileCheckOutResult.OK); } else { return(FileCheckOutResult.FILE_IS_LOCKED_BY_OTHER_USER); } } int?edmResultCode; if (TryLockFile(file, parentFolder, out edmResultCode)) { return(FileCheckOutResult.OK); } else { FileCheckOutResult retCode = FileCheckOutResult.UNKNOWN_ERROR; switch (edmResultCode) { case (int)EdmResultErrorCodes_e.E_EDM_PERMISSION_DENIED: retCode = ResultCodes.FileCheckOutResult.PERMISSION_DENIED; break; case (int)EdmResultErrorCodes_e.E_EDM_OPERATION_REFUSED_BY_PLUGIN: retCode = ResultCodes.FileCheckOutResult.OPERATION_REFUSED_BY_PLUGIN; break; case (int)EdmResultErrorCodes_e.E_EDM_FILE_NOT_FOUND: retCode = ResultCodes.FileCheckOutResult.FILE_NOT_FOUND; break; default: retCode = ResultCodes.FileCheckOutResult.UNKNOWN_ERROR; break; } return(retCode); } }
public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { poInfo.mbsAddInName = "AddinPdf"; poInfo.mbsCompany = "SOLIDWORKS Corporation"; poInfo.mbsDescription = "Adds menu command items"; poInfo.mlAddInVersion = 1; poInfo.mlRequiredVersionMajor = 10; poInfo.mlRequiredVersionMinor = 0; //poCmdMgr.AddCmd(100, "Выгрузить Pdf-file", (int)EdmMenuFlags.EdmMenu_OnlyMultipleSelection); poCmdMgr.AddCmd(100, "Выгрузить Pdf-file", (int)EdmMenuFlags.EdmMenu_OnlySingleSelection); }
private void GetCardList() { notBusy = false; try { vault = new EdmVault5(); vault.LoginAuto(selectedVault, 0); if (vault.IsLoggedIn) { IEdmFile5 file = vault.GetFileFromPath(selectedFile, out IEdmFolder5 folder); IEdmCard5 card = folder.GetCard(Path.GetExtension(selectedFile).Substring(1)); Object variableName = selectedVariable; IEdmCardControl7 cardControl = (IEdmCardControl7)card.GetControl(card.GetControlID(ref variableName)); if (cardControl.GetControlVariableList(file.ID, out String[] cardListStrings))
void IEdmAddIn5.GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { try { SetAddInInfo(ref poInfo); poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetup); poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskRun); } catch (Exception ex) { HandleEx(ex, true); } }
private static void LogIn(ref int exitCode, ref IEdmVault5 vault, string vName) { if (vault == null) { exitCode = 10; return; } vault.LoginAuto(vName, 0); if (!vault.IsLoggedIn) { exitCode = 10; return; } }
public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { poInfo.mbsAddInName = "Custom Addin"; poInfo.mbsCompany = "Hawk Ridge Systems"; poInfo.mbsDescription = "My custom addin"; poInfo.mlAddInVersion = 1; poInfo.mlRequiredVersionMajor = 18; poInfo.mlRequiredVersionMinor = 0; // create commands // create context menu commands poCmdMgr.AddCmd(100, "CustomAddin\\Action1"); poCmdMgr.AddCmd(200, "CustomAddin\\Assy Only BOM"); }
public SldBsp GetSldPrdInfoFromFile(IEdmVault5 poVault, string filePath) { SldBsp bspPrt = null; IEdmFolder5 opParentFolder; //bspPrt = new SldBuy(); IEdmFile5 poFile = poVault.GetFileFromPath(filePath, out opParentFolder); if (poFile == null) { bspPrt = new SldPrt(); bspPrt.type = 1; return(bspPrt); } IEdmEnumeratorVariable5 enumVar = poFile.GetEnumeratorVariable(); if (enumVar == null) { return(null); } object tmpVar; string partType = ""; if (enumVar.GetVar("Part Type", "@", out tmpVar)) { partType = tmpVar.ToString(); } if (partType == "自制件") { bspPrt = new SldPrt(); bspPrt.type = 1; SldPrt prt = (SldPrt)bspPrt; if (enumVar.GetVar("工艺路线", "@", out tmpVar)) { prt.route = tmpVar.ToString(); } } else if (partType == "标准件") { bspPrt = new SldStd(); bspPrt.type = 2; } else { bspPrt = new SldBuy(); bspPrt.type = 3; } bspPrt.path = filePath; return(bspPrt); }
public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { poInfo.mbsAddInName = "DownloadDxf"; poInfo.mbsCompany = "SOLIDWORKS Corporation"; poInfo.mbsDescription = "Adds menu command items"; poInfo.mlAddInVersion = 1; poInfo.mlRequiredVersionMajor = 10; poInfo.mlRequiredVersionMinor = 0; poCmdMgr.AddCmd(100, "Добавить Dxf-file", (int)EdmMenuFlags.EdmMenu_OnlyMultipleSelection); poCmdMgr.AddCmd(100, "Добавить Dxf-file", (int)EdmMenuFlags.EdmMenu_OnlySingleSelection); poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskRun); poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetup); }
public void SelectFiles_Click(System.Object sender, System.EventArgs e) { try { File1List.Items.Clear(); IEdmVault7 vault2 = null; if (vault1 == null) { vault1 = new EdmVault5(); } vault2 = (IEdmVault7)vault1; if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } //Set the initial directory in the Select File dialog OpenFileDialog1.InitialDirectory = vault1.RootFolderPath; //Show the Select File dialog System.Windows.Forms.DialogResult DialogResult; DialogResult = OpenFileDialog1.ShowDialog(); if (!(DialogResult == System.Windows.Forms.DialogResult.OK)) { // do nothing } else { IEdmFolder5 ppoRetParentFolder; foreach (string FileName in OpenFileDialog1.FileNames) { File1List.Items.Add(FileName); aFile = (IEdmFile7)vault1.GetFileFromPath(FileName, out ppoRetParentFolder); } } } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
void EdmLib.IEdmAddIn5.GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { //Fill in the AddIn's description poInfo.mbsAddInName = "Monitor"; poInfo.mbsCompany = "SolidWorks"; poInfo.mbsDescription = "Addin"; poInfo.mlAddInVersion = 1; //Minimum Conisio version needed for .Net Add-Ins is 6.4 poInfo.mlRequiredVersionMajor = 6; poInfo.mlRequiredVersionMinor = 4; poCmdMgr.AddCmd(1, "Test Menu from SWEPDMAddin2", (int)EdmMenuFlags.EdmMenu_Nothing, "", "", 0, 0); //uncomment this line to add all hooks AddAllHooks(poCmdMgr); }
void EdmLib.IEdmAddIn5.GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { //Fill in the AddIn's description poInfo.mbsAddInName = "Automatic File Removal"; poInfo.mbsCompany = "Norco Industries"; poInfo.mbsDescription = "Automatically removes files of the same name as targeted file with specified extension. Written to remove released documents when revision is in process."; poInfo.mlAddInVersion = 1; //Minimum Conisio version needed for .Net Add-Ins is 6.4 poInfo.mlRequiredVersionMajor = 6; poInfo.mlRequiredVersionMinor = 4; poCmdMgr.AddCmd(1, "Debug Menu\\Automatic File Removal Tool",(int)EdmMenuFlags.EdmMenu_Nothing, "", "", 0, 0); //uncomment this line to add all hooks AddAllHooks(poCmdMgr); }
private void Button10_Click(System.Object sender, System.EventArgs e) { //Remove user, Temp try { IEdmVault7 vault2 = null; if (vault1 == null) { vault1 = new EdmVault5(); } vault2 = (IEdmVault7)vault1; if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } IEdmUserMgr7 userMgr = default(IEdmUserMgr7); userMgr = (IEdmUserMgr7)vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr); IEdmUser7 user = default(IEdmUser7); user = (IEdmUser7)userMgr.GetUser("Temp"); if (user == null) return; int[] users = new int[1]; users[0] = user.ID; userMgr.RemoveUsers(users); MessageBox.Show("User, Temp, removed"); } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
//private const string VaultName = @"Vents-PDM"; public void CheckPdmVault() { try { if (Vault1 == null) { Vault1 = new EdmVault5(); } Vault2 = (IEdmVault7)Vault1; var ok = Vault1.IsLoggedIn; if (!ok) { Vault1.LoginAuto(VaultName, 0); } } catch (Exception ex) { MessageBox.Show(ex.Message + "; " + ex.StackTrace); } }
private void Button3_Click(System.Object sender, System.EventArgs e) { //Delete folder try { IEdmVault7 vault2 = null; if (vault1 == null) { vault1 = new EdmVault5(); } vault2 = (IEdmVault7)vault1; if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } IEdmFolder5 folder = default(IEdmFolder5); folder = vault2.BrowseForFolder(this.Handle.ToInt32(), "Select folder to delete:"); if (folder == null) return; IEdmFolder5 parentFolder = default(IEdmFolder5); parentFolder = folder.ParentFolder; if (parentFolder == null) { Interaction.MsgBox("You cannot delete the vault root folder"); return; } parentFolder.DeleteFolder(this.Handle.ToInt32(), folder.ID); MessageBox.Show(folder.Name + " deleted"); } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void Button1_Click(System.Object sender, System.EventArgs e) { //Copy file try { IEdmVault7 vault2 = null; if (vault1 == null) { vault1 = new EdmVault5(); } vault2 = (IEdmVault7)vault1; if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } EdmStrLst5 pathList = default(EdmStrLst5); pathList = vault2.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles); if (pathList == null) return; IEdmFile5 file = default(IEdmFile5); IEdmFolder5 srcFolder = null; file = vault2.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition()), out srcFolder); IEdmFolder5 destFolder = default(IEdmFolder5); destFolder = vault2.BrowseForFolder(this.Handle.ToInt32(), "Select destination folder:"); if (destFolder == null) return; int fileID = 0; fileID = destFolder.CopyFile(file.ID, srcFolder.ID, this.Handle.ToInt32(), "", (int)EdmCopyFlag.EdmCpy_Simple); Interaction.MsgBox("Copied file successfully to new file with ID, " + fileID); } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void Button2_Click(System.Object sender, System.EventArgs e) { //Delete file try { IEdmVault7 vault2 = null; if (vault1 == null) { vault1 = new EdmVault5(); } vault2 = (IEdmVault7)vault1; if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } EdmStrLst5 pathList = default(EdmStrLst5); pathList = vault2.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles + (int)EdmBrowseFlag.EdmBws_PermitMultipleSel, "", "", "", "", "Select Files to Delete"); if (pathList == null) return; IEdmPos5 pos = default(IEdmPos5); pos = pathList.GetHeadPosition(); while (!pos.IsNull) { IEdmFile5 file = default(IEdmFile5); IEdmFolder5 folder = null; file = vault2.GetFileFromPath(pathList.GetNext(pos), out folder); folder.DeleteFile(this.Handle.ToInt32(), file.ID); } string strCount = null; strCount = pathList.Count.ToString(); MessageBox.Show("Deleted " + strCount + " file"); } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void Button4_Click(System.Object sender, System.EventArgs e) { //Get user's check-out permission for a file try { IEdmVault7 vault2 = null; if (vault1 == null) { vault1 = new EdmVault5(); } vault2 = (IEdmVault7)vault1; if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } EdmStrLst5 pathList = default(EdmStrLst5); pathList = vault2.BrowseForFile(this.Handle.ToInt32(), (int)EdmBrowseFlag.EdmBws_ForOpen + (int)EdmBrowseFlag.EdmBws_PermitVaultFiles); if (pathList == null) return; IEdmFile5 file = default(IEdmFile5); IEdmFolder5 srcFolder = null; file = vault2.GetFileFromPath(pathList.GetNext(pathList.GetHeadPosition()), out srcFolder); if (srcFolder.HasRightsEx((int)EdmRightFlags.EdmRight_Lock, file.ID)) { Interaction.MsgBox("User can check out this file"); } else { Interaction.MsgBox("User does not have check-out permission"); } } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void Button5_Click(System.Object sender, System.EventArgs e) { //Verify SOLIDWORKS Enterprise PDM version is 5.3 or higher try { IEdmVault7 vault2 = null; if (vault1 == null) { vault1 = new EdmVault5(); } vault2 = (IEdmVault7)vault1; if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } vault2.VerifyVersion(5, 3); MessageBox.Show("SOLIDWORKS Enterprise PDM version is at least 5.3"); } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void Button6_Click(System.Object sender, System.EventArgs e) { //Get licenses try { IEdmVault11 vault2 = null; if (vault1 == null) { vault1 = new EdmVault5(); } vault2 = (IEdmVault11)vault1; if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } string msg = null; msg = "Installed licenses:" + Constants.vbLf; EdmLicense[] lics = null; lics = null; vault2.GetLicense(out lics); int idx = 0; idx = Information.LBound(lics); while ((idx <= Information.UBound(lics))) { msg = msg + "Type="; switch (lics[idx].meType) { case EdmLicenseType.EdmLic_Editor: msg = msg + "Editor"; break; case EdmLicenseType.EdmLic_Contributor: msg = msg + "Contributor"; break; case EdmLicenseType.EdmLic_Viewer: msg = msg + "Viewer"; break; case EdmLicenseType.EdmLic_Processor: msg = msg + "Processor"; break; default: msg = msg + Convert.ToString(lics[idx].meType); break; } msg = msg + " Users=" + Convert.ToString(lics[idx].mlUserCount) + Constants.vbLf; idx = idx + 1; } vault2.MsgBox(this.Handle.ToInt32(), msg); } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void Button7_Click(System.Object sender, System.EventArgs e) { //Add group, My Group try { IEdmVault11 vault2 = null; if (vault1 == null) { vault1 = new EdmVault5(); } vault2 = (IEdmVault11)vault1; if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } IEdmUserMgr7 userMgr = default(IEdmUserMgr7); userMgr = (IEdmUserMgr7)vault2.CreateUtility(EdmUtility.EdmUtil_UserMgr); IEdmUser7 admin = default(IEdmUser7); admin = (IEdmUser7)userMgr.GetUser("Admin"); EdmGroupData2[] groups = new EdmGroupData2[1]; groups[0].mbAutoAdd = 0; groups[0].mbsDescription = "A group created by the API"; groups[0].mbsName = "My Group"; groups[0].mlFlags = (int)EdmGroupDataFlags.Edmgdf_GetInterface; int[] members = new int[1]; members[0] = admin.ID; groups[0].moMembers = members; EdmSysPerm[] perms = new EdmSysPerm[1]; perms[0] = EdmSysPerm.EdmSysPerm_ModifyToolbox; groups[0].moSysPerms = perms; userMgr.AddGroups2(ref groups); string msg = null; msg = ""; int idx = 0; idx = Information.LBound(groups); while ((idx <= Information.UBound(groups))) { if (groups[idx].mhStatus != 0) { msg = msg + "Error creating group, '" + groups[idx].mbsName + "' - " + vault2.GetErrorMessage(groups[idx].mhStatus) + Constants.vbLf; } else { msg = msg + "Created group, '" + groups[idx].mbsName + "', successfully with ID, " + groups[idx].mlGroupID.ToString() + Constants.vbLf; } idx = idx + 1; } vault2.MsgBox(this.Handle.ToInt32(), msg); } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void Button9_Click(System.Object sender, System.EventArgs e) { //Add user, Temp try { IEdmVault11 vault2 = null; if (vault1 == null) { vault1 = new EdmVault5(); } vault2 = (IEdmVault11)vault1; if (!vault1.IsLoggedIn) { vault1.LoginAuto(VaultsComboBox.Text, this.Handle.ToInt32()); } IEdmUserMgr7 UsrMgr = (IEdmUserMgr7)vault2; EdmUserData2[] UserData = new EdmUserData2[1]; UserData[0].mbsCompleteName = "Temp"; UserData[0].mbsEmail = "Temp"; UserData[0].mbsInitials = "TJ"; UserData[0].mbsUserName = "******"; UserData[0].mlFlags = (int)EdmUserDataFlags.Edmudf_GetInterface; UserData[0].mlFlags += (int)EdmUserDataFlags.Edmudf_ForceAdd; EdmSysPerm[] perms = new EdmSysPerm[3]; perms[0] = EdmSysPerm.EdmSysPerm_EditUserMgr; perms[1] = EdmSysPerm.EdmSysPerm_EditReportQuery; perms[2] = EdmSysPerm.EdmSysPerm_MandatoryVersionComments; UserData[0].moSysPerms = perms; UsrMgr.AddUsers2(UserData); string msg = ""; foreach (EdmUserData2 usr in UserData) { if (usr.mhStatus == 0) { msg += "Created user, \"" + usr.mbsUserName + "\", successfully with ID, " + usr.mlUserID.ToString() + Constants.vbCrLf; } else { msg += "Error creating user, \"" + usr.mbsUserName + "\" - " + vault2.GetErrorMessage(usr.mhStatus) + Constants.vbCrLf; } } MessageBox.Show(msg); } catch (System.Runtime.InteropServices.COMException ex) { MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
void IEdmAddIn5.GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr) { string MenuName; bool test = false; //test = true; if (!test) { poInfo.mbsAddInName = "EpicorIntegration"; MenuName = "Epicor Integration"; } else { poInfo.mbsAddInName = "Epicor-Integration"; MenuName = "Debug"; } poInfo.mbsCompany = "Norco Industries"; poInfo.mbsDescription = "Epicor Integration Enterprise PDM Add-in"; poInfo.mlAddInVersion = (int)2015032600;//(int)AssemblyVersion; //Minimum Conisio version needed for .Net Add-Ins is 6.4 poInfo.mlRequiredVersionMajor = 6; poInfo.mlRequiredVersionMinor = 4; poCmdMgr.AddCmd(1, MenuName + "\\Part Master", (int)EdmMenuFlags.EdmMenu_OnlyFiles + (int)EdmMenuFlags.EdmMenu_MustHaveSelection + (int)EdmMenuFlags.EdmMenu_OnlySingleSelection, "", "Launches a dialog to create/update Item in Epicor", 0, 0); ; poCmdMgr.AddCmd(4, MenuName + "\\Add Revision", (int)EdmMenuFlags.EdmMenu_OnlyFiles + (int)EdmMenuFlags.EdmMenu_MustHaveSelection + (int)EdmMenuFlags.EdmMenu_OnlySingleSelection, "", "Launches a dialog to add revision to Item in Epicor", 0, 0); poCmdMgr.AddCmd(5, MenuName + "\\Operation Master", (int)EdmMenuFlags.EdmMenu_OnlyFiles + (int)EdmMenuFlags.EdmMenu_MustHaveSelection + (int)EdmMenuFlags.EdmMenu_OnlySingleSelection, "", "Launches a dialog to create/update OOM in Epicor", 0, 0); poCmdMgr.AddCmd(6, MenuName + "\\Bill Master", (int)EdmMenuFlags.EdmMenu_OnlyFiles + (int)EdmMenuFlags.EdmMenu_MustHaveSelection + (int)EdmMenuFlags.EdmMenu_OnlySingleSelection, "", "Launches a dialog to create/update BOM in Epicor", 0, 0); poCmdMgr.AddCmd(7, MenuName + "\\Check In/Approve Item", (int)EdmMenuFlags.EdmMenu_OnlyFiles + (int)EdmMenuFlags.EdmMenu_MustHaveSelection + (int)EdmMenuFlags.EdmMenu_OnlySingleSelection, "", "Launches a dialog to Approve and Check In Item to Epicor", 0, 0); poCmdMgr.AddCmd(-2, MenuName + "\\Calculate Assembly Minutes", (int)EdmMenuFlags.EdmMenu_OnlyFiles + (int)EdmMenuFlags.EdmMenu_MustHaveSelection + (int)EdmMenuFlags.EdmMenu_OnlySingleSelection, "", "Launches a dialog to Approve and Check In Item to Epicor", 0, 0); poCmdMgr.AddCmd(3, MenuName + "\\Check Out Item", (int)EdmMenuFlags.EdmMenu_OnlyFiles + (int)EdmMenuFlags.EdmMenu_MustHaveSelection + (int)EdmMenuFlags.EdmMenu_OnlySingleSelection, "", "Checks out Item in Epicor (Not Enterprise PDM)", 0, 0); poCmdMgr.AddCmd(0, MenuName + "\\RevCompare", (int)EdmMenuFlags.EdmMenu_Nothing + (int)EdmMenuFlags.EdmMenu_OnlySingleSelection, "", "Launches a dialog to compare previous revisions to the current SolidWorks bill", 0, 0); poCmdMgr.AddCmd(-1, MenuName + "\\Add-in Configuration", (int)EdmMenuFlags.EdmMenu_Nothing, "", "Launches a dialog to configure Epicor Integration Add-in", 0, 0); poCmdMgr.AddCmd(-10, MenuName + "\\Update Properties from Epicor", (int)EdmMenuFlags.EdmMenu_OnlyFiles + (int)EdmMenuFlags.EdmMenu_MustHaveSelection + (int)EdmMenuFlags.EdmMenu_OnlySingleSelection, "", "Launches a dialog to update file properties from current Epicor values", 0, 0); poCmdMgr.AddCmd(-100, MenuName + "\\Templates", (int)EdmMenuFlags.EdmMenu_Nothing, "", "Launches a dialog to Add/Edit/Update Templates", 0, 0); //poCmdMgr.AddCmd(-101, MenuName + "\\Search", (int)EdmMenuFlags.EdmMenu_Nothing, "", "Temp", 0, 0); poCmdMgr.AddCmd(2, MenuName + "\\Add Item,OOM & BOM", (int)EdmMenuFlags.EdmMenu_OnlyFiles + (int)EdmMenuFlags.EdmMenu_MustHaveSelection + (int)EdmMenuFlags.EdmMenu_OnlySingleSelection, "", "Launches a dialog to add an Item, a revision, an OOM and BOM in Epicor", 0, 0); poCmdMgr.AddHook(EdmCmdType.EdmCmd_Menu, null); Bill = new List<BillItem>(); }