Exemple #1
0
    public CsvEditManager(CsvForm csvForm)
    {
        m_CsvForm = csvForm;

        m_UndoStack = new Stack <IUndoRedo>();
        m_RedoStack = new Stack <IUndoRedo>();
    }
Exemple #2
0
    /// <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);
    }
Exemple #3
0
    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();
            }
        }
    }
Exemple #4
0
        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;
            }
        }
Exemple #5
0
    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(), "本地化合并");
    }