예제 #1
0
        private void BtnBuild_Click(object sender, RoutedEventArgs e)
        {
            var filename = TxbPdmFile.Text;

            if (string.IsNullOrEmpty(filename))
            {
                ShowMessage("请选择PDM文件");
                return;
            }

            string[] paths = filename.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            var      file  = paths.FirstOrDefault(x =>
            {
                var extension = Path.GetExtension(x);
                return(extension != null && (File.Exists(x) && extension.ToLower() == ".pdm"));
            });

            if (file != null)
            {
                var name = string.IsNullOrEmpty(TxbOutputName.Text)
                    ? $"PDM_{DateTime.Now.ToString("yyyyMMddhhmmss")}"
                    : TxbOutputName.Text;

                IReader reader = new PdmReader();
                GeneralChm(reader, file, name);
            }
        }
예제 #2
0
        //加载模型节点
        private void LoadModel(TreeNode fileNode)
        {
            string    fileName = fileNode.Tag.ToString();
            PdmReader reader   = new PdmReader(fileName);
            PDModel   m        = reader.BuildModel();

            TreeNode node = new TreeNode(m.Name, 2, 2);

            node.ToolTipText      = FormatNodeToolTip(m);
            node.Tag              = m;
            node.ContextMenuStrip = cmsModel;

            LoadPackages(m.PackageList, node);

            if (m.TableList.Count > 0)
            {
                TreeNode tablesNode = new TreeNode("Tables", 4, 4);
                tablesNode.Tag = m.TableList;
                LoadTables(m.TableList, tablesNode);
                node.Nodes.Add(tablesNode);
            }

            fileNode.Nodes.Add(node);
            node.Expand();
        }
예제 #3
0
        protected IList <PdmTable> GetPdmTables()
        {
            PdmReader reader = new PdmReader(FileName);

            reader.InitData();
            IList <PdmTable> pdmTables = reader.Tables;

            DbType = reader.GetDbType().ToString();
            return(pdmTables);
        }
예제 #4
0
 private void btConnection_Click(object sender, EventArgs e)
 {
     if (DbComStr == "PDM")
     {
         PdmReader reader = new PdmReader();
         models = reader.ReadFromFile(txtPdm.Text);
         lbTableList.DisplayMember = "Name";
         lbTableList.ValueMember   = "Code";
         lbTableList.DataSource    = models.Tables;
         //注意,view暂时没有放出来
     }
     else
     {
         #region
         string service  = txtService.Text;
         string userName = txtUserName.Text;
         string pwd      = txtPwd.Text;
         if (string.IsNullOrEmpty(service) || string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(pwd))
         {
             MessageBox.Show("请输入必要的信息");
             return;
         }
         ArrayList dbNameList = new ArrayList();
         //dbNameList.Add("请选择");
         DataTable dbNameTable = new DataTable();
         try
         {
             string        strConnection = $"server={service};database=master; uid={userName};pwd={pwd};Enlist=true";
             SqlConnection conn          = new SqlConnection(strConnection);
             conn.Open();
             SqlDataAdapter adapter = new SqlDataAdapter("select name from master..sysdatabases", conn);
             lock (adapter)
             {
                 adapter.Fill(dbNameTable);
             }
             foreach (DataRow row in dbNameTable.Rows)
             {
                 dbNameList.Add(row["name"]);
             }
             conn.Close();
             cbDBList.DisplayMember = "name";
             cbDBList.ValueMember   = "name";
             cbDBList.DataSource    = dbNameList;
             MessageBox.Show("连接成功");
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
         #endregion
     }
 }
예제 #5
0
        private void ReadPdmFile(string filePath)
        {
            var pdmReader = new PdmReader(filePath);

            pdmReader.InitData();

            TreeModelOperate.Context.Init(pdmReader.Models);
            XmlNodeOperate.Init(pdmReader.Tables);

            TwLeaf.ItemsSource = TreeModelOperate.Context.TreeModels;
            var tableInfos = XmlNodeOperate.Context.TableInfos;

            if (tableInfos != null && tableInfos.Count > 0)
            {
                var firstOrDefault = tableInfos.FirstOrDefault();
                if (firstOrDefault != null)
                {
                    BindColumnDataGrid(firstOrDefault.Id);
                }
            }
        }