Расчет данных - Visual Basic .NET
Формулировка задачи:
Здравствуйте. Как можно сделать расчеты между таблицами,которые представлены на фото. То есть при выборе должности в карте сотрудника,она должна уменьшаться в таблице "должности"(скрин 2).
А в таблице вакансии в колонке "занято мест" должно выводится количество занятых должностей, и если нет свободных то в конке "свободно" будет соответствующий результат.
Решение задачи: «Расчет данных»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace DBpoly
{
public partial class Doljnosti : Form
{
public Doljnosti()
{
InitializeComponent();
}
private void штатноеРасписаниеBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.штатноеРасписаниеBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this._PolyDB_MDFDataSet);
}
private void Doljnosti_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the '_PolyDB_MDFDataSet.ШтатноеРасписание' table. You can move, or remove it, as needed.
this.штатноеРасписаниеTableAdapter.Fill(this._PolyDB_MDFDataSet.ШтатноеРасписание);
for (int i = 0; i < штатноеРасписаниеDataGridView.Columns.Count; i++)
{
if (штатноеРасписаниеDataGridView.Columns[i].Visible == true)
{
ToolStripSearchColumn3.Items.Add(штатноеРасписаниеDataGridView.Columns[i].HeaderText);
}
}
ToolStripSearchColumn3.Text = штатноеРасписаниеDataGridView.Columns[1].HeaderCell.Value.ToString();
}
private void ToolStripSearch3_Click(object sender, EventArgs e)
{
try
{
if (ToolStripSearchColumn3.Text != "" && ToolStripSearchParam3.Text != "" && ToolStripSearchValue3.Text != "")
{
this.штатноеРасписаниеBindingSource.Filter = ToolStripSearchColumn3.Text + " " + ToolStripSearchParam3.Text + " '" + ToolStripSearchValue3.Text + "'";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString(), ex.Source.ToString());
}
}
private void ToolStripRemFilter3_Click(object sender, EventArgs e)
{
this.штатноеРасписаниеBindingSource.RemoveFilter();
ToolStripSearchColumn3.Text = "";
ToolStripSearchValue3.Text = "";
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace DBpoly
{
public partial class vakansii : Form
{
public vakansii()
{
InitializeComponent();
}
private void vakansii_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the '_PolyDB_MDFDataSet.ВакансииСумарно' table. You can move, or remove it, as needed.
this.вакансииСумарноTableAdapter.Fill(this._PolyDB_MDFDataSet.ВакансииСумарно);
}
private void vakansii_Shown(object sender, EventArgs e)
{
refresh();
}
private void toolStripTextBox1_TextChanged(object sender, EventArgs e)
{
try
{
if (toolStripTextBox1.Text != "")
{
this.вакансииСумарноBindingSource.Filter = "Должность LIKE '" + toolStripTextBox1.Text + "%'";
}
else
this.вакансииСумарноBindingSource.RemoveFilter();
refresh();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString(), ex.Source.ToString());
}
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
this.вакансииСумарноBindingSource.RemoveFilter();
toolStripTextBox1.Text = "";
}
private void refresh()
{
foreach (DataGridViewRow row in this.вакансииСумарноDataGridView.Rows)
{
int val1 = 0;
if (row.Cells[2].Value.ToString() != "")
{
val1 = (int)row.Cells[2].Value;
}
int val2 = 0;
string ss = row.Cells[3].Value.ToString();
if (row.Cells[3].Value.ToString() != "")
{
val2 = (int)row.Cells[3].Value;
}
if (val1 - val2 > 0)
{
row.Cells["Free"].Value = val1 - val2;
}
else
{
row.Cells["Free"].Value = "нет";
}
}
}
}
}