Диплом: Автоматизация электронного документооборота для компании ООО «СТАНКИ-РОССИИ»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
76
Приложение 3
Листинг основных классов приложения ElDoc
Класс docbase.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Drawing;
using System.Configuration;
using System.Data.OleDb;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;
namespace ELDoc
{
public class docbase
{
public string connection;
public SqlConnection con = new SqlConnection();
public string sql;
public string fiouser;
public int koduser;
public int kodsoob;
public int kodotcheta;
public string roleuser;
public int recordcount;
public int kodproject;
public Boolean myproject;
public string statusmaingrid = "parrent";
public string PathFileBase;
public string tekparol;
public docbase()
{
PathFileBase = "no";
string pathfile = Directory.GetCurrentDirectory() + "\\Path.inf";
if (File.Exists(pathfile))
{
try
{
FileStream fs = new FileStream(pathfile, FileMode.Open);
StreamReader sr = new StreamReader(fs, Encoding.UTF8);
connection = sr.ReadLine();
PathFileBase = sr.ReadLine();
sr.Close();
}
catch (Exception ex)
{
connection = @"Data Source=.\SQLEXPRESS; AttachDbFile-
name=|DataDirectory|\Data\BaseEldoc.mdf;Integrated Security=True;Connect Timeout=30";
}
}
else
{
77
connection = @"Data Source=.\SQLEXPRESS; AttachDbFile-
name=|DataDirectory|\data\BaseEldoc.mdf;Integrated Security=True;Connect Timeout=30";
}
con.ConnectionString = connection;
}
public void Login(String s,String p, ref Int32 count)
{
sql = "SELECT Сотрудник.Логин, Сотрудник.Пароль, Сотрудник.Работает,
Должность.Должность, Сотрудник.ФИО, Отдел.НаименованиеОтдела, Сотрудник.Код FROM (Сотрудник
INNER JOIN Должность ON Сотрудник.КодДолжности = Должность.Код) INNER JOIN Отдел ON Сотруд-
ник.КодОтдела = Отдел.Код WHERE ([Логин]=" + "'" + s + "') and ( [Пароль]='" + p + "')";
try
{
con.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, con);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
count = dt.Rows.Count;
if (count > 0)
{
string passwordDB = dt.Rows[0].ItemArray[1].ToString();//доступ
для конкретной строки
if (p == passwordDB)
{
count = 1;
fiouser = dt.Rows[0].ItemArray[4].ToString();
koduser = Convert.ToInt32(dt.Rows[0].ItemArray[6]);
roleuser = dt.Rows[0].ItemArray[3].ToString();
tekparol = dt.Rows[0].ItemArray[1].ToString();
con.Open();
sql = "SELECT PathFileBase, IspOtnositPut from FileBase";
SqlDataAdapter daa = new SqlDataAdapter(sql, con);
DataTable dtt = new DataTable();
daa.Fill(dtt);
con.Close();
if (Convert.ToBoolean( dtt.Rows[0].ItemArray[1].ToString()))
PathFileBase = Directory.GetCurrentDirectory() + "\\Data\\BaseDoc";
else PathFileBase = dtt.Rows[0].ItemArray[0].ToString();
}
else
{
count = 0;
}
}
}
catch (Exception ex)
{
}
finally
{
con.Close();
}
78
}
public void mainzapros(string s,DataGridView grid,int k)
{
sql = "";
if (s == "mvx")
{
sql = "SELECT Сообщение.Код, Сообщение.КодПроекта, Сообще-
ние.ВремяСоздания, Сотрудник.ФИО, ТипСообщения.ТипСообщения, Сообщение.Обработан FROM (Со-
общение INNER JOIN Сотрудник ON Сообщение.ОтправительКодСотрудника = Сотрудник.Код) INNER
JOIN ТипСообщения ON Сообщение.ТипСообщенияКод = ТипСообщения.Код WHERE (((Сообще-
ние.ПолучательКодСотрудника)=" + koduser + ") and (Сообщение.Архив=0));";
}
if (s == "misx")
{
sql = "SELECT Сообщение.Код,Сообщение.КодПроекта, Сообще-
ние.ВремяСоздания, Сотрудник.ФИО, ТипСообщения.ТипСообщения, Сообщение.Обработан FROM (Со-
общение INNER JOIN Сотрудник ON Сообщение.ПолучательКодСотрудника = Сотрудник.Код) INNER
JOIN ТипСообщения ON Сообщение.ТипСообщенияКод = ТипСообщения.Код WHERE (((Сообще-
ние.ОтправительКодСотрудника)=" + koduser + ") and ((Сообщение.Архив=0)));";
}
if (s == "moiproekt")
{
sql = "SELECT Проект.Код, Проект.РегДата, Проект.КраткоеСодержание,
ВидДокумента.ВидДокумента, Сотрудник.ФИО, Проект.Подписан FROM ((Проект INNER JOIN Сотруд-
ник ON Проект.ПодписанКодСотрудника = Сотрудник.Код) INNER JOIN ВидДокумента ON Про-
ект.ВидДокумента = ВидДокумента.Код) WHERE (((Проект.ПодготовленКодСотрудника)=" + koduser +
"));";
}
if (s == "nemoiproektpodpis")
{
sql = "SELECT Проект.Код, Проект.РегДата, Проект.КраткоеСодержание,
ВидДокумента.ВидДокумента, Сотрудник.ФИО, Проект.Подписан FROM ((Проект INNER JOIN Сотруд-
ник ON Проект.ПодготовленКодСотрудника = Сотрудник.Код) INNER JOIN ВидДокумента ON Про-
ект.ВидДокумента = ВидДокумента.Код) WHERE (((Проект.ПодготовленКодСотрудника)<>" + koduser
+ ") and (Проект.ПодписанКодСотрудника="+ koduser + "));";
}
if (s == "nemoiproekt")
{
sql = "SELECT Проект.Код, Проект.РегДата, Проект.КраткоеСодержание,
ВидДокумента.ВидДокумента, Сотрудник.ФИО, Проект.Подписан FROM ((Проект INNER JOIN Сотруд-
ник ON Проект.ПодготовленКодСотрудника = Сотрудник.Код) INNER JOIN ВидДокумента ON Про-
ект.ВидДокумента = ВидДокумента.Код) WHERE (((Проект.ПодготовленКодСотрудника)<>" + koduser
+ ") and (Проект.ПодписанКодСотрудника<>"+ koduser + "));";
}
if (s == "tipsoob")
{
sql = "SELECT Код, ТипСообщения FROM ТипСообщения";
}
if (s == "viddoc")
{
sql = "SELECT Код, ВидДокумента FROM ВидДокумента";
}
if (s == "otdel")
{
sql = "SELECT Код, НаименованиеОтдела FROM Отдел";
}
if (s == "doljn")
{
sql = "SELECT Код, Должность FROM Должность";
79
}
if (s == "otchet")
{
sql = @"SELECT Отчет.Код, Сотрудник.ФИО, Отчет.ВремяСоздания, От-
чет.КодПроекта, Отчет.ПолучательКодСотрудника, Отчет.Обработан, Отчет.Отказ, Отчет.Архив,
Отчет.ТекстОтчета, Отчет.ТекстСообщения
FROM Сотрудник INNER JOIN Отчет ON Сотрудник.Код = Отчет.ОтправительКодСотрудника
where ((Отчет.ПолучательКодСотрудника=" + koduser + ") and (Отчет.Архив=0))";
}
if (s == "arxotchet")
{
sql = @"SELECT Отчет.Код, Сотрудник.ФИО, Отчет.ВремяСоздания, Отчет.КодПроекта,
Отчет.ПолучательКодСотрудника, Отчет.Обработан, Отчет.Отказ, Отчет.Архив, Отчет.ТекстОтчета,
Отчет.ТекстСообщения
FROM Сотрудник INNER JOIN Отчет ON Сотрудник.Код = Отчет.ОтправительКодСотрудника
where ((Отчет.ПолучательКодСотрудника=" + koduser+") and (Отчет.Архив=1))";
}
if (s == "sotr")
{
sql = "SELECT Сотрудник.Код, Сотрудник.ФИО, Должность.Должность, От-
дел.НаименованиеОтдела, Сотрудник.Работает FROM (Должность INNER JOIN Сотрудник ON
Должность.Код = Сотрудник.КодДолжности) INNER JOIN Отдел ON Сотрудник.КодОтдела =
Отдел.Код;";
}
if (s == "arxmvx")
{
sql = "SELECT Сообщение.Код, Сообщение.КодПроекта, Сообщение.ВремяСоздания,
Сотрудник.ФИО, ТипСообщения.ТипСообщения, Сообщение.Обработан FROM (Сообщение INNER JOIN
Сотрудник ON Сообщение.ОтправительКодСотрудника = Сотрудник.Код) INNER JOIN ТипСообщения ON
Сообщение.ТипСообщенияКод = ТипСообщения.Код WHERE (((Сообщение.ПолучательКодСотрудника)=" +
koduser + ") and (Сообщение.Архив=1));";
}
if (s == "arxmisx")
{
sql = "SELECT Сообщение.Код, Сообщение.КодПроекта, Сообщение.ВремяСоздания,
Сотрудник.ФИО, ТипСообщения.ТипСообщения, Сообщение.Обработан FROM (Сообщение INNER JOIN
Сотрудник ON Сообщение.ПолучательКодСотрудника = Сотрудник.Код) INNER JOIN ТипСообщения ON
Сообщение.ТипСообщенияКод = ТипСообщения.Код WHERE (((Сообщение.ОтправительКодСотрудника)="
+ koduser + ") and (Сообщение.Архив=1));";
}
//-----------------------------------
if (sql == "") return;
con.Open();
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sql, con);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
recordcount = dt.Rows.Count;
if (k == 1)
{
grid.DataSource = null;
grid.DataSource = dt;
//------------------------------------------------
if ((s == "mvx") || (s == "arxmvx"))
{
grid.Columns[0].HeaderText = "Код";
grid.Columns[0].Visible = false;
grid.Columns[1].HeaderText = "Рег проекта";
grid.Columns[2].HeaderText = "Время создания сообщения ";
grid.Columns[3].HeaderText = "Отправитель";
80
grid.Columns[4].HeaderText = "Тип сообщения";
}
if ((s == "misx") || (s == "arxmisx"))
{
grid.Columns[0].HeaderText = "Код";
grid.Columns[0].Visible = false;
grid.Columns[1].HeaderText = "Рег проекта";
grid.Columns[2].HeaderText = "Время создания сообщения ";
grid.Columns[3].HeaderText = "Получатель";
grid.Columns[4].HeaderText = "Тип сообщения";
}
if ((s == "moiproekt") || (s == "nemoiproekt") || (s ==
"nemoiproektpodpis"))
{
grid.Columns[0].HeaderText = "Рег проекта";
grid.Columns[1].HeaderText = "Дата рег.";
grid.Columns[2].HeaderText = "Краткое содержание";
grid.Columns[3].HeaderText = "Вид документа";
grid.Columns[4].HeaderText = "Подписан";
}
if (s == "tipsoob")
{
grid.Columns[1].HeaderText = "Тип сообщения";
}
if (s == "viddoc")
{
grid.Columns[1].HeaderText = "Вид документа";
}
if (s == "otdel")
{
grid.Columns[1].HeaderText = "Наименование отдела";
}
if (s == "doljn")
{
grid.Columns[1].HeaderText = "Наименование должности";
}
grid.AutoSizeColumnsMode = DataGridViewAutoSizeCol-
umnsMode.AllCells;
}
}
}
}
Класс Form1.cs
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;
using System.Data.SqlClient;
using System.IO;
using System.Diagnostics;
namespace ELDoc
{
public partial class Form1 : Form
{
public Form1()
81
{
InitializeComponent();
Program.db = new docbase();
}
private void ObxodDereva(TreeNode a)
{
if (a.Nodes != null) //дочерние элементы есть
{
foreach (TreeNode childNode in a.Nodes) //не зацикливаеться ли от
родителя к 1 ребенку и обратно?
{
a = childNode; //посетить ребенка
Program.db.mainzapros(a.Tag.ToString(), maingrid, 0);
a.Text += " (" + Program.db.recordcount.ToString() + ")";
if (a.Tag == "moiproekt") tree.SelectedNode = a;
ObxodDereva(a);
}
}
}
void timer_Tick(object sender, EventArgs e)
{
datelabel.Text = DateTime.Now.ToLongDateString();
timeLabel.Text = DateTime.Now.ToLongTimeString();
}
private void Form1_Load(object sender, EventArgs e)
{
LoginForm w = new LoginForm();
if (!(w.ShowDialog() == DialogResult.OK)) //форма регистрации будет от-
крыта раньше, чем главная форма
{
Application.Exit(); //если форма регистрации закроется с неправиль-
ным диалогрезалтом, то программу закрываем
}
// Application.Exit();
fiouserlabel.Text = Program.db.fiouser;
for (int i = 0; i < tree.Nodes.Count; i++) { ObxodDereva(tree.Nodes[i]);
if (i < 2) tree.Nodes[i].Expand(); }
infoLabel.Text = "Текущие дата и время:";
Timer timer = new Timer() { Interval = 1000 };
timer.Tick += timer_Tick;
timer.Start();
tree.DrawMode = TreeViewDrawMode.OwnerDrawText;
maingrid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
timer1_Tick(sender, e);
timer1.Enabled = true;
}
private void button1_Click(object sender, EventArgs e)
{
Program.insert = true;
Program.modified = false;
if (Program.db.statusmaingrid == "moiproekt")
{
FormProject w = new FormProject();
w.ShowDialog();
if (Program.modified)
{
Program.db.mainzapros(Program.db.statusmaingrid, maingrid, 1);
recordcounlabel.Text = Program.db.recordcount.ToString();
}
82
}
if (Program.db.statusmaingrid == "tipsoob")
{
MessageBox.Show(Program.db.roleuser);
if (Program.db.roleuser != "admin")
{
MessageBox.Show("Доступ к данной функции вам закрыт");
return;
}
TipSoob w = new TipSoob();
w.ShowDialog();
if (Program.modified)
{
Program.db.mainzapros(Program.db.statusmaingrid, maingrid, 1);
recordcounlabel.Text = Program.db.recordcount.ToString();
}
}
if (Program.db.statusmaingrid == "viddoc")
{
if (Program.db.roleuser != "admin")
{
MessageBox.Show("Доступ к данной функции вам закрыт");
return;
}
fviddoc w = new fviddoc();
w.ShowDialog();
if (Program.modified)
{
Program.db.mainzapros(Program.db.statusmaingrid, maingrid, 1);
recordcounlabel.Text = Program.db.recordcount.ToString();
}
}
if (Program.db.statusmaingrid == "otdel")
{
if (Program.db.roleuser != "admin")
{
MessageBox.Show("Доступ к данной функции вам закрыт");
return;
}
fotdel w = new fotdel();
w.ShowDialog();
if (Program.modified)
{
Program.db.mainzapros(Program.db.statusmaingrid, maingrid, 1);
recordcounlabel.Text = Program.db.recordcount.ToString();
}
}
if (Program.db.statusmaingrid == "doljn")
{
if (Program.db.roleuser != "admin")
{
MessageBox.Show("Доступ к данной функции вам закрыт");
return;
}
fdoljn w = new fdoljn();
w.ShowDialog();
if (Program.modified)
{
Program.db.mainzapros(Program.db.statusmaingrid, maingrid, 1);
recordcounlabel.Text = Program.db.recordcount.ToString();
}
}
if (Program.db.statusmaingrid == "sotr")
{
if (Program.db.roleuser != "admin")
83
{
MessageBox.Show("Доступ к данной функции вам закрыт");
return;
}
Program.insert = true;
fsotrudnik w = new fsotrudnik();
w.ShowDialog();
if (Program.modified)
{
Program.db.mainzapros(Program.db.statusmaingrid, maingrid, 1);
recordcounlabel.Text = Program.db.recordcount.ToString();
}
}
if (Program.modified)
if (maingrid.RowCount > 0) maingrid.Rows[maingrid.RowCount -
1].Selected = true;
}
public void select(int p)
{
for (int i = 0; i < maingrid.RowCount; i++)
{
if (maingrid.Rows[i].Cells[0].ToString() == (Program.tmpstring))
{
maingrid.Rows[i].Selected = true;
break;
}
}
}
private void tree_AfterSelect(object sender, TreeViewEventArgs e)
{
Program.db.statusmaingrid = tree.SelectedNode.Tag.ToString();
if (Program.db.statusmaingrid == "parrent")
{
button1.Enabled = false;
button2.Enabled = false;
button3.Enabled = false;
return;
}
Program.db.mainzapros(Program.db.statusmaingrid, maingrid, 1);
if (Program.db.statusmaingrid == "moiproekt")
{
button1.Visible = true;
if (maingrid.RowCount > 0)
{
button1.Enabled = true;
button2.Enabled = true;
button3.Enabled = true;
}
else
{
button1.Enabled = true;
button2.Enabled = false;
button3.Enabled = false;
}
button1.ImageIndex = 0;
button1.Text = "Добавить проект";
button2.Text = "Редактировать проект";
button3.Text = "Удалить проект";
tree.SelectedNode.Text = "Мои проекты (" + Pro-
gram.db.recordcount.ToString() + ")";
}
else
if (Program.db.statusmaingrid == "nemoiproekt")
{
84
button1.Visible = false;
tree.SelectedNode.Text = "Остальные проекты (" + Pro-
gram.db.recordcount.ToString() + ")";
button3.Enabled = false;
if (maingrid.RowCount > 0)
button2.Enabled = true;
else button2.Enabled = false;
button2.Text = "Просмотреть проект";
button3.Text = "Удалить проект";
}
else
if (Program.db.statusmaingrid == "nemoiproektpodpis")
{
button1.Visible = false;
button1.Enabled = false;
button3.Enabled = false;
if (maingrid.RowCount > 0)
button2.Enabled = true;
else button2.Enabled = false;
button2.Text = "Просмотреть проект";
button3.Text = "Удалить проект";
tree.SelectedNode.Text = "Проекты для подписания (" +
Program.db.recordcount.ToString() + ")";
}
else
if ((Program.db.statusmaingrid == "mvx") || (Pro-
gram.db.statusmaingrid == "arxmvx"))
{
tree.SelectedNode.Text = "Входящая (" + Pro-
gram.db.recordcount.ToString() + ")";
button1.Visible = false;
if (maingrid.RowCount > 0)
{
button2.Enabled = true;
button3.Enabled = false;
}
else
{
button2.Enabled = false;
button3.Enabled = false;
}
button2.Text = "Просмотреть сообщение";
button3.Text = "Удалить сообщение";
}
else
if ((Program.db.statusmaingrid == "misx") || (Pro-
gram.db.statusmaingrid == "arxmisx"))
{
button1.Visible = false;
if (maingrid.RowCount > 0)
{
button2.Enabled = true;
if (Program.db.statusmaingrid == "misx") but-
ton3.Enabled = true;
else button3.Enabled = false;
}
else
{
button2.Enabled = false;
button3.Enabled = false;
}
if (Program.db.statusmaingrid == "arxmisx") but-
ton2.Text = "Просмотреть сообщение";
85
else button2.Text = "Редактировать сообщение";
button3.Text = "Удалить сообщение";
tree.SelectedNode.Text = "Исходящая (" +
Program.db.recordcount.ToString() + ")";
}
else
if ((Program.db.statusmaingrid == "otchet") || (Pro-
gram.db.statusmaingrid == "arxotchet"))
{
button1.Visible = false;
if (maingrid.RowCount > 0)
{
button2.Enabled = true;
button3.Enabled = true;
}
else
{
button2.Enabled = false;
button3.Enabled = false;
}
button1.Visible = false;
button2.Text = "Просмотреть отчет";
if (Program.db.statusmaingrid == "otchet") but-
ton3.Text = "Принять отчет";
else
button3.Text = "Удалить отчет";
tree.SelectedNode.Text = "Отчеты (" + Pro-
gram.db.recordcount.ToString() + ")";
}
else
if (Program.db.statusmaingrid == "tipsoob")
{
button1.Visible = true;
if (maingrid.RowCount > 0)
{
button1.Enabled = true;
button2.Enabled = true;
button3.Enabled = true;
}
else
{
button1.Enabled = true;
button2.Enabled = false;
button3.Enabled = false;
}
button1.Text = "Добавить тип сообщения";
button2.Text = "Редактировать тип сообще-
ния";
button3.Text = "Удалить тип сообщения";
tree.SelectedNode.Text = "Типы сообщений ("
+ Program.db.recordcount.ToString() + ")";
}
else
if (Program.db.statusmaingrid == "viddoc")
{
button1.Visible = true;
if (maingrid.RowCount > 0)
{
button1.Enabled = true;
button2.Enabled = true;
button3.Enabled = true;
}
else
{
button1.Enabled = true;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)