private void AddDynamicColumn(ColumnConvertArgs args, DynamicColumnType type)
        {
            var order = _views.MainForm.datasetMain.DynamicColumns.Count(x => x.RowState != DataRowState.Deleted) + 1;

            _views.MainForm.adapterDynamicColumns.Insert(args.ColumnInfo.Name, (int)type, order, String.Empty);
            _views.MainForm.adapterDynamicColumns.Fill(_views.MainForm.datasetMain.DynamicColumns);

            var newRow = _views.MainForm.datasetMain.DynamicColumns.FirstOrDefault(x => x.Title == args.ColumnInfo.Name);

            if (newRow != null)
            {
                args.ColumnInfo.DynamicColumnID = newRow.ID;
                args.ColumnInfo.IsDynamic       = true;
                args.ColumnInfo.IsExtra         = false;

                _views.MainForm.adapterDocuments.SetColumnDynamic(args.ColumnInfo.Name, args.ColumnInfo.DynamicColumnID);

                if (args.Categories != null)
                {
                    ConvertValuesToCategories(args);
                }
            }
            else
            {
                throw new Exception("Failed to add column");
            }
        }
Ejemplo n.º 2
0
        protected void ShowColumnPropsEditor(MainDataSet.DynamicColumnsRow dynamicColumnRow, bool forceRefresh)
        {
            if (dynamicColumnRow == null)
            {
                groupProperties.Visible = true;
                _currentColumnID        = -1;
                _currentColumnType      = DynamicColumnType.None;
                return;
            }

            ///////////////////////////////////////////////////////////////////////////////

            var dynamicColumnID = dynamicColumnRow.ID;
            var type            = (DynamicColumnType)dynamicColumnRow.Type;

            if (!forceRefresh && dynamicColumnID == _currentColumnID && _formColumnPropsEditor != null)
            {
                return;
            }

            if (_formColumnPropsEditor != null)
            {
                _formColumnPropsEditor.Close();
                _formColumnPropsEditor = null;
            }

            groupProperties.Visible = false;

            switch (type)
            {
            case DynamicColumnType.Category:
                _formColumnPropsEditor = new FormColumnPropsCategories(_views, dynamicColumnID, dynamicColumnRow.Title);
                break;

            case DynamicColumnType.FreeText:
                _formColumnPropsEditor = new FormColumnPropsFreeText();
                break;

            case DynamicColumnType.Numeric:
                _formColumnPropsEditor = new FormColumnPropsNumeric(_views, dynamicColumnRow);
                break;

            case DynamicColumnType.DateTime:
                _formColumnPropsEditor = new FormColumnPropsDateTime(_views, dynamicColumnRow);
                break;
            }

            if (_formColumnPropsEditor != null)
            {
                _formColumnPropsEditor.TopLevel = false;
                _formColumnPropsEditor.Parent   = this;
                _formColumnPropsEditor.Left     = groupProperties.Left;
                _formColumnPropsEditor.Top      = groupProperties.Top;
                _formColumnPropsEditor.Show();
            }

            _currentColumnID   = dynamicColumnID;
            _currentColumnType = type;
        }
Ejemplo n.º 3
0
        public FormDynamicColumns(ViewsManager views)
        {
            InitializeComponent();

            this.BackColor = MainForm.ColorBackground;

            ///////////////////////////////////////////////////////////////////////////////

            _views = views;

            _currentColumnType = DynamicColumnType.None;
        }
        protected void UpdateSelectedColumnType(DynamicColumnType type)
        {
            switch (type)
            {
            case DynamicColumnType.FreeText:
            case DynamicColumnType.Numeric:
            case DynamicColumnType.DateTime:
                ShowColumnOptions(false);
                break;

            case DynamicColumnType.Category:
                ShowColumnOptions(true);
                break;

            case DynamicColumnType.None:
            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
        }
        public static Type ColumnTypeToClrType(DynamicColumnType type)
        {
            switch (type)
            {
            case DynamicColumnType.FreeText:
            case DynamicColumnType.Category:
                return(typeof(string));

            case DynamicColumnType.Numeric:
                return(typeof(double));

            case DynamicColumnType.DateTime:
                return(typeof(DateTime));
            }

            ///////////////////////////////////////////////////////////////////////////////

            throw new Exception("Unsupported column type " + type);
        }
        protected string DynamicColumnTypeToAccessType(DynamicColumnType type)
        {
            switch (type)
            {
            case DynamicColumnType.FreeText:
            case DynamicColumnType.Category:
                return("MEMO");

            case DynamicColumnType.Numeric:
                return("DOUBLE");

            case DynamicColumnType.DateTime:
                return("DATETIME");
            }

            ///////////////////////////////////////////////////////////////////////////////

            throw new Exception("Unsupported column type: " + type);
        }
        public FormExtractColRegExp(DynamicColumnType type, string json, Dictionary <string, int> noteDocumentcolum)
        {
            _noteDocumentColumn = noteDocumentcolum;

            InitializeComponent();
            formType = type;
            if (formType == DynamicColumnType.FreeText)
            {
                rbMultipleValues.Visible = true;
                chbAddToPrevious.Visible = true;
            }
            else if (formType == DynamicColumnType.DateTime)
            {
                lbFormat.Visible  = true;
                txtFormat.Visible = true;
            }
            rbFirstInstance.Checked = true;

            //Create object from json
            if (String.IsNullOrEmpty(json))
            {
                extractObj = new ExtractOptions();
            }
            else
            {
                extractObj         = Newtonsoft.Json.JsonConvert.DeserializeObject <ExtractOptions>(json);
                chbExtract.Checked = extractObj.Extract;
                numericOrder.Value = extractObj.Order;
                if (extractObj.InstanceNo == 1)
                {
                    rbFirstInstance.Checked = true;
                }
                else if (extractObj.InstanceNo == 2)
                {
                    rbLastInstance.Checked = true;
                }
                else if (extractObj.InstanceNo == 3)
                {
                    rbNthInstance.Checked   = true;
                    numericNthInstnce.Value = (decimal)extractObj.NthInstaceNumber;
                }
                else if (extractObj.InstanceNo == 4)
                {
                    rbMultipleValues.Checked = true;
                }

                if (formType == DynamicColumnType.FreeText)
                {
                    chbAddToPrevious.Checked = extractObj.AddToPrevious ?? false;
                }
                else if (formType == DynamicColumnType.DateTime)
                {
                    txtFormat.Text = extractObj.DateTimeFormat;
                }
            }

            comboDocument.Items.AddRange(_noteDocumentColumn.Keys.ToArray());
            comboDocument.SelectedIndex = 0;

            foreach (var item in comboDocument.Items)
            {
                if (_noteDocumentColumn[item.ToString()] == extractObj.NoteTextColumn)
                {
                    comboDocument.SelectedItem = item;
                }
            }

            UpdateEnableState();
        }
Ejemplo n.º 8
0
        protected void DeleteColumn()
        {
            if (lvDynamicColumns.SelectedItems.Count == 1)
            {
                var dynamicColumnRow = (MainDataSet.DynamicColumnsRow)lvDynamicColumns.SelectedItems[0].Tag;

                string message = "Do you wish to delete this column and all related values?";

                var dlgres = MessageBox.Show(message, MainForm.AppName, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
                if (dlgres == DialogResult.Yes)
                {
                    var columnType = (DynamicColumnType)dynamicColumnRow.Type;
                    if (columnType == DynamicColumnType.Category)
                    {
                        var categories = _views.MainForm.datasetMain.DynamicColumnCategories.Where(
                            x => x.RowState != DataRowState.Deleted && x.DynamicColumnID == dynamicColumnRow.ID)
                                         .ToList();

                        if (categories.Any())
                        {
                            categories.ForEach(x => x.Delete());
                        }

                        ///////////////////////////////////////////////////////////////////////////////

                        var svmColumnName = dynamicColumnRow.Title + " (SVM)";
                        var svmColumn     = _views.MainForm.adapterDocuments.GetExtraColumnsCollection()
                                            .FirstOrDefault(x => String.Compare(x.Name, svmColumnName, StringComparison.InvariantCultureIgnoreCase) == 0);
                        if (svmColumn != null)
                        {
                            _views.MainForm.adapterDocuments.DeleteColumn(svmColumnName, true);
                            _views.MainForm.adapterReviewMLDocumentsNew.DeleteColumn(svmColumnName, false);
                        }
                    }

                    ///////////////////////////////////////////////////////////////////////////////

                    _views.MainForm.adapterDocuments.DeleteColumn(dynamicColumnRow.Title, true);
                    _views.MainForm.adapterReviewMLDocumentsNew.DeleteColumn(dynamicColumnRow.Title, false);

                    ///////////////////////////////////////////////////////////////////////////////

                    var dynamicColumnID = dynamicColumnRow.ID;

                    var rowScript = _views.MainForm.datasetMain.ColScript.FirstOrDefault(x => x.ColumnID == dynamicColumnID);
                    if (rowScript != null)
                    {
                        rowScript.Delete();
                        _views.MainForm.adapterColScript.Update(dynamicColumnRow);
                        _views.MainForm.adapterColScript.Fill(_views.MainForm.datasetMain.ColScript);
                    }

                    var rowPython = _views.MainForm.datasetMain.ColPython.FirstOrDefault(x => x.ColumnID == dynamicColumnID);
                    if (rowPython != null)
                    {
                        rowPython.Delete();
                        _views.MainForm.adapterColPython.Update(dynamicColumnRow);
                        _views.MainForm.adapterColPython.Fill(_views.MainForm.datasetMain.ColPython);
                    }

                    dynamicColumnRow.Delete();

                    _views.MainForm.adapterDynamicColumns.Update(dynamicColumnRow);
                    _views.MainForm.adapterDynamicColumns.Fill(_views.MainForm.datasetMain.DynamicColumns);

                    ///////////////////////////////////////////////////////////////////////////////

                    //Delete all ColRegExp's when deleting column class
                    var regExp = _views.MainForm.datasetMain.ColRegExp.Where(x => x.RowState != DataRowState.Deleted && x.ColumnID == dynamicColumnID)
                                 .ToList();

                    if (regExp.Any())
                    {
                        regExp.ForEach(x => x.Delete());

                        _views.MainForm.adapterColRegExp.Update(_views.MainForm.datasetMain.ColRegExp);
                        _views.MainForm.adapterColRegExp.Fill(_views.MainForm.datasetMain.ColRegExp);
                    }

                    ///////////////////////////////////////////////////////////////////////////////

                    HideColumnPropsEditor();

                    _currentColumnID   = 0;
                    _currentColumnType = DynamicColumnType.None;

                    FillColumnsList(-1);
                }
            }
        }
 public ColumnInfo AddDynamicColumn(string columnName, DynamicColumnType dynamicColumnType, bool updateDatabase)
 {
     return(SqlAddColumn(columnName, DynamicColumnTypeToAccessType(dynamicColumnType), true, updateDatabase));
 }