
If (f is Form2)
f2 = (f as Form2);
if (add)
th.sotrudnikiBindingSource.AddNew();
f2.sotrudnikiBindingSource.DataSource = th.sotrudnikiBindingSource;
f2.sotrudnikiBindingSource.Position = th.sotrudnikiBindingSource.Position;
f2.sotrudnikiTableAdapter.Fill(f2.myDBDataSet.Sotrudniki);
if(f2.ShowDialog() == System.Windows.Forms.DialogResult.OK)
th.sotrudnikiTableAdapter.Update(th.myDBDataSet.Sotrudniki);
}
}
Теперь напишем метод, который будет использоваться для получения списка подчиненных элементов справочника текущему. В качестве параметров передаем форму, на которой расположены элементы подключения к БД и тип справочника:
public void getpodchin(Kontr h, Form4 th)
{
if (h == Kontr.sotrudnik)
{
MyDBDataSet.SotrudnikiRow r = (MyDBDataSet.SotrudnikiRow)((DataRowView)th.sotrudnikiBindingSource.Current).Row;
th.kontrBindingSource.Filter = "name = '" + r.id.ToString() + "'";
}
}
Для того чтобы отключить подчинение необходимо написать:
th.kontrBindingSource.Filter = string.Empty;
Рассмотрим метод для получения связанных данных:
public void getKey(Kontr h,Form1 th,string val)
{
if (h == Kontr.kontr)
{
MyDBDataSet.KontrRow r = (MyDBDataSet.KontrRow)((DataRowView)th.kontrBindingSource.Current).Row;
r.Name = val;
th.kontrBindingSource.EndEdit();
th.kontrTableAdapter.Update(th.myDBDataSet.Kontr);
}
}
И метод для получения отчета:
public void Report(Kontr h, Form1 th,string[] param)
{
if (h==Kontr.kontr)
th.kontrTableAdapter.FillByName(th.myDBDataSet.Kontr, param[0]);
}
Объект управляющего класса объявим как статическое поле в классе Program, чтобы он был доступен из всех форм программы.