private void AnketaPersonOrgForm_Load(object sender, EventArgs e) { // инициализация таблицы организаций _orgTable = Org.CreateTable(); // добавление столбца для отметок (пометок) _orgTable.Columns.Add(Check, typeof(bool)); _orgTable.Columns[Check].DefaultValue = false; // определение бинда _orgBS = new BindingSource(); // привязка к источнику _orgBS.DataSource = _orgTable; // запрет на автогенерацию столбцов вьюшки this.orgView.AutoGenerateColumns = false; // привязка к источнику this.orgView.DataSource = _orgBS; this.orgView.Sorted += new EventHandler(orgView_Sorted); // если оператор определен и соединение определено if (_operator != null && _connection != null) { // определение адаптера для считывания записей с данными об организациях string selectcommand; // если оператор - Администратор, то выбрать команду для выбора всех имеющихся организациях if (_operator.IsAdmin()) { selectcommand = Org.GetSelectCommandText(); } else // иначе выбрать толькоте организации, к которым оператор имеет доступ для редактирования { selectcommand = Org.GetSelectTextByOperatorAccess(_operator.idVal); } // инизаализация адаптера SQLiteDataAdapter adapter = new SQLiteDataAdapter(selectcommand, _connection); // заполнение таблицы данными из БД adapter.Fill(_orgTable); // получение списка ID организаций, в которых числиться выбранная Персона (физическое лицо) long[] orgIDArray = PersonOrg.GetOrgID((long)_personRow[PersonView.id], _connection); // отметить из выбранных Организаций те, к которым привязана Персона foreach (long id in orgIDArray) { int i = _orgBS.Find(Org.id, id); if (i >= 0) { DataRowView tmpRow = _orgBS[i] as DataRowView; tmpRow[Check] = true; } } // принять изменения (отметки) _orgBS.EndEdit(); // выбрать организации в которых есть документы на человека _orgIds = Org.GetOrgsIdWithDocsForPerson((long)_personRow[PersonView.id], _connection); // сделать readOnly организации в которых есть документы DisableCheckBoxInView(); // выделить струку с текущей Организацией (усьановить задний фон) this.MarkCurOrgRow(); // отобразить на форме страховой номер и фио выбранной Персоны personDataLabel.Text = string.Format("{0} {1}", _personRow[PersonView.socNumber], _personRow[PersonView.fio]); } }