private void addButton_Click(object sender, RoutedEventArgs e)
        {
            DataScriptMapDAL.delAll(FID);

            DataScriptRuleDAL.updateBusinessPK(FID, columnConnection.BusinessPK);

            foreach (var key in columnConnection.ColumnMap.Keys)
            {
                DataScriptMap map = new DataScriptMap();
                map.FID = Guid.NewGuid().ToString().Replace("-", "");
                map.MdsImpDataScriptRuleID = FID;
                map.TableColName           = key;
                map.FileColName            = columnConnection.ColumnMap[key];
                map.TransferType           = "02";
                map.LastUpdateIp           = "127.0.0.1";
                map.LastUpdatedBy          = MainWindow.UserID;
                map.CreatedBy = MainWindow.UserID;

                // 如果有算式,保存
                if (columnConnection.ScriptMap.ContainsKey(key))
                {
                    map.TransferScript = columnConnection.ScriptMap[key];
                }

                DataScriptMapDAL.Insert(map);
            }

            MessageBox.Show("对应关系已经保存!");

            MainWindow window = App.Current.MainWindow as MainWindow;

            window.StartPage(new DataScriptList());
        }
        private void Comments()
        {
            foreach (DataColumn column in sourceDt.Columns)
            {
                if (structures.FirstOrDefault(it => it.Comments == column.ColumnName) == null)
                {
                    var st = structures.FirstOrDefault(it => string.IsNullOrEmpty(it.Comments));
                    TableDAL.Comment(dataScript.TableName, st.ColumnName, column.ColumnName);
                    st.Comments = column.ColumnName;

                    if (update.IsChecked.Value)
                    {
                        DataScriptMap map = new DataScriptMap();
                        map.FID = Guid.NewGuid().ToString().Replace("-", "");
                        map.MdsImpDataScriptRuleID = dataScript.FID;
                        map.TableColName           = st.ColumnName;
                        map.FileColName            = column.ColumnName;
                        map.TransferType           = "02";
                        map.CreatedBy     = MainWindow.UserID;
                        map.LastUpdatedBy = MainWindow.UserID;
                        map.LastUpdateIp  = "127.0.0.1";
                        DataScriptMapDAL.Insert(map);
                    }
                }
            }
        }
        private void checkStruct(DataTable dt, DataScript script)
        {
            f**k.Visibility   = System.Windows.Visibility.Hidden;
            update.Visibility = System.Windows.Visibility.Hidden;

            structures = TableDAL.getTableStructure(script.TableName);
            List <string> difference = new List <string>();

            sourceDt = dt;

            string error = "";

            bool havePk = false;

            foreach (DataColumn column in dt.Columns)
            {
                if (structures.FirstOrDefault(it => it.Comments == column.ColumnName) == null)
                {
                    difference.Add(column.ColumnName);
                    error += column.ColumnName + "\r\n";
                }

                if (column.ColumnName == System.Configuration.ConfigurationManager.AppSettings["pk"])
                {
                    havePk = true;
                }
            }

            if (!havePk)
            {
                error += string.Format("数据文件中缺少默认主键列({0}),请重新选择正确数据文件!\r\n", ConfigurationManager.AppSettings["pk"]);
            }

            var dsms = DataScriptMapDAL.getList(script.FID);

            if (difference.Count * 10 / dsms.Count >= 6)
            {
                string msg = "您选择的数据文件与解析器严重不匹配,请重新选择数据文件!\r\n差异字段:\r\n";
                msg += error;

                MessageBox.Show(msg);
                f**k.Visibility   = System.Windows.Visibility.Visible;
                update.Visibility = System.Windows.Visibility.Visible;

                btNext.Visibility = System.Windows.Visibility.Collapsed;
            }
            else if (difference.Count > 0)
            {
                string msg = "您选择的数据文件与解析器不匹配,差异字段:\r\n";
                msg += error;

                MessageBox.Show(msg);

                f**k.Visibility   = System.Windows.Visibility.Visible;
                update.Visibility = System.Windows.Visibility.Visible;

                btNext.Visibility = System.Windows.Visibility.Collapsed;
            }
        }
Beispiel #4
0
        private Dictionary <string, string> getColumnMap()
        {
            Dictionary <string, string> result = new Dictionary <string, string>();

            var list = DataScriptMapDAL.getList(this.dataScriptRule.MdsImpDataScriptID);

            foreach (var item in list)
            {
                result[item.TableColName] = item.FileColName;
            }

            return(result);
        }
Beispiel #5
0
        private void updateTableStructure(string tableName)
        {
            DataTable dt = GetDataTable(txtTemplageFile.Text);
            // 增加对应关系

            var structures = TableDAL.getTableStructure(tableName);

            int max = getMaxColumnIndex(structures);

            for (int i = 0; i < dt.Columns.Count; i++)
            {
                DataColumn column = dt.Columns[i];
                if (structures.FirstOrDefault(it => it.Comments == column.ColumnName) == null)
                {
                    max++;
                    double d = 0.0;
                    if (double.TryParse(dt.Rows[0][column].ToString(), out d))
                    {
                        TableDAL.AddColumn(tableName, "COLUMN" + max.ToString(), "number");
                    }
                    else
                    {
                        TableDAL.AddColumn(tableName, "COLUMN" + max.ToString(), "string");
                    }
                    TableDAL.Comment(tableName, "COLUMN" + max.ToString(), column.ColumnName);
                }
            }

            structures = TableDAL.getTableStructure(tableName);

            for (int i = 0; i < dt.Columns.Count; i++)
            {
                DataColumn column = dt.Columns[i];

                var structure = structures.FirstOrDefault(it => it.Comments == column.ColumnName);
                if (structure != null)
                {
                    DataScriptMap map = new DataScriptMap();
                    map.FID = Guid.NewGuid().ToString().Replace("-", "");
                    map.MdsImpDataScriptRuleID = dScript.FID;
                    map.TableColName           = structure.ColumnName;
                    map.FileColName            = structure.Comments;
                    map.TransferType           = "02";
                    map.CreatedBy     = MainWindow.UserID;
                    map.LastUpdatedBy = MainWindow.UserID;
                    map.LastUpdateIp  = "127.0.0.1";

                    DataScriptMapDAL.Insert(map);
                }
            }
        }
Beispiel #6
0
        private void delButton_Click(object sender, RoutedEventArgs e)
        {
            string error = "";

            foreach (DataScript item in dataGrid.SelectedItems)
            {
                if (item.CreatedBy != MainWindow.UserID)
                {
                    error += string.Format("解析器[{0}],是别人创建的,无法删除\r\n", item.DisplayName);
                    continue;
                }
                if (item.Release == "02")
                {
                    error += string.Format("解析器[{0}],已发布,无法删除\r\n", item.DisplayName);
                    continue;
                }

                List <string> allMaps    = DataScriptDAL.getMapColName(item.TableName);
                var           currMaps   = DataScriptMapDAL.getList(item.FID);
                var           struceures = TableDAL.getTableStructure(item.TableName);

                foreach (var cm in currMaps)
                {
                    if (allMaps.Count(it => it == cm.TableColName) > 1)
                    {
                        // 多个并用
                        continue;
                    }
                    var s = struceures.FirstOrDefault(it => it.ColumnName == cm.TableColName);
                    if (s != null && s.IsKey)
                    {
                        // 主键不能删
                        continue;
                    }
                    TableDAL.dropColumn(item.TableName, cm.TableColName);
                }

                DataScriptDAL.Delete(item.FID);
                DataScriptRuleDAL.Delete(item.FID);
                DataScriptMapDAL.delAll(item.FID);
            }

            if (!string.IsNullOrEmpty(error))
            {
                MessageBox.Show(error);
            }

            dataGrid.DataContext = DataScriptDAL.getList();
        }
Beispiel #7
0
        private void showLine()
        {
            List <DataScriptMap> maps = DataScriptMapDAL.getList(FID);

            foreach (var map in maps)
            {
                if (this.drawLine(map.FileColName, map.TableColName))
                {
                    // 如果连线成功,才记录这个对应关系,不然就是文件与脚本不匹配
                    this.ColumnMap[map.TableColName] = map.FileColName;
                    this.ScriptMap[map.TableColName] = map.TransferScript;
                }
            }

            if (this.drawLine("时间", "COLUMN0"))
            {
                this.ColumnMap["COLUMN0"] = "时间";
            }
        }
Beispiel #8
0
        private void insertTableStructure(string tableName)
        {
            DataTable dt = GetDataTable(txtTemplageFile.Text);

            if (scripts.Count(it => it.TableName == tableName) == 0)
            {
                // 创建表
                TableDAL.CreateTable(tableName, dt);
                // 添加主键
                //TableDAL.SetPrimary(txtTableName.Text, "ID");
                // 添加扩展列
                TableDAL.AddAttribute(tableName, 20);

                int count = ObjtableInfoDAL.Count(tableName.ToUpper());
                if (count == 0)
                {
                    ObjtableInfo oinfo = new ObjtableInfo();
                    oinfo.FID             = Guid.NewGuid().ToString().Replace("-", "");
                    oinfo.CreatedBy       = MainWindow.UserID;
                    oinfo.LastUpdatedBy   = MainWindow.UserID;
                    oinfo.ObjectTableCode = tableName.ToUpper();
                    oinfo.ObjectTableName = tableName.ToUpper();
                    oinfo.Status          = "02";
                    oinfo.Version         = 1;
                    oinfo.LastUpdateIp    = "127.0.0.1";
                    oinfo.LastUpdateDate  = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                    oinfo.CreationDate    = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                    ObjtableInfoDAL.Insert(oinfo);
                }
            }
            else
            {
                // 追加表结构
                TableDAL.CreateTable(tableName, dt);
            }

            DataScriptMapDAL.AutoScriptMap(FID, dt, tableName, MainWindow.UserID);
        }
        private void btnNext_Click(object sender, RoutedEventArgs e)
        {
            ImportRun mapModify = new ImportRun();

            mapModify.DataScript     = this.DataScript;
            mapModify.DataScriptRule = this.DataScriptRule;
            mapModify.ColumnMap      = columnConnection.ColumnMap;
            mapModify.ScriptMap      = columnConnection.ScriptMap;
            mapModify.sourceFile     = sourceFile;
            mapModify.DataScriptRule.DesBusinessPk = columnConnection.BusinessPK;

            if (!mapModify.ColumnMap.ContainsKey("COLUMN0"))
            {
                MessageBox.Show("您需要指定时间列的关联关系,才可以导入数据!");
                return;
            }

            foreach (string key in mapModify.ScriptMap.Keys)
            {
                string script = mapModify.ScriptMap[key].Trim();
                if (!string.IsNullOrEmpty(script))
                {
                    DataScriptMapDAL.SaveScriptFile(key, script);
                }
            }

            // 保存对应关系
            if (DataScriptInfo.saveScript || true)
            {
                DataScriptMapDAL.delAll(FID);

                DataScriptRuleDAL.updateBusinessPK(FID, columnConnection.BusinessPK);

                foreach (var key in columnConnection.ColumnMap.Keys)
                {
                    DataScriptMap map = new DataScriptMap();
                    map.FID = Guid.NewGuid().ToString().Replace("-", "");
                    map.MdsImpDataScriptRuleID = FID;
                    map.TableColName           = key;
                    map.FileColName            = columnConnection.ColumnMap[key];
                    map.TransferType           = "02";
                    map.CreatedBy     = MainWindow.UserID;
                    map.LastUpdatedBy = MainWindow.UserID;
                    map.LastUpdateIp  = "127.0.0.1";

                    // 如果有算式,保存
                    if (columnConnection.ScriptMap.ContainsKey(key))
                    {
                        map.TransferScript = columnConnection.ScriptMap[key];
                    }

                    DataScriptMapDAL.Insert(map);
                }
                //MessageBox.Show("对应关系已经保存!");
            }

            ImportStack.Push(this);

            MainWindow window = App.Current.MainWindow as MainWindow;

            window.StartPage(mapModify);
        }