public AAFileRef[] SearchForFileRefs(string variableValue) { // return value var results = new List <AAFileRef>(); _search.SetToken(EdmSearchToken.Edmstok_FindFiles, true); object oName = "Document Number"; object oValue = variableValue; _search.AddVariable(ref oName, ref oValue); IEdmSearchResult5 res = _search.GetFirstResult(); while (res != null) { results.Add(new AAFileRef { FileId = res.ID, Path = res.Path, ParentFolderId = res.ParentFolderID }); res = _search.GetNextResult(); } return(results.ToArray()); }
/// <summary> /// Search document by name. /// </summary> /// <param name="segmentName"></param> /// <returns></returns> public IEnumerable <DataModel> SearchDoc(string segmentName) { this.PDMInitialize(); List <DataModel> searchResult = new List <DataModel>(); try { var Search = (edmVault5 as IEdmVault7).CreateUtility(EdmUtility.EdmUtil_Search); Search.FileName = "%" + segmentName + "%"; int count = 0; IEdmSearchResult5 Result = Search.GetFirstResult(); while (Result != null) { searchResult.Add(new DataModel { FileName = Result.Name, Id = Result.ID, FolderId = Result.ParentFolderID, Path = Result.Path }); Result = Search.GetNextResult(); count++; } Logger.ToLog("По запросу " + segmentName + " найдено " + count); Logger.ToLog("\n"); } catch (Exception ex) { Logger.ToLog("По запросу " + segmentName + " не найдено ни одного файла\n Ошибка: " + ex); } return(searchResult); }
/// <summary> /// Search document by name and returns colection the FileModelPdm . /// </summary> /// <param name="segmentName"></param> /// <returns></returns> public IEnumerable <FileModelPdm> SearchDoc(string segmentName) { List <FileModelPdm> searchResult = new List <FileModelPdm>(); try { IEdmSearch5 Search = default(IEdmSearch5); Search = (IEdmSearch5)(PdmExemplar as IEdmVault7).CreateUtility(EdmUtility.EdmUtil_Search); Search.FileName = segmentName; //Search.FindFiles = true; //Search.FindFolders = false; //Search.SetToken(EdmSearchToken.Edmstok_FindFolders, false); int count = 0; IEdmSearchResult5 Result = Search.GetFirstResult(); while (Result != null) { L1: if (Result.Name.ToUpper().Contains(".SLDPRT") || Result.Name.ToUpper().Contains(".SLDASM")) { searchResult.Add(new FileModelPdm { FileName = Result.Name, IDPdm = Result.ID, FolderId = Result.ParentFolderID, Path = Result.Path, FolderPath = Path.GetDirectoryName(Result.Path), CurrentVersion = Result.Version }); count++; } Result = Search.GetNextResult(); if (Result != null) { goto L1; } } MessageObserver.Instance.SetMessage("Поиск успешно завершон, найдено объектов " + searchResult.Count + " по запросу " + segmentName); } catch (Exception exception) { MessageObserver.Instance.SetMessage("Поиск по запросу " + segmentName + " завершон c ошибкой: " + exception.ToString() + " в связи с чем возвращена пустая колекция FileModelPdm"); MessageObserver.Instance.SetMessage("Поиск по запросу " + segmentName + " завершон c ошибкой: " + exception.ToString() + " в связи с чем возвращена пустая колекция FileModelPdm"); } return(searchResult); }
/// <summary> /// 【8】根据文件名称搜索路径,返回全部路径的集合,如果未搜索到返回null /// </summary> /// <param name="fileName">文件名称(不包含路径)</param> public static List <string> SearchPart(string fileName) { IEdmVault5 vault1 = new EdmVault5(); vault1.Login(LogName, PWD, VaultName); IEdmVault7 vault2 = null; vault2 = (IEdmVault7)vault1; IEdmSearch5 Search = (IEdmSearch5)vault2.CreateUtility(EdmUtility.EdmUtil_Search); Search.FileName = "%" + fileName + "%"; //模糊搜索 //Search.FileName = fileName;//命名搜索 IEdmSearchResult5 Result = Search.GetFirstResult(); //搜索第一个 List <string> lst = new List <string>(); //string filePath = string.Empty; while (Result != null) { lst.Add(Result.Path); Result = Search.GetNextResult();//搜索下一个 } return(lst); }
private void SearchFiles(IEdmVault5 vault, object Val1) { try { IEdmSearch5 search = null; IEdmFolder5 folder = null; folder = vault.GetFolderFromPath(@"C:\CDI Controlled Documents\drawings\part drawings- controlled"); search = vault.CreateSearch(); search.FileName = "%.%d%w%"; search.StartFolderID = folder.ID; object Var1 = "Part Numbers"; object State = "Approved for Production"; search.AddVariable(Var1, Val1); search.set_State(State); search.FindHistoricStates = false; search.Recursive = true; String message = string.Empty; List <IEdmSearchResult5> results = new List <IEdmSearchResult5>(); IEdmSearchResult5 result = search.GetFirstResult(); while (result != null) { results.Add(result); result = search.GetNextResult(); } results = results.Distinct(new SearchResultComparer()).ToList(); if (results.Count < 1) { search.Clear(); search.FileName = Val1 + ".%d%w%"; search.StartFolderID = folder.ID; State = "Approved for Production"; search.set_State(State); search.FindHistoricStates = false; search.Recursive = true; result = search.GetFirstResult(); while (result != null) { results.Add(result); result = search.GetNextResult(); } results = results.Distinct(new SearchResultComparer()).ToList(); } foreach (IEdmSearchResult5 item in results) { //get latest version IEdmFile5 file = null; IEdmFolder5 retFolder = default(IEdmFolder5); file = vault.GetFileFromPath(item.Path, out retFolder); file.GetFileCopy(0); //System.Diagnostics.Process.Start(item.Path, @"C:\Program Files\SOLIDWORKS Corp\eDrawings\eDrawings.exe"); //OpenEdwg(item.Path); OpenSaveSldrwPdf(item.Path); message = message + "Filename: " + item.Name + ", Rev: " + file.CurrentRevision + "; \n"; } MessageBox.Show(message); } catch (Exception ex) { MessageBox.Show(ex.Message); } }