コード例 #1
0
ファイル: EPDM.cs プロジェクト: GitHubVents/AirVentsCad
        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;
            }
        }
コード例 #2
0
            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;
                }
            }