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); } } }
/// <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) { }
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); } } } }
private void InitializeRequiredFields(DataBinding binding) { for (int i = 0; i <= (BindedControls.Count - 1); i++) { BindedControl bc = BindedControls[i]; InitializeRequiredFields(binding, (Control)bc.Control); } }
/// <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); }
private void AcceptAllChanges(DataBinding binding) { if (binding != null) { binding.AcceptChanges(); if (binding.Details.Count > 0) { foreach (DataBinding db in binding.Details) AcceptAllChanges(db); } } }
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; }
/// <summary> /// Creates a new instance of DataBindingCollection. /// </summary> /// <param name="header">Development.Materia.Database.DataBinding header</param> public DataBindingCollection(DataBinding header) { _header = header; }
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; } } } } } } } } }
private void Update(DataBinding binding) { if (binding != null) { binding.Update(); if (binding.Details.Count > 0) { foreach (DataBinding _binding in binding.Details) Update(_binding); } } }
private void SetForeignKeys(DataBinding binding) { SetForeignKeyValues(binding); if (binding.Details.Count > 0) { foreach (DataBinding _binding in binding.Details) SetForeignKeyValues(_binding); } }
private void SetFieldValues(DataBinding binding) { if (binding != null) { binding.SetFieldValues(); if (binding.Details.Count > 0) { foreach (DataBinding _binding in binding.Details) SetFieldValues(_binding); } } }
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; }
/// <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); }
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; }
/// <summary> /// Creates a new instance of DataBinder. /// </summary> public DataBinder() { _bindedcontrols = new BindedControlCollection(this); _databinding = new DataBinding(this); }
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; }
/// <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]; }
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; }
/// <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); }
/// <summary> /// Creates a new instance of DataBinderLoadingEventArgs. /// </summary> /// <param name="binding">Currently evealuated DataBinding object</param> public DataBinderLoadingEventArgs(DataBinding binding) : this(binding, "") { }
/// <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; }
/// <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()); }
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); } } }
/// <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) { }
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); } } }
private void RedrawGrids(DataBinding binding) { RedrawGrids(binding, true); }