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; } }
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); }
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); } } }
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(); }
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"] = "时间"; } }
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); }