Дипломная работа: Автоматизация складских процессов предприятия ООО «АТОЛ»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
115
d = Directory.CreateDirectory(nameFold);
}
for (int j = 7; j <= sheetData.UsedRange.Rows.Count - 1; j++)//строки
{
if (sheetData.Cells[j, 1].value2 == null) continue; //нет порядкового
номера
документа
string numberDoc =Convert.ToString( sheetData.Cells[j, 1].Value2);
//////////////новый документ
Microsoft.Office.Interop.Excel.Workbook book = null;
Microsoft.Office.Interop.Excel.Workbooks excelappworkbooks = ap.Workbo
oks;
ap.Workbooks.Open(filename,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
book = excelappworkbooks[1];
Microsoft.Office.Interop.Excel.Worksheet sheet = book.Worksheets[1];
//////////////
for (int i = 2; i <= sheetData.UsedRange.Columns.Count - 3; i++)//коло
нки
{
string nameCol = sheetData.Cells[5, i].Value2 == null ? "": Convert.To
String(
sheetData.Cells[5, i].Value2);
if (nameCol == "") continue;
DataRow[] dr = bDDataSet1.Метки.Select("КодШаблона=" + sh.КодШаблона
+ " and Наименование='" + nameCol+"'");
if (dr == null || dr.Length == 0) continue;
BDDataSet.МеткиRow metka = ((BDDataSet.МеткиRow)dr[0]);
int vidMetka = metka.КодВидаМетки;
//ищем нужную метку
foreach (Microsoft.Office.Interop.Excel.Name b in ap.Names)
{
if (b.Name.Equals(nameCol))
{
//тест или число
if (vidMetka == 1)
{
b.RefersToRange.Value2 = sheetData.Cells[j, i].Value2 == null ? "" :
Convert.ToString(sheetData.Cells[j, i].Value2);
}
116
//текущая дата
if (vidMetka == 3) b.RefersToRange.Value2 =
DateTime.Now.ToShortDateString();
//текущее время
if (vidMetka == 4) b.RefersToRange.Value2 =
DateTime.Now.ToShortTimeString();
if (vidMetka == 2)
{
///вставляем таблицу
string[] s= metka.ЗаголовкиКолонок.Split('/');
int row = b.RefersToRange.Row;
int col = b.RefersToRange.Column;
int rowsCount =0;
int colCount = s.Length;
for (int k=j+1;k<=sheetData.UsedRange.Rows.Count-1;k++)
{
if (sheetData.Cells[k,1].Value2!=null)
{
rowsCount =( k - j);
break;
}
}
if (rowsCount == 0) rowsCount = sheetData.UsedRange.Rows.Count -
j+1;
////заголовки колонок
for (int c = 0; c <= colCount - 1;c++)
{
Microsoft.Office.Interop.Excel.Range rng =
(Microsoft.Office.Interop.Excel.Range)sheet.Cells[row, col+ c];
rng.Value2 = s[c];
rng.Borders[XlBordersIndex.xlInsideVertical].LineStyle =
Microsoft.Office.Interop.Excel.XlLineStyle.xlDot;
rng.Borders[XlBordersIndex.xlInsideHorizontal].LineStyle =
Microsoft.Office.Interop.Excel.XlLineStyle.xlDot;
rng.Borders[XlBordersIndex.xlEdgeRight].LineStyle =
Microsoft.Office.Interop.Excel.XlLineStyle.xlDot;
rng.Borders[XlBordersIndex.xlEdgeLeft].LineStyle =
Microsoft.Office.Interop.Excel.XlLineStyle.xlDot;
}
////строки таблицы
for (int r = 0; r <= rowsCount - 1; r++)
{
//вставляем строку, так как под меткой таблицы ниже могут быть
117
данные и большая таблица может их перетересть
Microsoft.Office.Interop.Excel.Range Line =
(Microsoft.Office.Interop.Excel.Range)sheet.Rows[row + 1 + r];
Line.Insert();
for (int m = 0; m <= colCount - 1; m++)
{
Microsoft.Office.Interop.Excel.Range rng =
(Microsoft.Office.Interop.Excel.Range)sheet.Cells[row + r + 1, m + col]
;
rng.Value2 = sheetData.Cells[j + r, i + m].Value2==null? "":
Convert.ToString( sheetData.Cells[j+r,i+m].Value2 );
rng.Borders[XlBordersIndex.xlInsideVertical].LineStyle =
Microsoft.Office.Interop.Excel.XlLineStyle.xlDot;
rng.Borders[XlBordersIndex.xlInsideHorizontal].LineStyle =
Microsoft.Office.Interop.Excel.XlLineStyle.xlDot;
rng.Borders[XlBordersIndex.xlEdgeRight].LineStyle =
Microsoft.Office.Interop.Excel.XlLineStyle.xlDot;
rng.Borders[XlBordersIndex.xlEdgeLeft].LineStyle =
Microsoft.Office.Interop.Excel.XlLineStyle.xlDot;
}
}
}
}
}
}
//колонтитулы
sheet.PageSetup.CenterFooter = sheetData.Cells[2, 3].value2 == null ?
"" :
sheetData.Cells[2, 3].value2; ;
sheet.PageSetup.CenterHeader = sheetData.Cells[1, 3].value2==null? "":
sheetData.Cells[1, 3].value2; ;
//сохраняем документ
book.SaveAs(d.FullName + @"\" + numberDoc + ".xlsx");
book.Close();
if (checkBox1.Checked && sheetData.Cells[j,
sheetData.UsedRange.Columns.Count-2].Value2 != null)
{
string email = sheetData.Cells[j, sheetData.UsedRange.Columns.Count -
2].Value2 == null ? "" : Convert.ToString(sheetData.Cells[j, sheetData.
UsedRange.Columns.Count -
2].Value2);
string tema = sheetData.Cells[j, sheetData.UsedRange.Columns.Count -
1].Value2 == null ? "" : Convert.ToString(sheetData.Cells[j, sheetData.
UsedRange.Columns.Count -
118
1].Value2);
string text = sheetData.Cells[j, sheetData.UsedRange.Columns.Count ].V
alue2
== null ? "" : Convert.ToString(sheetData.Cells[j, sheetData.UsedRange.
Columns.Count ].Value2);
ClassEmail.SendMail("smtp.mail.ru", "test-diplom-
2017@mail.ru", "test2017",
email, tema, text, d.FullName + @"\" + numberDoc + ".xlsx");
}
}
ap.Quit();
apData.Quit();
return d.FullName;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e
)
{
if (comboBox1.SelectedItem == null)
{ return; }
// получаем выбранный шаблон
sh =
(BDDataSet.ШаблонСтипомRow)((DataRowView)comboBox1.SelectedItem).Row;//
;
comboBox1.SelectedItem;
if (sh == null) return;
tableLayoutPanel1.Controls.Clear();
label2.Visible = true;
label3.Visible = true;
label4.Visible = true;
label5.Visible = true;
button2.Visible = true;
button4.Visible = true;
button3.Visible = true;
textBox1.Visible = true;
textBox2.Visible = true;
//получаем его метки
BDDataSet.МеткиDataTable m =
меткиTableAdapter.GetDataByКодШаблона(sh.КодШаблона);
if (m != null && m.Rows.Count > 0)
{
tableLayoutPanel1.RowCount = m.Count;
dict = new Dictionary<BDDataSet.МеткиRow, Control>();
119
int i = 0;
foreach (BDDataSet.МеткиRow metka in m)
{
//текст или число
if (metka.КодВидаМетки == 1)
{
System.Windows.Forms.Label lab = new System.Windows.Forms.Label();
lab.Text = metka.Наименование;
System.Windows.Forms.TextBox text = new
System.Windows.Forms.TextBox();
text.Name = "m" + metka.КодМетки;
text.Tag = metka;
text.Width = 350;
tableLayoutPanel1.Controls.Add(lab);
tableLayoutPanel1.Controls.Add(text);
dict.Add(metka, text);
i++;
}
///Тип метки -таблица
if (metka.КодВидаМетки == 2)
{
System.Windows.Forms.Label lab = new System.Windows.Forms.Label();
lab.Text = metka.Наименование;
DataGrid dgv = new DataGrid();
System.Data.DataTable dt = new System.Data.DataTable();
string[] ss = metka.ЗаголовкиКолонок.Split('/');
if (ss != null && ss.Count() > 0)
{
foreach (string s in ss)
{
dt.Columns.Add(s);
}
}
dgv.Width = 350;
dgv.Height = 250;
dict.Add(metka, dgv);
dgv.DataSource = dt;
tableLayoutPanel1.Controls.Add(lab);
tableLayoutPanel1.Controls.Add(dgv);
i++;
}
//ти метки - текущая дата или время
if (metka.КодВидаМетки == 3 || metka.КодВидаМетки == 4)
{
Источник: https://baza.diplomsite.ru/previewfile/594