Дипломная работа: Автоматизация услуг почтовой связи для Почты России

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
109
chartArea1.ShadowColor = System.Drawing.Color.Transparent;
this.chart3.ChartAreas.Add(chartArea1);
this.BackColor = System.Drawing.Color.White;
this.ResumeLayout(false);
}
Метод DataForGraf () обращается к БД и достает данные для графика.
Листинг 1.12. Метод DataForGraf()
private void DataForGraf()
{
// Populate series data
SqlCommand command = new SqlCommand("SELECT
right(convert(varchar, Month, 106), 8) AS Месяц, SUM(Sum) AS Сумма FROM DZ
GROUP BY Month ORDER BY Month", sqlConnection);
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = command;
da.Fill(ds, "DZ");
List<string> axisLabel = new List<string>();
string sdf = "";
for (int pointIndex = 0; pointIndex < ds.Tables[0].Rows.Count;
pointIndex++)
{
chart3.Series["Series1"].Points.AddY(ds.Tables[0].Rows[pointIndex][1]);
chart3.ChartAreas[0].AxisX.Title = "Месяц";
chart3.ChartAreas[0].AxisY.Title = "Сумма";
chart3.Series["Series1"].Points[pointIndex].AxisLabel =
ds.Tables[0].Rows[pointIndex][0].ToString();
}
UpdateChartSettings();
}
110
Метод checkedListBox1_SelectedIndexChanged () считывает выбранные
поля и перестраивает таблицу, по выбранным полям.
Листинг 1.13. Метод checkedListBox1_SelectedIndexChanged()
private void checkedListBox1_SelectedIndexChanged(object sender,
EventArgs e)
{
string namesColumns = null;
string namesColumnsGROUP = null;
columnSelection(0, 1);
columnSelection(1, 2);
columnSelection(2, 3);
columnSelection(3, 4);
columnSelection(4, 5);
columnSelection(5, 6);
columnSelection(6, 8);
columnSelection(7, 9);
columnSelection(8, 10);
columnSelection(9, 12);
columnSelection(10, 13);
foreach (int indexChecked in checkedListBox1.CheckedIndices)
{
namesColumns += listColumns[indexChecked];
}
foreach (int indexChecked in checkedListBox1.CheckedIndices)
{
namesColumnsGROUP += listColumnsInDZ[indexChecked];
}
//перестраиваем таблицу
string MonthName = comboBoxMonth2.SelectedValue.ToString();
111
SqlCommand command = new SqlCommand("SELECT " +
namesColumns.Remove(namesColumns.Length - 2) + ", Replace(Format(SUM(Sum),
'N'),',',' ') AS Сумма FROM DZ WHERE Month='" + MonthName + "' GROUP BY "
+ namesColumnsGROUP.Remove(namesColumnsGROUP.Length - 2) + " ",
sqlConnection);//создаем новый запрос к БД без указанных полей
command.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = command;
da.Fill(ds, "DZ");
dataGridView1.DataSource = ds.Tables[0];
double balans = 0;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
double incom;
double.TryParse(row.Cells[7].Value.ToString().Replace(".", ","), out
incom);
balans += incom;//пересчитываем сумму
}
NumberFormatInfo nfi = new NumberFormatInfo();
nfi.NumberGroupSeparator = " ";
textBox1.Text = balans.ToString("N", nfi);
}
Метод AddComment () отвечает за интеграцию комментариев в базу
данных из Excel файла.
Листинг 1.14. Метод AddComment()
private void AddComment(object sender, EventArgs e)
{
OpenFileDialog ope = new OpenFileDialog();
ope.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
112
if (ope.ShowDialog() == DialogResult.Cancel)
return;
DataTable table = LoadExcelSheetToTable(ope.FileName, "Лист1");
foreach (DataRow row in table.Rows)
{
SqlCommand command = new SqlCommand("UPDATE DZ SET
Comment=@Comment WHERE Id=@Id", sqlConnection);
command.Parameters.AddWithValue("Id",
Convert.ToString(row[0]));
command.Parameters.AddWithValue("Comment",
Convert.ToString(row[13]));
command.ExecuteNonQuery();
}
MessageBox.Show(
"Комментарии успешно импортированы. " + "\n" + "Обновлено "
+ table.Rows.Count + " записей",
"Сообщение",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
Form1_Load(sender, e);
}
Метод makePDF () создает уведомление в формате pdf.
Листинг 1.15. Метод makePDF()
public void makePDF(string Name, string NumberOfContract, string
ContractDate, string Sum)
{
113
string existingFile =
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
"file1.pdf");//указываем шаблон
string newFile =
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
Name+".pdf");//указываем путь и название нового файла
PdfReader reader = new PdfReader(existingFile);//читаем pdf
byte[] bytes;
using (MemoryStream ms = new MemoryStream())//создаем поток
{
using (PdfStamper stamper = new PdfStamper(reader, ms))
{
PdfContentByte cb = stamper.GetOverContent(1);//записываем
даные поверх шаблона
ColumnText ct = new ColumnText(cb);//разметка с помощью
ColumnText
ColumnText ct1 = new ColumnText(cb);
ColumnText ct2 = new ColumnText(cb);
ColumnText ct3 = new ColumnText(cb);
ct.SetSimpleColumn(100, 100, 563, 563);//располагаем
ct.AddElement(new Paragraph(NumberOfContract));//добавляем
текст
ct1.SetSimpleColumn(380, 380, 563, 563);
ct1.AddElement(new Paragraph(ContractDate));
ct2.SetSimpleColumn(335, 335, 540, 540);
ct2.AddElement(new Paragraph(Sum));
ct3.SetSimpleColumn(380, 380, 800, 800);
ct3.AddElement(new Paragraph(Name));
ct.Go();
ct1.Go();
Источник: https://baza.diplomsite.ru/previewfile/2349