コード例 #1
0
        private void RedrawGrids(DataBinding binding, bool redraw)
        {
            if (binding != null)
            {
                if (binding.Grid != null)
                {
                    try
                    { Materia.SetPropertyValue(binding.Grid, "KeyActionEnter", 3); }
                    catch { }

                    try
                    { Materia.SetPropertyValue(binding.Grid, "SelectionMode", 3); }
                    catch { }

                    try { Materia.Redraw((Control)binding.Grid, redraw); }
                    catch { }
                }

                if (binding.Details.Count > 0)
                {
                    foreach (DataBinding _binding in binding.Details) RedrawGrids(_binding, redraw);
                }
            }
        }
コード例 #2
0
 /// <summary>
 /// Creates a new instance of DataBinding.
 /// </summary>
 /// <param name="binder">Parent DataBinder component</param>
 /// <param name="sql">Database command text used to deploy automated database record updates</param>
 /// <param name="header">Header database binding information</param>
 public DataBinding(DataBinder binder, string sql, DataBinding header) : this(binder, sql, "", header)
 { }
コード例 #3
0
        private void AcceptUpdates(DataBinding binding)
        {
            if (binding != null)
            {
                if (binding.Table != null)
                {
                    try { binding.Table.AcceptChanges(); }
                    catch { }

                    if (binding.Details.Count > 0)
                    {
                        foreach (DataBinding db in binding.Details) AcceptUpdates(db);
                    }
                }
            }
        }
コード例 #4
0
 private void InitializeRequiredFields(DataBinding binding)
 {
     for (int i = 0; i <= (BindedControls.Count - 1); i++)
     {
         BindedControl bc = BindedControls[i];
         InitializeRequiredFields(binding, (Control)bc.Control);
     }
 }
コード例 #5
0
 /// <summary>
 ///  Returns whether the specified binding information already exists within the collection.
 /// </summary>
 /// <param name="binding">Development.Materia.Database.DataBinding to evaluate</param>
 /// <returns>True if the specified Development.Materia.Database.DataBinding already exists within the collection otherwise false.</returns>
 public bool Contains(DataBinding binding)
 { return List.Contains(binding); }
コード例 #6
0
 private void AcceptAllChanges(DataBinding binding)
 {
     if (binding != null)
     {
         binding.AcceptChanges();
         if (binding.Details.Count > 0)
         {
             foreach (DataBinding db in binding.Details) AcceptAllChanges(db);
         }
     }
 }
コード例 #7
0
        private DataBinderValidationEventArgs Validate(DataBinding binding, DataBinderValidationEventArgs args)
        {
            DataBinderValidationEventArgs _args = null;

            if (binding != null)
            {
                if (binding.Grid != null)
                {
                    _args = new DataBinderValidationEventArgs(binding.Grid);
                    OnBeforeControlValidation(_args);
                    _args = ValidateGrid(binding.Grid);
                    OnAfterControlValidation(_args);
                }

                if (_args == null)
                {
                    if (binding.Details.Count > 0)
                    {
                        foreach (DataBinding db in binding.Details)
                        {
                            _args = Validate(db, _args);
                            if (_args != null)
                            {
                                if (_args.Cancel) break;
                            }
                        }
                    }
                }
                else
                {
                    if (!_args.Cancel)
                    {
                        if (binding.Details.Count > 0)
                        {
                            foreach (DataBinding db in binding.Details)
                            {
                                _args = Validate(db, _args);
                                if (_args != null)
                                {
                                    if (_args.Cancel) break;
                                }
                            }
                        }
                    }
                }
            }

            return _args;
        }
コード例 #8
0
 /// <summary>
 /// Creates a new instance of DataBindingCollection.
 /// </summary>
 /// <param name="header">Development.Materia.Database.DataBinding header</param>
 public DataBindingCollection(DataBinding header)
 { _header = header; }
コード例 #9
0
        private void SetForeignKeyValues(DataBinding binding)
        {
            if (binding.Header != null)
            {
                DataTable _htable = binding.Header.Table;
                if (_htable != null)
                {
                    if (_htable.Columns.Count > 0 &&
                        _htable.Rows.Count > 0)
                    {
                        string _pk = binding.Header.PrimaryKey;

                        if (String.IsNullOrEmpty(_pk.RLTrim()))
                        {
                            foreach (DataColumn _column in _htable.Columns)
                            {
                                if (_column.Unique)
                                { _pk = _column.ColumnName; break; }
                            }
                        }
                        else
                        {
                            if (!_htable.Columns.Contains(_pk))
                            {
                                foreach (DataColumn _column in _htable.Columns)
                                {
                                    if (_column.Unique)
                                    { _pk = _column.ColumnName; break; }
                                }
                            }
                        }

                        if (!String.IsNullOrEmpty(_pk.RLTrim()))
                        {
                            DataTable _table = binding.Table;

                            if (_table != null)
                            {
                                if (_table.Columns.Count > 0 &&
                                    _table.Rows.Count > 0)
                                {
                                    string _fk = binding.ForeignKey;

                                    if (!String.IsNullOrEmpty(_fk.RLTrim()))
                                    {
                                        if (!_table.Columns.Contains(_fk))
                                        {
                                            if (_table.Columns.Contains(_pk)) _fk = _pk;
                                            else _fk = "";
                                        }
                                    }
                                    else
                                    {
                                        if (_table.Columns.Contains(_pk)) _fk = _pk;
                                        else _fk = "";
                                    }

                                    if (!String.IsNullOrEmpty(_fk.RLTrim()))
                                    {
                                        object _fkvalue = _htable.Rows[0][_pk];

                                        foreach (DataRow _row in _table.Rows)
                                        {
                                            if (_row.RowState != DataRowState.Deleted &&
                                                _row.RowState != DataRowState.Detached) _row[_fk] = _fkvalue;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #10
0
        private void Update(DataBinding binding)
        {
            if (binding != null)
            {
                binding.Update();

                if (binding.Details.Count > 0)
                {
                    foreach (DataBinding _binding in binding.Details) Update(_binding);
                }
            }
        }
コード例 #11
0
        private void SetForeignKeys(DataBinding binding)
        {
            SetForeignKeyValues(binding);

            if (binding.Details.Count > 0)
            {
                foreach (DataBinding _binding in binding.Details) SetForeignKeyValues(_binding);
            }
        }
コード例 #12
0
        private void SetFieldValues(DataBinding binding)
        {
            if (binding != null)
            {
                binding.SetFieldValues();

                if (binding.Details.Count > 0)
                {
                    foreach (DataBinding _binding in binding.Details) SetFieldValues(_binding);
                }
            }
        }
コード例 #13
0
        private DataBinderLoadingEventArgs ReloadBinding(DataBinding binding)
        {
            IAsyncResult _result = binding.BeginLoad();
            while (!_result.IsCompleted &&
                   !CancelRunningProcess)
            {
                OnDataLoading(new EventArgs());
                Thread.Sleep(1); Application.DoEvents();
            }

            if (CancelRunningProcess)
            {
                if (!_result.IsCompleted)
                {
                    try { _result = null; }
                    catch { }
                }

                return null;
            }

            DataBinderLoadingEventArgs _args = binding.EndLoad(_result);
            if (_args == null) return null;

            if (!_args.Cancel)
            {
                if (binding.Details.Count > 0)
                {
                    foreach (DataBinding db in binding.Details)
                    {
                       IAsyncResult _resultdetails = db.BeginLoad();

                        while (!_resultdetails.IsCompleted &&
                               !CancelRunningProcess)
                        {
                            OnDataLoading(new EventArgs());
                            Thread.Sleep(1); Application.DoEvents();
                        }

                        if (CancelRunningProcess)
                        {
                            if (!_resultdetails.IsCompleted)
                            {
                                try { _resultdetails = null; }
                                catch { }
                            }

                            return null;
                        }

                        _args = db.EndLoad(_resultdetails);
                        if (_args.Cancel) break;
                    }

                    return _args;
                }
                else return _args;
            }
            else return _args;
        }
コード例 #14
0
 /// <summary>
 /// Creates a new instance of DataBinding.
 /// </summary>
 /// <param name="binder">Parent DataBinder component</param>
 /// <param name="basecommandtext">Database command text used to deploy automated database record updates</param>
 /// <param name="viewcommandtext">Database command text used to provide customized data binded views specially if records are binded into a grid</param>
 /// <param name="header">Header database binding information</param>
 public DataBinding(DataBinder binder, string basecommandtext, string viewcommandtext, DataBinding header)
 { 
     _binder = binder; _basecommandtext = basecommandtext; 
     _viewcommandtext = viewcommandtext; _header = header;
     _details = new DataBindingCollection(this);
     _requiredfields = new RequiredFieldCollection(this);
 }
コード例 #15
0
        private DataTable ValidationDataSource(string field, DataBinding binding)
        {
            DataTable _table = null;

            if (binding != null)
            {
                if (!String.IsNullOrEmpty(field.RLTrim()))
                {
                    if (binding.Grid == null)
                    {
                        if (binding.Table != null)
                        {
                            if (binding.Table.Columns.Contains(field) &&
                                binding.RequiredFields.Contains(field)) _table = binding.Table;
                        }
                    }

                    if (_table == null)
                    {
                        if (binding.Details.Count > 0)
                        {
                            foreach (DataBinding db in binding.Details)
                            {
                                _table = ValidationDataSource(field, db);
                                if (_table != null) break;
                            }
                        }
                    }
                }
            }

            return _table;
        }
コード例 #16
0
 /// <summary>
 /// Creates a new instance of DataBinder.
 /// </summary>
 public DataBinder()
 {
     _bindedcontrols = new BindedControlCollection(this);
     _databinding = new DataBinding(this);
 }
コード例 #17
0
        private DataBinding ValidationGridBinding(object grid, DataBinding binding)
        {
            DataBinding _binding = null;

            if (grid != null &&
                binding != null)
            {
                if (binding.Grid != null)
                {
                    if (binding.Grid == grid) _binding = binding;
                }

                if (_binding == null)
                {
                    if (binding.Details.Count > 0)
                    {
                        foreach (DataBinding db in binding.Details)
                        {
                            _binding = ValidationGridBinding(grid, db);
                            if (_binding != null) break;
                        }
                    }
                }
            }

            return _binding;
        }
コード例 #18
0
 /// <summary>
 /// Adds a new detail binding information into the collection.
 /// </summary>
 /// <param name="basecommandtext">Raw database command text used to deploy automated database record updates</param>
 /// <param name="viewcommandtext">Command text used to provide customized data binded views specially if records are binded into a grid</param>
 /// <returns>Newly added detail Development.Materia.Database.DataBinding.</returns>
 public DataBinding Add(string basecommandtext, string viewcommandtext)
 {
     DataBinding _binding = new DataBinding(_header.Binder, basecommandtext, viewcommandtext, _header);
     int _index = List.Add(_binding); return (DataBinding)List[_index];
 }
コード例 #19
0
        private bool WithBlobDataSource(DataBinding binding)
        {
            if (binding != null)
            {
                DataTable _table = binding.Table;

                if (_table != null)
                {
                    foreach (DataColumn _column in _table.Columns)
                    {
                        if (_column.DataType.Name.ToLower().Contains("byte[]") ||
                            _column.DataType.Name.ToLower().Contains("byte()") ||
                            _column.DataType.Name.ToLower().Contains("bytes[]") ||
                            _column.DataType.Name.ToLower().Contains("bytes()")) return true;
                    }
                }

                if (binding.Details.Count > 0)
                {
                    foreach (DataBinding _binding in binding.Details)
                    {
                        if (WithBlobDataSource(_binding)) return true;
                    }
                }
            }

            return false;
        }
コード例 #20
0
 /// <summary>
 /// Removes the specified binding information from the collection.
 /// </summary>
 /// <param name="binding">Development.Materia.Database.DataBinding to remove</param>
 public void Remove(DataBinding binding)
 {
     if (Contains(binding)) List.Remove(binding);
 }
コード例 #21
0
 /// <summary>
 /// Creates a new instance of DataBinderLoadingEventArgs.
 /// </summary>
 /// <param name="binding">Currently evealuated DataBinding object</param>
 public DataBinderLoadingEventArgs(DataBinding binding) : this(binding, "")
 { }
コード例 #22
0
 /// <summary>
 /// Creates a new instance of RequiredFieldCollection.
 /// </summary>
 /// <param name="binding">Development.Materia.Database.DataBinding object that owns the current class.</param>
 public RequiredFieldCollection(DataBinding binding)
 { _binding = binding; }
コード例 #23
0
 /// <summary>
 /// Creates a new instance of DataBinderLoadingEventArgs.
 /// </summary>
 /// <param name="binding">Currently evealuated DataBinding object</param>
 /// <param name="error">Encountered exception's message</param>
 public DataBinderLoadingEventArgs(DataBinding binding, string error)
 { _binding = binding; _error = error; _cancel = !String.IsNullOrEmpty(error.RLTrim()); }
コード例 #24
0
        private void GridFinishEdit(DataBinding binding)
        {
            if (binding != null)
            {
                if (binding.Grid != null)
                {
                    bool _allowediting = Materia.GetPropertyValue<bool>(binding.Grid, "AllowEditing", true);
                    object _datasource = Materia.GetPropertyValue(binding.Grid, "DataSource");

                    if (_allowediting && _datasource != null)
                    {
                        try { Materia.InvokeMethod(binding.Grid, "FinishEditing"); }
                        catch { }

                        bool _addnew = Materia.GetPropertyValue<bool>(binding.Grid, "AllowAddNew", true);
                        try { Materia.SetPropertyValue(binding.Grid, "AllowAddNew", false); }
                        catch { }

                        object _rows = Materia.GetPropertyValue(binding.Grid, "Rows");
                        if (_rows != null)
                        {
                            int _rowcount = Materia.GetPropertyValue<int>(_rows, "Count", 0);
                            int _rowfixed = Materia.GetPropertyValue<int>(_rows, "Fixed", 1);

                            if (_rowcount > _rowfixed)
                            {
                                try { Materia.SetPropertyValue(binding.Grid, "Row", _rowfixed - 1); }
                                catch { }
                            }
                        }

                        try { Materia.SetPropertyValue(binding.Grid, "AllowAddNew", _addnew); }
                        catch { }
                    }
                }

                if (binding.Details.Count > 0)
                {
                    foreach (DataBinding db in binding.Details) GridFinishEdit(db);
                }
            }
        }
コード例 #25
0
 /// <summary>
 /// Creates a new instance of DataBinding.
 /// </summary>
 /// <param name="binder">Parent DataBinder component</param>
 /// <param name="header">Header database binding information</param>
 public DataBinding(DataBinder binder, DataBinding header) : this(binder, "", "",  null)
 { }
コード例 #26
0
 private void InitializeRequiredFields(DataBinding binding, Control control)
 {
     if (control == null) return;
     if (binding == null) return;
     if (BindedControls.Contains(control))
     {
         string _field = BindedControls[control].FieldName;
         if (!String.IsNullOrEmpty(_field.RLTrim()))
         {
             if (binding.RequiredFields.Contains(_field) &&
                 binding.Grid == null) ProduceMarkerLabel(control);
         }
     }
 }
コード例 #27
0
 private void RedrawGrids(DataBinding binding)
 { RedrawGrids(binding, true); }