close

Вход

Забыли?

вход по аккаунту

?

Отчет (16)

код для вставкиСкачать
Федеральное агентство по образованию
___________________
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ
_________________________________________________________________________________
Институт экономики, управления и информационных систем в строительстве Кафедра "Информационных систем, технологий и автоматизации в строительстве"
Практика
"Создание многоуровневой базы данных со справочниками, включая функции редактирования базы данных, на объектно-ориентированном языке высокого уровня C#"
Выполнил: студент ИСТАС III-1 Крутиков Б.М.
Проверил: Матвеев А. О.
г. Москва 2013
Практика
Интерфейс программы и ее составные части.
Открытие 2 справочников и 2 Входных документов.
Добавление.
Изменение.
Удаление.
Удаление 4й строки.
Код программы.
Код интерфейса:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Windows.Forms;
namespace Praktika
{
public interface IDocuments
{
// Свойства документа
bool bAdd { get; }
bool bChange { get; }
bool bDell { get; }
// Свойство возвращающее имя таблицы
string sTableName { get; }
string sTableView { get; }
DataSet RefreshData();
void CreateInterfaceAddChange(ref Panel _PanelAC);
void DeleteInterfaceAddChange();
bool IsertIntoTable();
bool CommitDATA();
bool InitDataBeforeUpdate(int _RowValue);
bool UpdateDataTable(int _RowValue);
bool DeleteDataTable(int _RowValue);
}
}
Код Рабочего окна.
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 Praktika
{
public partial class WorkForm : Form
{
// Обявление объекта интерфейса
public IDocuments _IDocuments;
public int n = 0;
public WorkForm()
{
InitializeComponent();
}
// Перегрузка конструктора
public WorkForm(IDocuments __IDocuments)
{
_IDocuments = __IDocuments;
InitializeComponent();
}
private void ToolBT_Add_Click(object sender, EventArgs e)
{
if (Program._MainForm.panel_AddChange.Visible == false)
{
Program._MainForm.panel_AddChange.Visible = true; //сделать панель видимой
Program._MainForm.button_Ok.Text = "Добавить"; // задать текст кнопки
try
{
//вызвать функцию построения интерфейса соответствуюео документа
_IDocuments.CreateInterfaceAddChange(ref Program._MainForm.panel_AddChange);
//присвоить событие соответствуюего документа
Program._MainForm.panel_AddChange.VisibleChanged += new System.EventHandler(panel_AddChange_VisibleChanged);
Program._MainForm.button_Ok.Click += new System.EventHandler(button_Ok_Click);
Program._MainForm.button_Cancell.Click += new System.EventHandler(button_Cancell_Click);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
Program._MainForm.panel_AddChange.Visible = false;
}
}
}
private void ToolBT_Change_Click(object sender, EventArgs e)
{
//сделать панель видимой
Program._MainForm.panel_AddChange.Visible = true;
DisableToolBT();
Program._MainForm.button_Ok.Text = "Изменить";
try
{
//присвоить соытие соответствующего документа
Program._MainForm.panel_AddChange.VisibleChanged += new System.EventHandler(panel_AddChange_VisibleChanged);
//вызвать функцию построения интерфейса соответствующео документа
_IDocuments.CreateInterfaceAddChange(ref Program._MainForm.panel_AddChange);
//вызвать инициализацию данных для изменения
_IDocuments.InitDataBeforeUpdate(n);
//присвоить событие соответствующего документа
Program._MainForm.button_Ok.Click += new System.EventHandler(button_Change_Click);
Program._MainForm.button_Cancell.Click += new System.EventHandler(button_Cancell_Click);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
//если возникла какая-лио ошибка закрыть панель
Program._MainForm.panel_AddChange.Visible = false;
}
}
private void ToolBT_Dell(object sender, EventArgs e)
{
if (_IDocuments.DeleteDataTable(n))
if (_IDocuments.CommitDATA())
{
try
{
// Подключение хранилища
WorkDataGridView.DataSource = _IDocuments.RefreshData();
// определение таблицы
WorkDataGridView.DataSource = _IDocuments.sTableView;
}
catch (Exception) { }
}
Program._MainForm.panel_AddChange.Visible = false;
deactivatedButtonOkCancell();
EnableToolBT();
}
private void ToolBT_Refresh(object sender, EventArgs e)
{
try
{
WorkDataGridView.DataSource = _IDocuments.RefreshData();
WorkDataGridView.DataSource = _IDocuments.sTableView;
}
catch (Exception) { }
}
//функция включает соответствующие кнопки private void EnableToolBT()
{
Program._MainForm.ToolBT_Add.Enabled = _IDocuments.bAdd;
Program._MainForm.Add_SubItem.Enabled = _IDocuments.bAdd;
Program._MainForm.ToolBT_Change.Enabled = _IDocuments.bChange;
Program._MainForm.Change_SubItem.Enabled = _IDocuments.bChange;
Program._MainForm.ToolBT_Dell.Enabled = _IDocuments.bDell;
Program._MainForm.Dell_SubItem.Enabled = _IDocuments.bDell;
Program._MainForm.ToolBT_Refresh.Enabled = true;
Program._MainForm.Refresh_SubItem.Enabled = true;
}
//отключает все кнопки private void DisableToolBT()
{
Program._MainForm.ToolBT_Add.Enabled = false;
Program._MainForm.Add_SubItem.Enabled = false;
Program._MainForm.ToolBT_Change.Enabled = false;
Program._MainForm.Change_SubItem.Enabled = false;
Program._MainForm.ToolBT_Dell.Enabled = false;
Program._MainForm.Dell_SubItem.Enabled = false;
Program._MainForm.ToolBT_Refresh.Enabled = false;
Program._MainForm.Refresh_SubItem.Enabled = false;
}
private void button_Change_Click(object sender, EventArgs e)
{
if (_IDocuments.UpdateDataTable(n))
if (_IDocuments.CommitDATA())
{
try
{
// Подключение хранилища
WorkDataGridView.DataSource = _IDocuments.RefreshData();
// определение таблицы
WorkDataGridView.DataSource = _IDocuments.sTableView;
}
catch (Exception) { }
}
Program._MainForm.panel_AddChange.Visible = false;
//очистка событий
deactivatedButtonOkCancell();
EnableToolBT();
}
private void button_Ok_Click(object sender, EventArgs e)
{
if (_IDocuments.IsertIntoTable())
if (_IDocuments.CommitDATA())
{
try
{
// Подключение хранилища
WorkDataGridView.DataSource = _IDocuments.RefreshData();
// определение таблицы
WorkDataGridView.DataSource = _IDocuments.sTableView;
}
catch (Exception) { }
}
Program._MainForm.panel_AddChange.Visible = false;
//очистка событий
deactivatedButtonOkCancell();
EnableToolBT();
}
private void button_Cancell_Click(object sender, EventArgs e)
{
Program._MainForm.panel_AddChange.Visible = false;
//очистка событий
deactivatedButtonOkCancell();
}
private void panel_AddChange_VisibleChanged(object sender, EventArgs e)
{
//удалене компонентов
_IDocuments.DeleteInterfaceAddChange();
Program._MainForm.panel_AddChange.VisibleChanged -= new System.EventHandler(panel_AddChange_VisibleChanged);
}
private void WorkForm_Activated(object sender, EventArgs e)
{
try
{
EnableToolBT();//активация кнопок
if (Program._MainForm.ToolBT_Add.Enabled == true)//добавление
{
Program._MainForm.ToolBT_Add.Click += new System.EventHandler(ToolBT_Add_Click);
Program._MainForm.Add_SubItem.Click += new System.EventHandler(ToolBT_Add_Click);
}
if (Program._MainForm.ToolBT_Change.Enabled == true)//изменение
{
Program._MainForm.ToolBT_Change.Click += new System.EventHandler(ToolBT_Change_Click);
Program._MainForm.Change_SubItem.Click += new System.EventHandler(ToolBT_Change_Click);
}
if (Program._MainForm.ToolBT_Dell.Enabled == true)//Удаление
{
Program._MainForm.ToolBT_Dell.Click += new System.EventHandler(ToolBT_Dell);
Program._MainForm.Dell_SubItem.Click += new System.EventHandler(ToolBT_Dell);
}
if (Program._MainForm.ToolBT_Refresh.Enabled == true)
{
Program._MainForm.ToolBT_Refresh.Click += new System.EventHandler(ToolBT_Refresh);
Program._MainForm.Refresh_SubItem.Click += new System.EventHandler(ToolBT_Refresh);
}
// Подключение хранилища
WorkDataGridView.DataSource = _IDocuments.RefreshData();
// Определение Таблицы
WorkDataGridView.DataMember = _IDocuments.sTableView;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
//сделать панель скрытой если она была открыта
Program._MainForm.panel_AddChange.Visible = false;
DisableToolBT();//отключение кнопок
}
}
private void WorkForm_Deactivate(object sender, EventArgs e)
{
//сделать понель скрытой если была открытой
if (Program._MainForm.panel_AddChange.Visible == true)
{
Program._MainForm.panel_AddChange.Visible = false;
deactivatedButtonOkCancell();
DisableToolBT();
}
//Отключение событий если они были включены
if (Program._MainForm.ToolBT_Add.Enabled == true)
{
Program._MainForm.ToolBT_Add.Click -= new System.EventHandler(ToolBT_Add_Click);
Program._MainForm.Add_SubItem.Click -= new System.EventHandler(ToolBT_Add_Click);
} if (Program._MainForm.ToolBT_Change.Enabled == true)
{
Program._MainForm.ToolBT_Change.Click -= new System.EventHandler(ToolBT_Change_Click);
Program._MainForm.Change_SubItem.Click -= new System.EventHandler(ToolBT_Change_Click);
}
if (Program._MainForm.ToolBT_Dell.Enabled == true)//Удаление
{
Program._MainForm.ToolBT_Dell.Click += new System.EventHandler(ToolBT_Dell);
Program._MainForm.Dell_SubItem.Click -= new System.EventHandler(ToolBT_Dell);
}
if (Program._MainForm.ToolBT_Refresh.Enabled == true)
{
Program._MainForm.ToolBT_Refresh.Click += new System.EventHandler(ToolBT_Refresh);
Program._MainForm.Refresh_SubItem.Click -= new System.EventHandler(ToolBT_Refresh);
}
}
//отключение
private void deactivatedButtonOkCancell()
{
if (Program._MainForm.button_Ok.Text == "Добавить")
Program._MainForm.button_Ok.Click -= new System.EventHandler(button_Ok_Click);
if (Program._MainForm.button_Ok.Text == "Изменить")
Program._MainForm.button_Ok.Click -= new System.EventHandler(button_Change_Click);
Program._MainForm.button_Cancell.Click -= new System.EventHandler(button_Cancell_Click);
}
private void WorkDataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex >= 0 && e.RowIndex >= 0) n = Convert.ToInt32(WorkDataGridView[0, e.RowIndex].Value);
}
}
}
Код Главного окна.
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 Praktika
{
public partial class MainForm : Form
{
TSpr1 _TSpr1;
TSpr2 _TSpr2;
TInDoc1 _TInDoc1;
TInDoc2 _TInDoc2;
//TOutDoc1 _TOutDoc1;
public MainForm()
{
InitializeComponent();
_TSpr1 = new TSpr1();
_TSpr2 = new TSpr2();
_TInDoc1 = new TInDoc1(ref _TSpr1);
_TInDoc2 = new TInDoc2(ref _TSpr1, ref _TSpr2);
//_TOutDoc1 = new TOutDoc1();
}
private void сToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private bool CreateWorkForm(string sNameForm, string sClassName)
{
WorkForm newf;
//object a = switch (sClassName)
{
case "Spr1":
newf = new WorkForm((IDocuments)_TSpr1);
break;
case "Spr2":
newf = new WorkForm((IDocuments)_TSpr2);
break;
case "InDoc1":
newf = new WorkForm((IDocuments)_TInDoc1);
break;
case "InDoc2":
newf = new WorkForm((IDocuments)_TInDoc2);
break;
/*case "OutDoc1":
newf = new WorkForm((IDocuments)_TOutDoc1);
break;*/
default:
newf = new WorkForm();
break;
}
newf.Text = sNameForm;
newf.MdiParent = this;
newf.Show();
return true;
}
private void MainTreeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
for (int i = this.MdiChildren.Length - 1; i >= 0; i--)
{
if (MdiChildren[i].Text == e.Node.Text)
{
MdiChildren[i].Activate();
return;
}
}
string[] sClassName = e.Node.Name.Split('_');
bool bFormOpen = (e.Node.Parent != null) ? CreateWorkForm(e.Node.Text, sClassName[1]) : false;
}
}
}
Код первого справочника (Как пример).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.IO;
using System.Windows.Forms;
namespace Praktika
{
class TSpr1 : IDocuments
{
// Переменные определяющие возможность // добавления изменения и удаления
bool _bAdd, _bChange, _bDell;
string _sTableName; // переменная содержит имя выводимой таблицы.
string _sTableView; //Имя представления для таблицы
string sDataPath; // Переменная определяющая путь к файлу с данными DataSet _DataSet;
DataTable _Table;
DataColumn _Column;
//интерфейс редактирования
private System.Windows.Forms.TextBox textBox_Height;
private System.Windows.Forms.TextBox textBox_Width;
private System.Windows.Forms.TextBox textBox_name;
private System.Windows.Forms.Label label_Height;
private System.Windows.Forms.Label label_Width;
private System.Windows.Forms.Label label_name;
// Свойстово возвращающее имя таблицы
public string sTableName
{
get { return _sTableName; }
}
public string sTableView
{
get { return _sTableView; }
}
// Свойство только для чтения возвращающее заначение // соответсвующей переменной
public bool bAdd
{
get { return _bAdd; }
}
public bool bChange
{
get { return _bChange; }
}
public bool bDell
{
get { return _bDell; }
}
// Конструктор класс где задаются значения переменных
public TSpr1()
{
_bAdd = true;
_bChange = true;
_bDell = true;
sDataPath = @"F:\praktika2013\Praktika\Praktika\Data\Spr1.dat";
_sTableName = "Spr1";
_sTableView = "Spr1";
InitDataTable(); // Вызов создания таблицы.
}
protected void InitDataTable()
{
//Создание хранилища данных
_DataSet = new DataSet();
// Создание таблицы.
_Table = new DataTable(_sTableName);
// Создание 1ой колонки id
_Column = new DataColumn(); // Создание объекта.
_Column.DataType = System.Type.GetType("System.Int32"); // параметр определяет тип _Column.ColumnName = "id"; // параметр определяет имя
_Column.AutoIncrement = true; // параметр определяет автоматическое прерощение
_Column.Caption = "№ п.п."; // параметр определяет заголовок столбца
_Column.ReadOnly = true; // параметр определяет возможность изменения
_Column.Unique = true; // параметр определяет уникальность
// Добавление колоноки в таблицу.
_Table.Columns.Add(_Column);
// Создание 2ой колонки Name
_Column = new DataColumn();
_Column.DataType = System.Type.GetType("System.String");
_Column.ColumnName = "Name";
_Column.AutoIncrement = false;
_Column.Caption = "Наименование";
_Column.ReadOnly = false;
_Column.Unique = false;
// Добавление колоноки в таблицу.
_Table.Columns.Add(_Column);
// Создание 3ей колонки Width
_Column = new DataColumn();
_Column.DataType = System.Type.GetType("System.Int32");
_Column.ColumnName = "Width";
_Column.AutoIncrement = false;
_Column.Caption = "Ширина";
_Column.ReadOnly = false;
_Column.Unique = false;
// Добавление колоноки в таблицу.
_Table.Columns.Add(_Column);
// Создание 4ой колонки Height
_Column = new DataColumn();
_Column.DataType = System.Type.GetType("System.Int32");
_Column.ColumnName = "Height";
_Column.AutoIncrement = false;
_Column.Caption = "Высота";
_Column.ReadOnly = false;
_Column.Unique = false;
// Добавление колоноки в таблицу.
_Table.Columns.Add(_Column);
// Добавление таблицы в хранилище
_DataSet.Tables.Add(_Table);
}
//Считывание обновление данных
public DataSet RefreshData()
{
DataRow _Row;
_Table.Rows.Clear();
using (StreamReader _reader = new StreamReader(sDataPath))
{
string _sTempString = string.Empty;
while (_reader.Peek() > -1)
{
_sTempString = _reader.ReadLine();
String[] _sTempData = _sTempString.Split(new char[] { '^' });
_Row = _Table.NewRow();
_Row["id"] = Convert.ToInt32(_sTempData[0]);
_Row["Name"] = _sTempData[1];
_Row["Width"] = Convert.ToInt32(_sTempData[2]);
_Row["Height"] = Convert.ToInt32(_sTempData[3]);
_Table.Rows.Add(_Row);
}
}
return _DataSet;
}
public void CreateInterfaceAddChange(ref Panel _PanelAC)
{
label_name = new System.Windows.Forms.Label();
textBox_name = new System.Windows.Forms.TextBox();
label_Width = new System.Windows.Forms.Label();
textBox_Width = new System.Windows.Forms.TextBox();
label_Height = new System.Windows.Forms.Label();
textBox_Height = new System.Windows.Forms.TextBox();
// // label_name
// label_name.AutoSize = true;
label_name.Location = new System.Drawing.Point(13, 13);
label_name.Name = "label_name";
label_name.Size = new System.Drawing.Size(83, 13);
label_name.TabIndex = 0;
label_name.Text = "Наименование";
// // textBox_name
// textBox_name.Location = new System.Drawing.Point(13, 30);
textBox_name.Name = "textBox_name";
textBox_name.Size = new System.Drawing.Size(180, 20);
textBox_name.TabIndex = 1;
// // label_Width
// label_Width.AutoSize = true;
label_Width.Location = new System.Drawing.Point(16, 57);
label_Width.Name = "label_Width";
label_Width.Size = new System.Drawing.Size(46, 13);
label_Width.TabIndex = 2;
label_Width.Text = "Ширина";
// // textBox_Width
// textBox_Width.Location = new System.Drawing.Point(13, 74);
textBox_Width.Name = "textBox_Width";
textBox_Width.Size = new System.Drawing.Size(180, 20);
textBox_Width.TabIndex = 3;
// // label_Height
// label_Height.AutoSize = true;
label_Height.Location = new System.Drawing.Point(13, 101);
label_Height.Name = "label_Height";
label_Height.Size = new System.Drawing.Size(45, 13);
label_Height.TabIndex = 4;
label_Height.Text = "Высота";
// // textBox_Height
// textBox_Height.Location = new System.Drawing.Point(13, 118);
textBox_Height.Name = "textBox_Height";
textBox_Height.Size = new System.Drawing.Size(180, 20);
textBox_Height.TabIndex = 5;
//
//расположение объектов //
_PanelAC.Controls.Add(textBox_Height);
_PanelAC.Controls.Add(label_Height);
_PanelAC.Controls.Add(textBox_Width);
_PanelAC.Controls.Add(label_Width);
_PanelAC.Controls.Add(textBox_name);
_PanelAC.Controls.Add(label_name);
}
public void DeleteInterfaceAddChange()
{
//удаление label
label_name.Dispose();
label_Height.Dispose();
label_Width.Dispose();
//удаление textbox
textBox_name.Dispose();
textBox_Height.Dispose();
textBox_Width.Dispose();
}
// Добавление в таблицу
public bool IsertIntoTable()
{
try
{
DataRow _Row;
_Row = _Table.NewRow();
_Row["id"] = Convert.ToInt32(_Table.Rows.Count + 1);
_Row["Name"] = textBox_name.Text;
_Row["Width"] = Convert.ToInt32(textBox_Width.Text);
_Row["Height"] = Convert.ToInt32(textBox_Height.Text);
_Table.Rows.Add(_Row);
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
return false;
}
}
// Запись данных в файл
public bool CommitDATA()
{
try
{
using (StreamWriter _writer = new StreamWriter(sDataPath))
{
string _sTempString = string.Empty;
for (int i = 0; i < _Table.Rows.Count; i++)
{
_sTempString = _Table.Rows[i]["id"] + "^" +
_Table.Rows[i]["Name"] + "^" +
_Table.Rows[i]["Width"]+ "^" +
_Table.Rows[i]["Height"];
_writer.WriteLine(_sTempString);
_sTempString = string.Empty;
}
}
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
return false;
}
}
// загрузка значений в поля перед редактированием
public bool InitDataBeforeUpdate(int _RowValue)
{
try
{
for (int i = 0; i < _Table.Rows.Count; i++)
if (Convert.ToInt32(_Table.Rows[i]["id"]) == _RowValue)
{
textBox_name.Text = _Table.Rows[i]["Name"].ToString();
textBox_Width.Text = _Table.Rows[i]["Width"].ToString();
textBox_Height.Text = _Table.Rows[i]["Height"].ToString();
}
return true;
}
catch (Exception ex)
{
// MessageBox.Show(ex.ToString());
return false;
}
}
// изменение значений
public bool UpdateDataTable(int _RowValue)
{
try
{
for (int i = 0; i < _Table.Rows.Count; i++)
if (Convert.ToInt32(_Table.Rows[i]["id"]) == _RowValue)
{
_Table.Rows[i]["Name"] = textBox_name.Text;
_Table.Rows[i]["Width"] = Convert.ToInt32(textBox_Width.Text);
_Table.Rows[i]["Height"] = Convert.ToInt32(textBox_Height.Text);
}
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
return false;
}
}
public bool DeleteDataTable(int _RowValue)
{
try
{
for (int i = 0; i < _Table.Rows.Count; i++)
if (Convert.ToInt32(_Table.Rows[i]["id"]) == _RowValue)
{
_Table.Rows[i].Delete();
}
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
return false;
}
}
}
}
1
Документ
Категория
Рефераты
Просмотров
16
Размер файла
251 Кб
Теги
лабораторная работа, лаба, отчет, лабораторная
1/--страниц
Пожаловаться на содержимое документа