1. Фаулер, М. UML. Основы / М. Фаулер, К. Скотт – СПб.: Символ-Плюс, 2002. – 192с., ил.
2. Дэйт, К. Дж. Введение в системы баз данных. – СПб.: Питер, 1999. – 318 с., ил.
3. Леоненков, А. Самоучитель UML. Эффективный инструмент моделирования информационных систем – BHV – Санкт-перербург, 2001.- 304 с.
4. Буч, Г. Язык UML. Руководство пользователя: пер. с англ. / Г. Буч, Д. Рамбо, И. Якобсон – 2-е изд. – М: ДМК Пресс, 2007. – 496с.
5. Брайант, Р. Дэвид. Компьютерные системы: архитектура и программирование. Взгляд программиста: пер. с англ. / Р. Дэвид Брайант, О. Халларон; – СПб.: БХВ-Петербург, 2005. – 1104 с.
6. Орлов, С. А. Технологии разработки программного обеспечения: Разработка сложных программных систем: учеб. пособие / С. А. Орлов. – 2-е изд. – СПб: Питер, 2003. – 480 с.
7. Проектирование и реализация баз данных Microsoft SQL Server 2000. Учебный курс MCAD/MCSE, MCDBA/Пер. с англ. – 2-еизд., испр. – М.: Русская Редакция,2003. – 512 стр.: ил.
8. Ржеуцкая С.Ю. Базы данных. Язык SQL: учеб. пособие / С.Ю. Ржеуцкая. – Вологда: ВоГТУ, 2010. – 159 с.
9. Троелсен, Э. Язык программирования С# 5.0 и платформа.NET 4.5, 6-е изд.: Пер. с англ. – М.: ООО «И.Д. Вильямс», 2013. – 1312 с.: ил. – Парал. тит. англ.
10. Постановление Министерства здравоохранения Республики Беларусь № 59 об утверждении Санитарных норм и правил «Требования при работе с видеодисплейными терминалами и электронно-вычислительными машинами», Гигиенического норматива «Предельно-допустимые уровни нормируемых параметров при работе с видеодис-плейными терминалами и электронно-вычислительными машинами» и признании утратившими силу постановлений Главного государственного санитарного врача Рес-публики Беларусь от 10 ноября 2000 г. № 53 и от 30 мая 2006 г. № 70, отдельного структурного элемента постановления Министерства здравоохранения Республики Беларусь от 28 июня 2013 г.
11. Мюллер, Ск. Модернизация и ремонт ПК, 15-е юбилейное издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2004. – 1344 с.: ил. – Парал. тит. англ.
Приложение А
Код формирования таблиц в SQL:
CREATE TABLE Продукция (
Продукт_ID int IDENTITY(1,1) NOT NULL,
Наименование nvarchar(50) NOT NULL,
Описание nvarchar(300),
Белки real,
Жиры real,
Углеводы real,
Энерг_ценность int,
Масса real,
Срок_хранения int,
Цена int);
GO
CREATE TABLE Сырье (
Сырье_ID int IDENTITY(1,1) NOT NULL,
Наименование nvarchar(100) NOT NULL,
Количество int NOT NULL,
КодЕдИзм int);
GO
CREATE TABLE Рецептура (
Продукт_ID int NOT NULL,
Сырье_ID int NOT NULL,
Рецепт_ID int IDENTITY(1,1) NOT NULL,
Количество real NOT NULL,
КодЕдИзм int);
GO
CREATE TABLE Реализованная_продукция (
Количество int NOT NULL,
Дата_изготовления datetime,
Продукт_ID int NOT NULL,
Реализ_продукиия_ID int IDENTITY(1,1) NOT NULL,
КодЕдИзм int,
Стоимость int);
GO
CREATE TABLE ЕдИзм (
КодЕдИзм int IDENTITY(1,1) NOT NULL,
НаимЕдИзм nvarchar(50));
GO
Продолжение приложения А
ALTER TABLE Продукция ADD CONSTRAINT PK_Продукция
PRIMARY KEY CLUSTERED (Продукт_ID);
GO
ALTER TABLE Сырье ADD CONSTRAINT PK_Сырье
PRIMARY KEY CLUSTERED (Сырье_ID);
GO
ALTER TABLE Рецептура ADD CONSTRAINT PK_Рецептура
PRIMARY KEY CLUSTERED (Рецепт_ID);
GO
ALTER TABLE Реализованная_продукция ADD CONSTRAINT PK_Реализованная_продукция
PRIMARY KEY CLUSTERED (Реализ_продукция_ID);
GO
ALTER TABLE ЕдИзм ADD CONSTRAINT PK_ЕдИзм
PRIMARY KEY CLUSTERED (КодЕдИзм);
GO
ALTER TABLE Реализованная_продукция ADD CONSTRAINT FK_РеалПрод_Прод
FOREIGN KEY (Продукт_ID) REFERENCES Продукция (Продукт _ID);
GO
ALTER TABLE Реализованная_продукция ADD CONSTRAINT FK_РеалПрод_Прод
FOREIGN KEY (КодЕдИзм) REFERENCES КдИзм (КодЕдИзм);
GO
ALTER TABLE Рецептура ADD CONSTRAINT FK_Рецепт_Прод
FOREIGN KEY (Продукт_ID) REFERENCES Продукция (Продукт _ID);
GO
ALTER TABLE Рецептура ADD CONSTRAINT FK_Рецепт_Сырье
FOREIGN KEY (Сырье_ID) REFERENCES Сырье (Сырье_ID);
GO
ALTER TABLE Рецептура ADD CONSTRAINT FK_Рецепт_ЕдИзм
FOREIGN KEY (КодЕдИзм) REFERENCES ЕдИзм (КодЕдИзм);
GO
ALTER TABLE Рецептура ADD CONSTRAINT FK_Сырье_ЕдИзм
FOREIGN KEY (КодЕдИзм) REFERENCES ЕдИзм (КодЕдИзм)
Приложение Б
Фрагмент кода для вывода документа «Ассортимент продукции»:
private void btnAssort_Click(object sender, EventArgs e) {
using(DocX doc = DocX.Create("Ассортимент.docx")) {
Paragraph title = doc.InsertParagraph();
title.Append("Ассортимент").Font(new FontFamily("Times New Roman")).FontSize(14).Bold();
title.Alignment = Alignment.center;
doc.InsertParagraph();
DataTable dt = DALClass.GetAssortProd();
Table tblProd = doc.AddTable(dt.Rows.Count+1, dt.Columns.Count);
tblProd.AutoFit = AutoFit.Contents;
string p = "";
for (int j = 0; j < dt.Rows.Count; j++) {
for (int i = 0; i < dt.Columns.Count; i++) {
if (j == 0) {
p = dt.Columns[i].ColumnName;
tblProd.Rows[j].Cells[i].Paragraphs.First().Append(p).FontSize(9).Alignment = Alignment.center;
p = dt.Rows[j][i].ToString();
tblProd.Rows[j+1].Cells[i].Paragraphs.First().Append(p).FontSize(9).Alignment = Alignment.center;
}
else {
p = dt.Rows[j][i].ToString();
tblProd.Rows[j+1].Cells[i].Paragraphs.First().Append(p).FontSize(9).Alignment = Alignment.center;
}
}
}
doc.InsertTable(tblProd);
doc.Save();
Process.Start("WINWORD.EXE", "Ассортимент.docx");
}
}
Приложение В
Фрагмент кода для вывода документа «Рецептура продукта»:
private void btnDoc_Click(object sender, EventArgs e) {
using (DocX doc = DocX.Create("Product.docx")) {
try {
Paragraph title = doc.InsertParagraph();
title.Append("Продукт ").Font(new FontFamily("Times New Roman")).FontSize(14);
title.Append(cbxNewProd.Text).Font(new FontFamily("Times New Roman")).FontSize(14).Italic();
title.Alignment = Alignment.center;
doc.InsertParagraph();
Paragraph tlN = doc.InsertParagraph();
tlN.Append("Наименование: " + tbxName.Text).Font(new FontFamily("Times New Roman")).FontSize(11);
Paragraph tlD = doc.InsertParagraph();
tlD.Append("Описание: " + tbxDescription.Text).Font(new FontFamily("Times New Roman")).FontSize(11);
Paragraph tlFV = doc.InsertParagraph();
tlFV.Append("Пищевая ценность на 100 г. продукта: белки: " + tbxProtein.Text + " г.; жиры: " + tbxFat.Text + " г.; углеводы: " + tbxCarb.Text + " г.").Font(new FontFamily("Times New Roman")).FontSize(11);
Paragraph tlFV1 = doc.InsertParagraph();
tlFV1.Append("Белки: " + tbxProtein.Text + " г.; жиры: " + tbxFat.Text + " г.; углеводы: " + tbxCarb.Text + " г.").Font(new FontFamily("Times New Roman")).FontSize(11);
Paragraph tlEV = doc.InsertParagraph();
tlEV.Append("Энергетическая ценность: " + tbxEnValue.Text + " ккал").Font(new FontFamily("Times New Roman")).FontSize(11);
Paragraph tlM = doc.InsertParagraph();
tlM.Append("Масса: " + tbxMass.Text + " кг.").Font(new FontFamily("Times New Roman")).FontSize(11);
Paragraph tlSL = doc.InsertParagraph();
tlSL.Append("Срок хранения: " + tbxShelfLife.Text + " ч.").Font(new FontFamily("Times New Roman")).FontSize(11);
Paragraph tlSC = doc.InsertParagraph();
tlSC.Append("Цена: " + tbxPrice.Text + " р.").Font(new FontFamily("Times New Roman")).FontSize(11);
doc.InsertParagraph();
Продолжение приложения В
Table tblRep = doc.AddTable(dgvRepice.RowCount + 1, dgvRepice.ColumnCount-2);
tblRep.AutoFit = AutoFit.Contents;
Paragraph tlr = doc.InsertParagraph();
tlr.Append("Рецептура").Font(new FontFamily("Times New Roman")).FontSize(11).Bold();
string p = "";
if (dgvRlzdProd.RowCount!= 0) {
for (int j = 0; j < dgvRepice.RowCount; j++) {
for (int i = 0; i < dgvRepice.ColumnCount-2; i++) {
if (j == 0) {
p = dgvRepice.Columns[i].HeaderText.ToString();
tblRep.Rows[j].Cells[i].Paragraphs.First().Append(p).Font(new FontFamily("Times New Roman")).FontSize(11).Alignment = Alignment.center;
p = dgvRepice[i, j].FormattedValue.ToString();
tblRep.Rows[j + 1].Cells[i].Paragraphs.First().Append(p).Font(new FontFamily("Times New Roman")).FontSize(11).Alignment = Alignment.center;
}
else {
p = dgvRepice[i, j].FormattedValue.ToString();
tblRep.Rows[j + 1].Cells[i].Paragraphs.First().Append(p).Font(new FontFamily("Times New Roman")).FontSize(11).Alignment = Alignment.center;
}
}
}
doc.InsertTable(tblRep);
}
else {
Paragraph tlerp = doc.InsertParagraph();
tlerp.Append("У продукта отсутствует рецептура").Font(new FontFamily("Times New Roman")).FontSize(11).Italic(); }
doc.Save();
Process.Start("WINWORD.EXE", "Product.docx"); }
catch {
MessageBox.Show("Продукт не выбран");
return; }
}
Приложение Г
Фрагмент кода для вывода документа «Отчет о реализуемой продукции»:
private void btnDoc_Click(object sender, EventArgs e)
{
dtpDate.CustomFormat = "dd_MM_yyyy";
dtpDate.Format = DateTimePickerFormat.Custom;
String date = dtpDate.Text;
using (DocX doc = DocX.Create("Отчет_за_"+date+".docx"))
{
Paragraph title = doc.InsertParagraph();
title.Append("Отчет").Font(new FontFamily("Times New Roman")).FontSize(14).Bold();
title.Alignment = Alignment.center;
dtpDate.CustomFormat = "dd.MM.yyyy";
dtpDate.Format = DateTimePickerFormat.Custom;
String DateInDocCentre = dtpDate.Text;
Paragraph title1 = doc.InsertParagraph();
title1.Append("о реализуемой продукции за " + DateInDocCentre + " г.").Font(new FontFamily("Times New Roman")).FontSize(14).Bold();
title1.Alignment = Alignment.center;
doc.InsertParagraph();
DataTable dt = DALClass.GetRlzdProdForDay(DateInDocCentre);
Table tblRlzdProdForDay = doc.AddTable(dt.Rows.Count + 1, dt.Columns.Count);
tblRlzdProdForDay.AutoFit = AutoFit.Contents;
tblRlzdProdForDay.Design = TableDesign.TableGrid;
string p = "";
if (dt.Rows.Count!= 0)
{
for (int j = 0; j < dt.Rows.Count; j++)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
if (j == 0)
{
p = dt.Columns[i].ColumnName;
tblRlzdProdForDay.Rows[j].Cells[i].Paragraphs.First().Append(p).FontSize(11).Alignment = Alignment.center;
tblRlzdProdForDay.Rows[j].Cells[i].Paragraphs.First().Bold();
p = dt.Rows[j][i].ToString();
Продолжение приложения Г
tblRlzdProdForDay.Rows[j + 1].Cells[i].Paragraphs.First().Append(p).FontSize(11).Alignment = Alignment.center;
}
else
{
p = dt.Rows[j][i].ToString();
tblRlzdProdForDay.Rows[j + 1].Cells[i].Paragraphs.First().Append(p).FontSize(11).Alignment = Alignment.center;
}
}
}
int sumStoim = 0;
for (int j = 0; j < dt.Rows.Count; j++)
{
sumStoim += Convert.ToInt32(dt.Rows[j][3].ToString());
}
doc.InsertTable(tblRlzdProdForDay);
doc.InsertParagraph();
Paragraph tlsumStoim = doc.InsertParagraph();
tlsumStoim.Append("Итого: ").Font(new FontFamily("Times New Roman")).FontSize(11).Bold();
tlsumStoim.Append(sumStoim.ToString() + " р.").Font(new FontFamily("Times New Roman")).FontSize(11).Alignment = Alignment.right;
tlsumStoim.Bold();
}
else
{
Paragraph tlerp = doc.InsertParagraph();
tlerp.Append("В этот день продукция не реализовывалась.").Font(new FontFamily("Times New Roman")).FontSize(11).Italic();
}
doc.Save();
Process.Start("WINWORD.EXE", "Отчет_за_"+date+".docx");
}
}
Приложение Д