Расчет данных - 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 = "нет"; } } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д