public CsvEditManager(CsvForm csvForm) { m_CsvForm = csvForm; m_UndoStack = new Stack <IUndoRedo>(); m_RedoStack = new Stack <IUndoRedo>(); }
/// <summary> /// 加载csv文件 /// </summary> /// <param name="path">文件完整路径</param> private void LoadFile(string path) { CsvForm newCsvForm = new CsvForm(path); if (newCsvForm == null) { return; } newCsvForm.TopLevel = false; newCsvForm.Visible = true; newCsvForm.FormBorderStyle = FormBorderStyle.None; newCsvForm.Dock = DockStyle.Fill; newCsvForm.Show(); m_SplitContainer.Panel1.Controls.Add(newCsvForm); SetCsvForm(newCsvForm); }
private void SetCsvForm(CsvForm csvForm) { m_CsvForm = csvForm; UpdateFormText(); // 所有Csv窗口都被关闭 if (m_CsvForm == null) { if (m_GotoForm != null && !m_GotoForm.IsDisposed) { m_GotoForm.Close(); } if (m_SearchForm != null && !m_SearchForm.IsDisposed) { m_SearchForm.Close(); } } }
private void SubForm_Load(object sender, EventArgs e) { string Pam_id = Name; switch (Pam_id) { case "Role": RoleUcForm _RoleForm = new RoleUcForm(this); _RoleForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_RoleForm); break; case "Usr": UsrUcForm _UsrForm = new UsrUcForm(this); _UsrForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_UsrForm); break; case "Department": DeptForm _deptForm = new DeptForm(this); _deptForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_deptForm); break; case "Employee": EmployeeForm _EmployeeForm = new EmployeeForm(this); _EmployeeForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_EmployeeForm); break; case "Csv": CsvForm _csvForm = new CsvForm(this); _csvForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_csvForm); break; case "Currency": CurrencyForm _currencyForm = new CurrencyForm(this); _currencyForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_currencyForm); break; case "SalesType": SalesTypeForm _salesTypeForm = new SalesTypeForm(this); _salesTypeForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_salesTypeForm); break; case "BusinessType": BusinessTypeForm _businessTypeForm = new BusinessTypeForm(this); _businessTypeForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_businessTypeForm); break; case "ItemUt": ItemUtForm _itemUtForm = new ItemUtForm(this); _itemUtForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_itemUtForm); break; case "ItemKind": ItemKindForm _itemKindForm = new ItemKindForm(this); _itemKindForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_itemKindForm); break; case "Warehouse": WarehouseForm _warehouseForm = new WarehouseForm(this); _warehouseForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_warehouseForm); break; case "ProductArea": ProductAreaForm _productAreaForm = new ProductAreaForm(this); _productAreaForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_productAreaForm); break; case "Item": ItemForm _itemForm = new ItemForm(this); _itemForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_itemForm); break; case "RequestCollectionOrder": RequestCollectionOrderForm _OrderForm = new RequestCollectionOrderForm(this); _OrderForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_OrderForm); break; case "PlanningOrderInfoInput": PlanningOrderInfoInputForm _FrorecastForm = new PlanningOrderInfoInputForm(this); _FrorecastForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_FrorecastForm); break; case "TaskNotifyOrder": TaskNotifyOrderForm _TaskNotifyOrderForm = new TaskNotifyOrderForm(this); _TaskNotifyOrderForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_TaskNotifyOrderForm); break; case "ShippingInfoConfirmOrder": ShippingInfoConfirmOrderForm _ShippingInfoConfirmOrderForm = new ShippingInfoConfirmOrderForm(this); _ShippingInfoConfirmOrderForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_ShippingInfoConfirmOrderForm); break; case "PgmTransferWarningSetting": PgmTransferWarningSettingForm _PgmTransferWarningSettingForm = new PgmTransferWarningSettingForm(this); _PgmTransferWarningSettingForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_PgmTransferWarningSettingForm); break; case "Project": ProjectForm _ProjectForm = new ProjectForm(this); _ProjectForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_ProjectForm); break; case "ProjectStage": ProjectStageForm _ProjectStageForm = new ProjectStageForm(this); _ProjectStageForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_ProjectStageForm); break; case "ShippingAddress": ShippingAddressForm _ShippingAddressForm = new ShippingAddressForm(this); _ShippingAddressForm.Dock = DockStyle.Fill; this.PalView.Controls.Add(_ShippingAddressForm); break; default: break; } }
private void Merge(DataTable originalCsv, string[][] changedCsv) { CsvForm csvForm = MainForm.Instance.GetCsvForm(); csvForm.BeforeChangeCellValue(); m_ManyThingList = new List <CsvEditManager.IUndoRedo>(); m_CellChangeList = new List <CsvEditManager.CellValueChangeItem>(); m_MessageList = new List <DataGridViewConsoleForm.Message>(); for (int iRowInChangedCSV = 0; iRowInChangedCSV < changedCsv.Length; iRowInChangedCSV++) { string[] changedDataInRow = changedCsv[iRowInChangedCSV]; string key = changedDataInRow[0]; changedDataInRow[0] = key.Trim(); // 跳过空key if (string.IsNullOrWhiteSpace(key)) { continue; } // 为什么要把Trim的结果赋值回changedDataInRow[0]? // 因为changedCSV的key中有可能出现空格或换行符,工具生成的CSV文件中的新增和修改的部分都是直接用changedCSV里的内容,所以需要把changedCSV里的keyTrim一下 if (key.Trim() == "String ID") { // 如果key是String ID,则是表头,直接无视 continue; } bool existed = false; for (int iRowInOriginalCSV = 0; iRowInOriginalCSV < originalCsv.Rows.Count; iRowInOriginalCSV++) { DataRow originalDataInRow = originalCsv.Rows[iRowInOriginalCSV]; string originalKey = (string)originalDataInRow[0]; if (originalKey.Trim() == key.Trim()) { // key前后有空格 if (key != key.Trim()) { DataGridViewConsoleForm.Message message = new DataGridViewConsoleForm.Message(); message.Level = DataGridViewConsoleForm.Level.Warning; message.Column = 0; message.Row = iRowInOriginalCSV; message.Caption = "Key的头尾有空白字符"; message.Text = string.Format("我帮你去除了空格\n去空格前的Key:({0})", key); m_MessageList.Add(message); } existed = true; CopyCsvRowToDataRow(iRowInOriginalCSV, changedDataInRow, originalDataInRow); break; } } if (!existed) { // 添加新行 DataRow newRow = originalCsv.NewRow(); for (int iCell = 0; iCell < changedDataInRow.Length; iCell++) { newRow[iCell] = ""; } CsvEditManager.DoAddRowEvent doAddRowEvent = new CsvEditManager.DoAddRowEvent { Row = originalCsv.Rows.Count }; m_ManyThingList.Add(doAddRowEvent); CopyCsvRowToDataRow(originalCsv.Rows.Count, changedDataInRow, newRow); originalCsv.Rows.Add(newRow); } } CsvEditManager.DoCellsValueChangeEvent doCellsValueChangeEvent = new CsvEditManager.DoCellsValueChangeEvent { ChangeList = m_CellChangeList }; m_ManyThingList.Add(doCellsValueChangeEvent); csvForm.EditManager.DidManyThings(m_ManyThingList); csvForm.AfterChangeCellValue(); csvForm.UpdateGridHeader(); DataGridViewConsoleForm.ShowForm(m_MessageList, csvForm.GetDataGridView(), "本地化合并"); }