public static bool Exec() { bool flag = false; //string queryExecTable = "select txtShortHospital,ЕКС,ОКТМО from Реквизиты2021"; string queryExecTable = "select * from Реквизиты2021"; try { Query.Execute(queryExecTable, ConnectionDB.ConnectionString()); DataTable tabMin = ТаблицаБД.GetTable(queryExecTable, ConnectionDB.ConnectionString(), "Реквизиты2021"); var countRow = tabMin.Rows.Count; flag = true; } catch { //string queryCreate = string.Empty; //queryCreate = @"CREATE TABLE Реквизиты2021 // ( idМинистерство AUTOINCREMENT PRIMARY KEY, // txtShortHospital char(100) NULL, // ЕКС char(20) NULL, // ОКТМО char(20) NULL // )"; //Query.Execute(queryCreate, ConnectionDB.ConnectionString()); //string queryInsert = @"INSERT INTO Реквизиты2021 (txtShortHospital,ЕКС,ОКТМО) // VALUES('Введите ГКУ','00000000000000000000','00000000000000000000') "; //Query.Execute(queryInsert, ConnectionDB.ConnectionString()); //flag = true; InsertTable.Execute(); } return(flag); }
/// <summary> /// Возвращает коллекцию /// </summary> /// <returns></returns> public List <Unload> Выгрузка() { //Объявим список классов для выгрузки List <Unload> list = new List <Unload>(); //Выполним в единой транзакции using (OleDbConnection con = new OleDbConnection(ConnectionDB.ConnectionString())) { //откроем транзакцию con.Open(); OleDbTransaction transact = con.BeginTransaction(); string queryЛК = "select * from ЛьготнаяКатегория where ЛьготнаяКатегория = '" + льготКатегория + "' "; DataRow rowЛК = ТаблицаБД.GetTable(queryЛК, "ЛьготнаяКатегория", con, transact).Rows[0]; //Получим данные таблицы договор за период //SELECT Договор.ДатаДоговора //FROM Договор //WHERE (([Договор]![ДатаДоговора]>#2/1/2013# And #3/6/2013#<[Договор]![ДатаДоговора])); //Рабочий вариант //string договор = "select * from Договор where ДатаДоговора > " + startDate + " And ДатаДоговора < " + endDate + " and id_льготнаяКатегория = " + Convert.ToInt32(rowЛК["id_льготнойКатегории"]) + " "; string договор = "select * from Договор where id_договор in (select id_договор from АктВыполнненныхРабот where ДатаПодписания >= " + startDate + " And ДатаПодписания < " + endDate + " ) and id_льготнаяКатегория = " + Convert.ToInt32(rowЛК["id_льготнойКатегории"]) + " and ДатаДоговора is not NULL"; //string договор = "SELECT ЛьготнаяКатегория.ЛьготнаяКатегория AS ['Льготная категория'], Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, Льготник.ДатаВыдачиДокумента, АктВыполнненныхРабот.НомерАкта, Договор.НомерДоговора, АктВыполнненныхРабот.ДатаПодписания, Sum(УслугиПоДоговору.Сумма) AS Сумма " + // "FROM (ЛьготнаяКатегория INNER JOIN Льготник ON ЛьготнаяКатегория.id_льготнойКатегории = Льготник.id_льготнойКатегории) INNER JOIN ((Договор INNER JOIN АктВыполнненныхРабот ON Договор.id_договор = АктВыполнненныхРабот.id_договор) INNER JOIN УслугиПоДоговору ON Договор.id_договор = УслугиПоДоговору.id_договор) ON Льготник.id_льготник = Договор.id_льготник " + // "WHERE (((ЛьготнаяКатегория.ЛьготнаяКатегория)='" + льготКатегория.Trim() + "') AND ((Договор.ФлагНаличияАкта)=True)) " + // "GROUP BY ЛьготнаяКатегория.ЛьготнаяКатегория, Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, Льготник.ДатаВыдачиДокумента, АктВыполнненныхРабот.НомерАкта, Договор.НомерДоговора, АктВыполнненныхРабот.ДатаПодписания " + // "HAVING (((АктВыполнненныхРабот.ДатаПодписания)>= " + startDate + " And (АктВыполнненныхРабот.ДатаПодписания)< " + endDate + "))"; //AND (Договор.ФлагНаличияАкта <> True) DataTable табДоговор = ТаблицаБД.GetTable(договор, "Договор", con, transact); //if (табДоговор.Rows["НомерДоговора"].ToString().Trim() == "АРБ/851 ") //{ // string sTest = "Test"; //} //int iCountCol = табДоговор.Columns.Count; //пройдёмся по таблице foreach (DataRow rowДоговор in табДоговор.Rows) { //Создадим объект типа Unload Unload unload = new Unload(); //Выгрузим классификатор услуг string queryClassService = "select * from КлассификаторУслуги"; DataTable tabClassServices = ТаблицаБД.GetTable(queryClassService, ConnectionDB.ConnectionString(), "КлассификаторУслуг"); unload.КлассификаторУслуг = tabClassServices; //Выгрузим вид услуг string queryViewServices = "select * from ВидУслуги"; DataTable tabViewServices = ТаблицаБД.GetTable(queryViewServices, ConnectionDB.ConnectionString(), "ВидУслуги"); unload.ВидУслуги = tabViewServices; //if (Convert.ToInt32(rowДоговор["id_льготник"]) == 319) //{ // string sTest = "Test"; //} //Получим льготника с которым составлен договор string queryЛьготник = "select * from Льготник where id_льготник = " + Convert.ToInt32(rowДоговор["id_льготник"]) + " "; DataTable rowЛьготник = ТаблицаБД.GetTable(queryЛьготник, "Льготник", con, transact);//.Rows[0]; //Добавим в клон таблицы строку содержащую текущий договор DataTable tДоговор = new DataTable("ДоговорЛиния"); tДоговор = табДоговор.Clone(); //Заполним строку данными из текущего договора DataRow row = tДоговор.NewRow(); row[0] = rowДоговор[0]; row[1] = rowДоговор[1]; row[2] = rowДоговор[2]; row[3] = rowДоговор[3]; row[4] = rowДоговор[4]; row[5] = rowДоговор[5]; row[6] = rowДоговор[6]; row[7] = rowДоговор[7]; row[8] = rowДоговор[8]; row[9] = rowДоговор[9]; row[10] = rowДоговор[10]; row[11] = rowДоговор[11]; row[12] = rowДоговор[12]; tДоговор.Rows.Add(row); //присвоим договор unload.Договор = tДоговор; //Добавим в uhnload льготника с которым подписан текущий договор unload.Льготник = rowЛьготник; //получим название льготной категории unload.ЛьготнаяКатегория = льготКатегория; //сохраним данные по поликлиннике string queryПоликлинника = "select * from Поликлинника"; DataTable tabПоликлинника = ТаблицаБД.GetTable(queryПоликлинника, "Поликлинника", con, transact);//.Rows[0]; unload.Поликлинника = tabПоликлинника; //Сохраним ФИО Врача string queryФиоВрач = "select * from ГлавВрач where id_главВрач = " + Convert.ToInt32(tabПоликлинника.Rows[0]["id_главВрач"]) + " "; DataRow rowФИО = ТаблицаБД.GetTable(queryФиоВрач, "ГлавВрач", con, transact).Rows[0]; //запишем ФИО глав врача unload.ФиоВрач = rowФИО["ФИО_ГлавВрач"].ToString(); //получим услуги по договору string queryУслугиДоговор = "select * from УслугиПоДоговору where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " "; DataTable rowУслугиДоговор = ТаблицаБД.GetTable(queryУслугиДоговор, "УслугиПоДоговору", con, transact); //добавим услуги по договору unload.УслугиПоДоговору = rowУслугиДоговор; string queryДопСоглашение = "select * from ДопСоглашение where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " "; DataTable tabДопСоглашение = ТаблицаБД.GetTable(queryДопСоглашение, "ДопСоглашение", con, transact); //добавим доп соглашения unload.ДопСоглашение = tabДопСоглашение; //if (Convert.ToInt32(rowДоговор["id_договор"]) == 897) //{ // string sTest = "Test"; //} //Получим акт выполненных работ string queryАктВыполненныхРабот = "select * from АктВыполнненныхРабот where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " "; DataTable tabАктВыполненныхРабот = ТаблицаБД.GetTable(queryАктВыполненныхРабот, "АктВыполнненныхРабот", con, transact); //Получим номер акта выполненных работ int numAct = Convert.ToInt32(tabАктВыполненныхРабот.Rows[0]["id_акт"]); foreach (еестр реестр in listРеестр) { if (реестр.Id_акт == numAct) { unload.АктВыполненныхРабот = tabАктВыполненныхРабот; } } //добавим объект unload типа Unload в List //Сохраним сторку ТипДокумента string queryТипДокумента = "select * from ТипДокумента where id_документ = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_документ"]) + " "; DataTable rowТипДокумента = ТаблицаБД.GetTable(queryТипДокумента, "ТипДокумента", con, transact);//.Rows[0]; unload.ТипДокумента = rowТипДокумента; //получим наименование района if (Convert.ToInt32(rowЛьготник.Rows[0]["id_район"]) != -1) { string queryНазваниеРайона = "select * from НаименованиеРайона where id_район = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_район"]) + " "; DataTable rТипДокумента = ТаблицаБД.GetTable(queryНазваниеРайона, "НаименованиеРайона", con, transact);//.Rows[0]; unload.НаименованиеРайона = rТипДокумента; } //получим наименование населённого пункта if (Convert.ToInt32(rowЛьготник.Rows[0]["id_насПункт"]) != -1) { string queryНаселённыйПункт = "select * from НаселенныйПункт where id_насПункт = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_насПункт"]) + " "; DataTable rwТипДокумента = ТаблицаБД.GetTable(queryНаселённыйПункт, "НаселенныйПункт", con, transact);//.Rows[0]; unload.НаселённыйПункт = rwТипДокумента; } //else //{ // string queryСаратов = "select * from НаселенныйПункт where like %Саратов% "; // DataRow rowСаратов = ТаблицаБД.GetTable(queryСаратов, "НаселенныйПункт", con, transact).Rows[0]; // unload.НаселённыйПункт = rowСаратов; //} list.Add(unload); } //явно закроем соединение с БД //con.Close(); con.Dispose(); } return(list); }
//public List<Unload> Выгрузка(Dictionary<string, string> library) public Dictionary <string, Unload> Выгрузка(Dictionary <string, string> library) { //Словарь для хранения проектов договоров Dictionary <string, Unload> list = new Dictionary <string, Unload>(); //Выполним в единой транзакции using (OleDbConnection con = new OleDbConnection(ConnectionDB.ConnectionString())) { //откроем транзакцию con.Open(); OleDbTransaction transact = con.BeginTransaction(); StringBuilder build = new StringBuilder(); foreach (string val in library.Values) { string zn = "'" + val + "'" + ","; build.Append(zn); } if (build.Length != 0) { //Узнаем длинну строки в символах int numContracts = build.ToString().Length; //Удалим последний символ ',' string numbersContr = build.ToString().Remove(numContracts - 1, 1); string договор = "select * from Договор where НомерДоговора in (" + numbersContr + ") "; DataTable табДоговор = ТаблицаБД.GetTable(договор, "Договор", con, transact); //счётчик int iCount = 1; //пройдёмся по таблице договоров foreach (DataRow rowДоговор in табДоговор.Rows) { //Создадим объект типа Unload Unload unload = new Unload(); try { //Получим к какой льготной категории отностится льготник в текущем договоре string queryЛК = "select ЛьготнаяКатегория from ЛьготнаяКатегория where id_льготнойКатегории = " + Convert.ToInt32(rowДоговор["id_льготнаяКатегория"]) + " "; DataRow rowЛК = ТаблицаБД.GetTable(queryЛК, ConnectionDB.ConnectionString(), "ЛьготнаяКатегория").Rows[0]; //получим название льготной категории unload.ЛьготнаяКатегория = rowЛК["ЛьготнаяКатегория"].ToString(); } catch { unload.ЛьготнаяКатегория = "0"; } //Выгрузим классификатор услуг string queryClassService = "select * from КлассификаторУслуги"; DataTable tabClassServices = ТаблицаБД.GetTable(queryClassService, ConnectionDB.ConnectionString(), "КлассификаторУслуг"); unload.КлассификаторУслуг = tabClassServices; //Выгрузим вид услуг string queryViewServices = "select * from ВидУслуги"; DataTable tabViewServices = ТаблицаБД.GetTable(queryViewServices, ConnectionDB.ConnectionString(), "ВидУслуги"); unload.ВидУслуги = tabViewServices; //Получим льготника с которым составлен договор string queryЛьготник = "select * from Льготник where id_льготник = " + Convert.ToInt32(rowДоговор["id_льготник"]) + " "; DataTable rowЛьготник = ТаблицаБД.GetTable(queryЛьготник, "Льготник", con, transact);//.Rows[0]; //Добавим в клон таблицы строку содержащую текущий договор DataTable tДоговор = new DataTable("ДоговорЛиния"); tДоговор = табДоговор.Clone(); //Заполним строку данными из текущего договора DataRow row = tДоговор.NewRow(); row[0] = rowДоговор[0]; row[1] = rowДоговор[1]; row[2] = rowДоговор[2]; row[3] = rowДоговор[3]; row[4] = rowДоговор[4]; row[5] = rowДоговор[5]; row[6] = rowДоговор[6]; row[7] = rowДоговор[7]; row[8] = rowДоговор[8]; row[9] = rowДоговор[9]; row[10] = rowДоговор[10]; row[11] = rowДоговор[11]; row[12] = rowДоговор[12]; tДоговор.Rows.Add(row); //присвоим договор unload.Договор = tДоговор; //Добавим в uhnload льготника с которым подписан текущий договор unload.Льготник = rowЛьготник; // Проставим в виде строки дату льготника. unload.DateBirdthPerson = Convert.ToDateTime(rowЛьготник.Rows[0]["ДатаРождения"]).ToShortDateString(); // Дата выдачи документа. unload.DateDoc = Convert.ToDateTime(rowЛьготник.Rows[0]["ДатаВыдачиДокумента"]).ToShortDateString(); // Дата выдачи паспорта. unload.DatePassword = Convert.ToDateTime(rowЛьготник.Rows[0]["ДатаВыдачиПаспорта"]).ToShortDateString(); //сохраним данные по поликлиннике string queryПоликлинника = "select * from Поликлинника"; DataTable tabПоликлинника = ТаблицаБД.GetTable(queryПоликлинника, "Поликлинника", con, transact);//.Rows[0]; unload.Поликлинника = tabПоликлинника; //Сохраним ФИО Врача string queryФиоВрач = "select * from ГлавВрач where id_главВрач = " + Convert.ToInt32(tabПоликлинника.Rows[0]["id_главВрач"]) + " "; DataRow rowФИО = ТаблицаБД.GetTable(queryФиоВрач, "ГлавВрач", con, transact).Rows[0]; //запишем ФИО глав врача unload.ФиоВрач = rowФИО["ФИО_ГлавВрач"].ToString(); //получим услуги по договору string queryУслугиДоговор = "select * from УслугиПоДоговору where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " "; DataTable rowУслугиДоговор = ТаблицаБД.GetTable(queryУслугиДоговор, "УслугиПоДоговору", con, transact); //добавим услуги по договору unload.УслугиПоДоговору = rowУслугиДоговор; string queryДопСоглашение = "select * from ДопСоглашение where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " "; DataTable tabДопСоглашение = ТаблицаБД.GetTable(queryДопСоглашение, "ДопСоглашение", con, transact); //добавим доп соглашения unload.ДопСоглашение = tabДопСоглашение; //Получим акт выполненных работ string queryАктВыполненныхРабот = "select * from АктВыполнненныхРабот where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " "; DataTable tabАктВыполненныхРабот = ТаблицаБД.GetTable(queryАктВыполненныхРабот, "АктВыполнненныхРабот", con, transact); unload.АктВыполненныхРабот = tabАктВыполненныхРабот; //добавим объект unload типа Unload в List //Сохраним сторку ТипДокумента string queryТипДокумента = "select * from ТипДокумента where id_документ = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_документ"]) + " "; DataTable rowТипДокумента = ТаблицаБД.GetTable(queryТипДокумента, "ТипДокумента", con, transact);//.Rows[0]; unload.ТипДокумента = rowТипДокумента; //получим наименование района if (Convert.ToInt32(rowЛьготник.Rows[0]["id_район"]) != -1) { string queryНазваниеРайона = "select * from НаименованиеРайона where id_район = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_район"]) + " "; DataTable rТипДокумента = ТаблицаБД.GetTable(queryНазваниеРайона, "НаименованиеРайона", con, transact);//.Rows[0]; unload.НаименованиеРайона = rТипДокумента; } //получим наименование населённого пункта if (Convert.ToInt32(rowЛьготник.Rows[0]["id_насПункт"]) != -1) { string queryНаселённыйПункт = "select * from НаселенныйПункт where id_насПункт = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_насПункт"]) + " "; DataTable rwТипДокумента = ТаблицаБД.GetTable(queryНаселённыйПункт, "НаселенныйПункт", con, transact);//.Rows[0]; unload.НаселённыйПункт = rwТипДокумента; } //Получим номер договора string numDog = rowДоговор["НомерДоговора"].ToString().Trim(); try { list.Add(numDog, unload); } catch { if (this.FlagВыгрузка == false) { //Выкиним из списка задвоенные номера list.Remove(numDog); } if (this.FlagВыгрузка == true) { //Получим номер договора string numDogAdd = rowДоговор["НомерДоговора"].ToString().Trim() + " " + iCount.ToString(); list.Add(numDogAdd, unload); iCount++; } } } } else { System.Windows.Forms.MessageBox.Show("Не выбраны проекты договоров.", "Ошибка"); } //явно закроем соединение с БД //con.Close(); con.Dispose(); } return(list); }