void Getbom(int bomId, string filePath, string bomConfiguration, EdmBomFlag bomFlag, out Exception exception) { exception = null; try { IEdmFolder5 oFolder; CheckPdmVault(); EdmFile7 = (IEdmFile7) _edmVault5.GetFileFromPath(filePath, out oFolder); var bomView = EdmFile7.GetComputedBOM(Convert.ToInt32(bomId), Convert.ToInt32(-1), bomConfiguration, (int) bomFlag); if (bomView == null) return; Array bomRows; Array bomColumns; bomView.GetRows(out bomRows); bomView.GetColumns(out bomColumns); var bomTable = new DataTable(); foreach (EdmBomColumn bomColumn in bomColumns) { bomTable.Columns.Add(new DataColumn {ColumnName = bomColumn.mbsCaption}); } //bomTable.Columns.Add(new DataColumn { ColumnName = "Путь" }); bomTable.Columns.Add(new DataColumn {ColumnName = "Уровень"}); bomTable.Columns.Add(new DataColumn {ColumnName = "КонфГлавнойСборки"}); bomTable.Columns.Add(new DataColumn { ColumnName = "ТипОбъекта" }); bomTable.Columns.Add(new DataColumn { ColumnName = "GetPathName" }); for (var i = 0; i < bomRows.Length; i++) { var cell = (IEdmBomCell) bomRows.GetValue(i); bomTable.Rows.Add(); for (var j = 0; j < bomColumns.Length; j++) { var column = (EdmBomColumn) bomColumns.GetValue(j); object value; object computedValue; string config; bool readOnly; cell.GetVar(column.mlVariableID, column.meType, out value, out computedValue, out config, out readOnly); if (value != null) { bomTable.Rows[i][j] = value; } else { bomTable.Rows[i][j] = null; } bomTable.Rows[i][j + 1] = cell.GetTreeLevel(); bomTable.Rows[i][j + 2] = bomConfiguration; bomTable.Rows[i][j + 3] = config; bomTable.Rows[i][j + 4] = cell.GetPathName(); } } _bomList = BomTableToBomList(bomTable); exception = null; } catch (Exception ex) { exception = ex; } }
void Getbom(int bomId, string filePath, string bomConfiguration, EdmBomFlag bomFlag, out Exception exception) { exception = null; try { IEdmFolder5 oFolder; CheckPdmVault(); EdmFile7 = (IEdmFile7)_edmVault5.GetFileFromPath(filePath, out oFolder); var bomView = EdmFile7.GetComputedBOM(Convert.ToInt32(bomId), Convert.ToInt32(-1), bomConfiguration, (int)bomFlag); if (bomView == null) { return; } Array bomRows; Array bomColumns; bomView.GetRows(out bomRows); bomView.GetColumns(out bomColumns); var bomTable = new DataTable(); foreach (EdmBomColumn bomColumn in bomColumns) { bomTable.Columns.Add(new DataColumn { ColumnName = bomColumn.mbsCaption }); } //bomTable.Columns.Add(new DataColumn { ColumnName = "Путь" }); bomTable.Columns.Add(new DataColumn { ColumnName = "Уровень" }); bomTable.Columns.Add(new DataColumn { ColumnName = "КонфГлавнойСборки" }); bomTable.Columns.Add(new DataColumn { ColumnName = "ТипОбъекта" }); bomTable.Columns.Add(new DataColumn { ColumnName = "GetPathName" }); for (var i = 0; i < bomRows.Length; i++) { var cell = (IEdmBomCell)bomRows.GetValue(i); bomTable.Rows.Add(); for (var j = 0; j < bomColumns.Length; j++) { var column = (EdmBomColumn)bomColumns.GetValue(j); object value; object computedValue; string config; bool readOnly; cell.GetVar(column.mlVariableID, column.meType, out value, out computedValue, out config, out readOnly); if (value != null) { bomTable.Rows[i][j] = value; } else { bomTable.Rows[i][j] = null; } bomTable.Rows[i][j + 1] = cell.GetTreeLevel(); bomTable.Rows[i][j + 2] = bomConfiguration; bomTable.Rows[i][j + 3] = config; bomTable.Rows[i][j + 4] = cell.GetPathName(); } } _bomList = BomTableToBomList(bomTable); exception = null; } catch (Exception ex) { exception = ex; } }