Пауэрс, Л. MicrosoftVisualStudio 2008 /Л. Пауэрс, М. Снелл. -СПб.: БХВ-Питербург, 2009.-1200 с.
Разработка приложений на основе Microsoft SQL Server 2008: Эндрю Дж. Браст, Стивен Форте - Москва, Русская Редакция, 2007. - 880 с.
Рекс, Б. Ключевые процессы тестирования. Планирование, подготовка, проведение, совершенствование / Б. Рекс. - Санкт-Перебург: Лори, 2006. - 544 с.
Рихтер. Дж. Via C#. Программирование на платформе Microsoft .NET Framework 2.0 на языке С#. Мастер-класс. / Дж. Рихтер. - СПб. : Питер, - 2007. - 656 стр.
Рогачев, С. Обобщенный Model-View-Controller / С,Рогачев. - Москва: Знание, 2007.
Хаф, Л. Проектирование информационных систем. / Л. Хаф. - Москва: Бином, 2006 - 728 с.
Фримен,А. ASP.NET 4.5 с примерами на C# 5.0 для профессионалов, 5-е издание = Pro ASP.NET 4.5 in C#, 5th Edition. - М.: «Вильямс» <http://ru.wikipedia.org/w/index.php?title=%D0%92%D0%B8%D0%BB%D1%8C%D1%8F%D0%BC%D1%81_%28%D0%B8%D0%B7%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE%29&action=edit&redlink=1>, 2014. - 1120 с.
Фримен,А.
ASP.NET MVC 4 с примерами на C# 5.0 для профессионалов, 4-е издание = Pro
ASP.NET MVC 4, 4th edition. - М.: «Вильямс», 2013. - 688 с.
Приложение А
Скрипт создания базы данных
CREATE TABLE ГотоваяПродукция
(
Код integer NOT NULL ,
КодДетали integer NULL ,
Значение integer NULL ,
Датаdatetime NULL ,
ТипОперации integer NULL
)TABLE ГотоваяПродукцияCONSTRAINT XPKГотоваяПродукция PRIMARY KEY CLUSTERED (Код ASC)TABLE График
(
КодПродразделения integer NULL ,
КодДетали integer NULL ,integer NOT NULL ,
Датаdatetime NULL ,
Значение integer NULL
)TABLE ГрафикCONSTRAINT XPKГрафик PRIMARY KEY CLUSTERED (ID ASC)TABLE Детали
(
КодДетали integer NOT NULL ,
Наименованиеvarchar(20) NULL ,
План integer NULL ,
Лимит integer NULL
)TABLE ДеталиCONSTRAINT XPKДетали PRIMARY KEY CLUSTERED (КодДетали ASC)TABLE Материалы
(
КодМатериала integer NOT NULL ,
Наименованиеvarchar(20) NULL ,
Лимит integer NULL
)TABLE МатериалыCONSTRAINT XPKМатериалы PRIMARY KEY CLUSTERED (КодМатериала ASC)TABLE Нормы
(
КодНормы integer NOT NULL ,
Наименованиеvarchar(20) NULL ,
ЧистыйВес integer NULL ,
Норма integer NULL ,
Ширина integer NULL ,
Длина integer NULL ,
Высота integer NULL ,
КодДетали integer NULL ,
КодМатериала integer NULL
)TABLE НормыCONSTRAINT XPKНормы PRIMARY KEY CLUSTERED (КодНормы ASC)TABLE Подразделения
(
КодПродразделения integer NOT NULL ,
Наименованиеvarchar(20) NULL
)TABLE ПодразделенияCONSTRAINT XPKПодразделения PRIMARY KEY CLUSTERED (КодПродразделения ASC)TABLE Пользователи
(integer NOT NULL ,(20) NULL ,varchar(20) NULL ,integer NULL
)TABLE ПользователиCONSTRAINT XPKПользователи PRIMARY KEY CLUSTERED (Id ASC)TABLE ТМЦ
(
КодТМЦ integer NOT NULL ,
КодМатериала integer NULL ,
Наличие integer NULL ,
Лимит integer NULL ,
Тип_операцииvarchar(20) NULL ,
Значение integer NULL
)TABLE ТМЦCONSTRAINT
XPKТМЦ
PRIMARY KEY CLUSTERED (КодТМЦ
ASC)TABLE ГотоваяПродукцияCONSTRAINT
R_6 FOREIGN KEY (КодДетали)
REFERENCES Детали(КодДетали)DELETE
NO ACTIONUPDATE NO ACTIONTABLE ГрафикCONSTRAINT
R_7 FOREIGN KEY (КодПродразделения)
REFERENCES Подразделения(КодПродразделения)DELETE
NO ACTIONUPDATE NO ACTIONTABLE ГрафикCONSTRAINT
R_8 FOREIGN KEY (КодДетали)
REFERENCES Детали(КодДетали)DELETE
NO ACTIONUPDATE NO ACTIONTABLE НормыCONSTRAINT
R_1 FOREIGN KEY (КодДетали)
REFERENCES Детали(КодДетали)DELETE
NO ACTIONUPDATE NO ACTIONTABLE НормыCONSTRAINT
R_2 FOREIGN KEY (КодМатериала)
REFERENCES Материалы(КодМатериала)DELETE
NO ACTIONUPDATE NO ACTIONTABLE ТМЦCONSTRAINT
R_4 FOREIGN KEY (КодМатериала)
REFERENCES Материалы(КодМатериала)DELETE
NO ACTIONUPDATE NO ACTION
ПриложениеБ
ЛистингSystem;.Collections.Generic;.Linq;.Web;.Web.UI;.Web.UI.WebControls;.Data.SqlClient;.Data;Monitoring
{_master_input : System.Web.UI.Page
{_Load(object sender, EventArgs e)
{
}()
{System.Configuration.ConfigurationManager.ConnectionStrings["MonitoringConnectionString"].ConnectionString;
}(string par1, string par2, string par3, string par4, string par5)
{connection = newSqlConnection(GetConnectionString());= string.Empty;= "INSERT INTO График " +
"(КодПродразделения, КодДетали, ID, Дата, Значение)" +
"VALUES (@par1,@par2,@par3,@par4,@par5)";
{.Open();= newSqlCommand(sqlStatement, connection);.Parameters.AddWithValue("@par1", par1);.Parameters.AddWithValue("@par2", par2);.Parameters.AddWithValue("@par3", par3);.Parameters.AddWithValue("@par4", par4);.Parameters.AddWithValue("@par5", par5);
;.CommandType = CommandType.Text;.ExecuteNonQuery();
}(SqlException ex)
{= "Insert Error:";+= ex.Message;(msg);
}
{.Close();
}
}Button1_Click(object sender, EventArgs e)
{= DateTime.Now;(Convert.ToString(DropDownList1.SelectedValue), Convert.ToString(DropDownList3.SelectedValue), TextBox1.Text, Convert.ToString(Calendar1.SelectedDate), TextBox2.Text);.Text = "";.Text = "";
}Button2_Click(object sender, EventArgs e)
{.Text = "";.Text = "";
}
}System;.Collections.Generic;.Linq;.Web;.Web.UI;.Web.UI.WebControls;.Data;.Data.SqlClient;Monitoring
{_ingener : System.Web.UI.Page
{_Load(object sender, EventArgs e)
{(!IsPostBack)
{("", "","", "");
}
}Button2_Click(object sender, EventArgs e)
{("", "", Convert.ToString(DropDownList1.SelectedValue), Convert.ToString(DropDownList2.SelectedValue));
}()
{System.Configuration.ConfigurationManager.ConnectionStrings["MonitoringConnectionString"].ConnectionString;
}
#region Bind GridView(stringsortExp, stringsortDir, string par1,string par2)
{= newDataTable();connection = newSqlConnection(GetConnectionString());
{.Open();= string.Empty;(par1!= string.Empty&& par2!= string.Empty )
{= "SELECT * FROM Нормы Where КодДетали = @par1 and КодМатериала=@par2";
}= "SELECT * FROM Нормы";= newSqlCommand(sqlStatement, connection);= newSqlDataAdapter(cmd);.Parameters.AddWithValue("@par1", par1);.Parameters.AddWithValue("@par2", par2);.CommandType = CommandType.Text;.ExecuteNonQuery();.Fill(dt);(dt.Rows.Count> 0)
{= newDataView();= dt.DefaultView;(sortExp != string.Empty)
{
// myDataView.Sort = string.Format("{0} {1}", sortExp, sortDir);
}.DataSource = myDataView;.DataBind();
}
}(SqlException ex)
{= "Fetch Error:";+= ex.Message;(msg);
}
{.Close();
}
}
#endregion
#region Insert New or Update Record(string par1, string par2, string par3, string par4, string par5, string par6, string par7, string par8, string par9, boolisUpdate)
{connection = newSqlConnection(GetConnectionString());= string.Empty;(!isUpdate)
{= "INSERT INTO Нормы" +
"(КодНормы, Наименование, ЧистыйВес, Норма, Ширина, Длина, Высота, КодДетали, КодМатериала)" +
"VALUES (@par1,@par2,@par3,@par4,@par5,@par6,@par7,@par8,@par9)";
}
{= "UPDATE Сотрудники " +
"SET КодНормы= @par1, Наименование= @par2, ЧистыйВес= @par3, Норма= @par4, Ширина= @par5, Длина= @par6, Высота= @par7, КодДетали= @par8, КодМатериала = @par9" +
" WHEREКодНормы= @par1";
}
try
{
connection.Open();
SqlCommandcmd = newSqlCommand(sqlStatement, connection);.Parameters.AddWithValue("@par1", par1);.Parameters.AddWithValue("@par2", par2);.Parameters.AddWithValue("@par3", par3);.Parameters.AddWithValue("@par4", par4);.Parameters.AddWithValue("@par5", par5);.Parameters.AddWithValue("@par6", par6);.Parameters.AddWithValue("@par7", par7);.Parameters.AddWithValue("@par8", par8);.Parameters.AddWithValue("@par9", par9);.CommandType = CommandType.Text;.ExecuteNonQuery();
}(SqlException ex)
{= "Insert/Update Error:";+= ex.Message;(msg);
}
{.Close();
}
}
#endregion
#region Delete Record(string ID)
{connection = newSqlConnection(GetConnectionString());= "DELETE FROM Норма WHERE КодНормы= @ID";
{.Open();= newSqlCommand(sqlStatement, connection);.Parameters.AddWithValue("@ID", ID);.CommandType = CommandType.Text;.ExecuteNonQuery();
}(SqlException ex)
{= "Deletion Error:";+=
ex.Message;(msg);
}
{.Close();
}
}
#endregionButton1_Click(object sender, EventArgs e)
{(TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text,.Text, TextBox6.Text, TextBox7.Text, Convert.ToString(DropDownList3.SelectedValue), Convert.ToString(DropDownList4.SelectedValue), false);
//Re Bind GridView to reflect changes made("", "", Convert.ToString(DropDownList1.SelectedValue), Convert.ToString(DropDownList2.SelectedValue));.Text = "";.Text = "";.Text = "";.Text = "";.Text = "";.Text = "";.Text = "";
}GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{.EditIndex = e.NewEditIndex; // turn to edit mode("", "", "", "");
}GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{.EditIndex = -1; //swicth back to default mode("", "", "", "");
}GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//Accessing Edited values from the GridViewID = GridView1.Rows[e.RowIndex].Cells[0].Text;par1 = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;par2 = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;par3 = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text;par4 = ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text;par5 = ((TextBox)GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text;par6 = ((TextBox)GridView1.Rows[e.RowIndex].Cells[6].Controls[0]).Text;par7 = ((TextBox)GridView1.Rows[e.RowIndex].Cells[7].Controls[0]).Text;par8 = ((TextBox)GridView1.Rows[e.RowIndex].Cells[7].Controls[0]).Text;(ID, par1, par2, par3, par4, par5, par6, par7,par8, true); // call update method.EditIndex = -1;("", "", par1, par2);
}GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{id = GridView1.Rows[e.RowIndex].Cells[0].Text; //get the id of the selected row(id);//call delete method("", "", "", "");
}GridView1_Sorting(object sender, GridViewSortEventArgs e)
{(e.SortExpression, ConvertSortDirectionToSql(e.SortDirection), "", "");
}(SortDirectionsortDirection)
{= String.Empty;(sortDirection)
{.Ascending:= "ASC";;.Descending:= "DESC";;
};
}
}
}System;.Collections.Generic;.Linq;.Web;.Web.UI;.Web.UI.WebControls;.Data;.Data.SqlClient;Monitoring
{_master : System.Web.UI.Page
{_Load(object sender, EventArgs e)
{(!IsPostBack)
{("", "", "", "");
}
}Button2_Click(object sender, EventArgs e)
{("", "", Convert.ToString(DropDownList1.SelectedValue), Convert.ToString(DropDownList2.SelectedValue));
}()
{System.Configuration.ConfigurationManager.ConnectionStrings["MonitoringConnectionString"].ConnectionString;
}
#region Bind GridView(stringsortExp, stringsortDir, string par1, string par2)
{= newDataTable();connection = newSqlConnection(GetConnectionString());
{.Open();= string.Empty;(par1 != string.Empty&& par2 != string.Empty)
{= "SELECT * FROM Нормы Where КодДетали = @par1 and КодМатериала=@par2";
}= "SELECT * FROM Нормы";= newSqlCommand(sqlStatement, connection);= newSqlDataAdapter(cmd);
.Parameters.AddWithValue("@par1", par1);.Parameters.AddWithValue("@par2", par2);.CommandType = CommandType.Text;.ExecuteNonQuery();.Fill(dt);(dt.Rows.Count> 0)
{= newDataView();= dt.DefaultView;(sortExp != string.Empty)
{
// myDataView.Sort = string.Format("{0} {1}", sortExp, sortDir);
}.DataSource = myDataView;.DataBind();
}
}(SqlException ex)
{= "Fetch Error:";+= ex.Message;(msg);
}
{.Close();
}
}
#endregionGridView1_Sorting(object sender, GridViewSortEventArgs e)
{(e.SortExpression, ConvertSortDirectionToSql(e.SortDirection), "", "");
}(SortDirectionsortDirection)
{= String.Empty;(sortDirection)
{.Ascending:= "ASC";;.Descending:= "DESC";;
};
}
}
}System;.Collections.Generic;.Linq;.Web;.Web.UI;.Web.UI.WebControls;.Data;.Data.SqlClient;Monitoring
{_ingener : System.Web.UI.Page
{_Load(object sender, EventArgs e)
{(!IsPostBack)
{("", "", "", "", "", "");
}
}Button2_Click(object sender, EventArgs e)
{("", "", Convert.ToString(DropDownList1.SelectedValue), TextBox1.Text, Convert.ToString(Calendar1.SelectedDate), Convert.ToString(Calendar2.SelectedDate));
}()
{System.Configuration.ConfigurationManager.ConnectionStrings["MonitoringConnectionString"].ConnectionString;
}
#region Bind GridView(stringsortExp, stringsortDir, string par1, string par2, string par3, string par4)
{= newDataTable();connection = newSqlConnection(GetConnectionString());
{.Open();= string.Empty;(par1 != string.Empty&& par2 != string.Empty)
{= "SELECT * FROM View_1 Where КодДетали = @par1 and Лимит =@par2 and Дата Between @par3 and @par4 ";
}= "SELECT * FROM View_1";= newSqlCommand(sqlStatement, connection);= newSqlDataAdapter(cmd);.Parameters.AddWithValue("@par1", par1);.Parameters.AddWithValue("@par2", par2);.Parameters.AddWithValue("@par3", par3);.Parameters.AddWithValue("@par4", par4);.CommandType = CommandType.Text;.ExecuteNonQuery();.Fill(dt);(dt.Rows.Count> 0)
{= newDataView();= dt.DefaultView;
(sortExp != string.Empty)
{
// myDataView.Sort = string.Format("{0} {1}", sortExp, sortDir);
}.DataSource = myDataView;.DataBind();
}
}(SqlException ex)
{= "Fetch Error:";+= ex.Message;(msg);
}
{.Close();
}
}
#endregionGridView1_Sorting(object sender, GridViewSortEventArgs e)
{(e.SortExpression, ConvertSortDirectionToSql(e.SortDirection), "", "", "", "");
}(SortDirectionsortDirection)
{= String.Empty;(sortDirection)
{.Ascending:= "ASC";;.Descending:= "DESC";;
}
;
}
}
}System;.Collections.Generic;.Linq;.Web;.Web.UI;.Web.UI.WebControls;.Data.SqlClient;.Data;Monitoring
{_kladovshik_add : System.Web.UI.Page
{_Load(object sender, EventArgs e)
{
}()
{System.Configuration.ConfigurationManager.ConnectionStrings["MonitoringConnectionString"].ConnectionString;
}(string par1, string par2, string par3, string par4, string par5)
{connection = newSqlConnection(GetConnectionString());= string.Empty;
sqlStatement = "INSERT INTO ГотоваяПродукция" +
"(Код, КодДетали, Значение, Дата, ТипОперации)" +
"VALUES (@par1,@par2,@par3,@par4,@par5)";
{.Open();= newSqlCommand(sqlStatement, connection);.Parameters.AddWithValue("@par1", par1);.Parameters.AddWithValue("@par2", par2);.Parameters.AddWithValue("@par3", par3);.Parameters.AddWithValue("@par4", par4);.Parameters.AddWithValue("@par5", par5);
;.CommandType = CommandType.Text;.ExecuteNonQuery();
}(SqlException ex)
{= "Insert Error:";+= ex.Message;(msg);
}
{.Close();
}
}Button1_Click(object sender, EventArgs e)
{= DateTime.Now;(TextBox1.Text, Convert.ToString(DropDownList3.SelectedValue), TextBox1.Text, Convert.ToString(curDate), "1");.Text = "";.Text = "";
}
}
}System;.Collections.Generic;.Linq;.Web;.Web.UI;.Web.UI.WebControls;.Data.SqlClient;.Data;Monitoring
{_kladovshik_minus : System.Web.UI.Page
{_Load(object sender, EventArgs e)
{
}
()
{System.Configuration.ConfigurationManager.ConnectionStrings["MonitoringConnectionString"].ConnectionString;
}(string par1, string par2, string par3, string par4, string par5)
{connection = newSqlConnection(GetConnectionString());= string.Empty;
sqlStatement = "INSERT INTO ГотоваяПродукция" +
"(Код, КодДетали, Значение, Дата, ТипОперации)" +
"VALUES
(@par1,@par2,@par3,@par4,@par5)";
{.Open();= newSqlCommand(sqlStatement, connection);.Parameters.AddWithValue("@par1", par1);.Parameters.AddWithValue("@par2", par2);.Parameters.AddWithValue("@par3", par3);.Parameters.AddWithValue("@par4", par4);.Parameters.AddWithValue("@par5", par5);
;.CommandType = CommandType.Text;.ExecuteNonQuery();
}(SqlException ex)
{= "Insert Error:";+= ex.Message;(msg);
}
{.Close();
}
}Button1_Click(object sender, EventArgs e)
{= DateTime.Now;(TextBox1.Text, Convert.ToString(DropDownList3.SelectedValue), TextBox1.Text, Convert.ToString(curDate), "0");.Text = "";.Text = "";
}
Button2_Click(object sender, EventArgs e)
{.Redirect("Product_kladovshik_report.aspx");
}
}
}