![](/user_photo/2706_HbeT2.jpg)
- •1 Постановка задачи
- •2 Теоретическая часть
- •2.2 Технологии и средство разработки веб-сайта
- •2.4 Технология wpf
- •2.5 База данных приложения
- •3 Практическая часть
- •3.1 Словесное описание предметной области
- •3.2 Концептуальная схема
- •3.3 Разработка wcf
- •3.5 Разработка wpf
- •4 Экономическая часть
- •4.1 Определение годового экономического эффекта
- •4.2 Оценка трудоемкости разработки
- •4.3 Калькуляция себестоимости программного изделия
- •4.3.1 Расчет затрат на материалы
- •4.3.2 Расчет затрат на оплату труда разработчикам программного изделия
- •4.3.3 Расчет общепроизводственных расходов
- •4.3.4 Расчёты накладных расходов
- •Расчёты коммерческих расходов
- •4.4 Расчёт цены программного изделия
- •4.5 Расчет годовой экономии текущих затрат
- •5 Охрана труда на производстве
- •5.1 Работа программиста при работе с приложением
- •5.2 Рекомендации по организации труда и отдыха
5.2 Рекомендации по организации труда и отдыха
Работа с приложением связана со зрительными нагрузками, нагрузками на спину, плечи, поясницу, область шеи, в результате чего могут развиться различные виды недомоганий:
головная боль;
резь в глазах, быстрая утомляемость;
боль в спине, плечах, в области шеи и т.д.;
Потому должен соблюдаться режим работы с обязательными перерывами.
Наиболее предпочтителен такой режим: 45 минут работы, 15 минут перерыв. При этом в течение восьми часового рабочего дня общее время пребывания за компьютером не должно превышать 5-6 часов. Во время перерывов оператор может выполнять работу не связанную с напряжением зрения.
Для уменьшения зрительной нагрузки рекомендуется:
принудительное частое моргание;
отвлечение внимания через определённые промежутки времени на другой объект;
сокращение длительности зрительной работы за счёт изготовления твёрдых копий документов и работы уже с ними;
Заключение
В процессе выполнения дипломного проекта я создал 2 WPF приложения. Приложение для организации ведения отношения заказов выполняет следующие действия:
вывод данных из БД;
добавление записей в БД;
изменение записей в БД;
удаление записей из БД;
а второстепенное приложение, которое получает только необходимые для работы пользователю данные получает их из БД при этом не нагружая сервер.
В процессе разработки приложения были освоены методы работы с классами. На сервере создаются классы. В соответствующие свойства объектов присваиваются значения из БД. При вызове web-методов на клиентскую часть передаются коллекции объектов. WPF принимал соответствующие коллекции объектов, обрабатывал и визуализировал. Сервер и клиент используют глобальные классы, созданные в WCF (на сервере). Связь сервера с клиентом осуществляется с помощью коллекций.
На данном этапе созданные приложения нуждаются в корректировке для их совместного использования, а также корректировке выводимых страниц и в реализации новых функциональных возможностей.
Список используемых источников
Silverlight в .NET 4 с примерами на С# 2010 для профессионалов. 1-е издание: Пер. с англ. - М. : ООО "И.Д. Вильямс".
C# и платформа .Net 4 для профессионалов.
С# учебный курс. :Пер. с англ. – М.: Издательский дом «Вильямс», 2002. – 272 с. : ил. – Парал. Тит. Англ.
Форум в интернете www.SQL.ru.
Интернет университет www.intuit.ru.
Туан Тай, Хонг К. Лэм Платформа .Net Основы - Пер. с англ. – М. : “Символ”, 2002 . – 336 с.
Язык программирования С# 2005 и платформа .NET 2.0, 3-е издание.: Пер. с англ. – М.: ООО «И.Д. Вильямс» 2007. – 1168 с.
Разработка пользовательского интерфейса: Пер. с англ.- М.: ДМК Пресс, 2001. – 416 с., ил. (Серия “Для программистов”).
Дэн Хотка. Oracle9i: Пер. с англ. - СПб.:ООО «ДиаСофтЮП», 2002.-560
Типовые нормы времени на программирование задач для ЭВМ: Утв. Гос. ком. СССР по труду и социал. вопр. и секретариатом ВЦСПС 27.07.87. – М.: Экономика, 1989. – 124, [1] с.; 21 см. Стр. 3-9, 14-17, 21, 30-31, 56-57, 82-83.
Богомолова Г.Н. Методические указания по выполнению курсовой работы по курсу «Организация, планирование и управление предприятием» и экономической части дипломных проектов (для студентов специальностей 2201, 2203, 2204). Стр. 4, 15-16, 24-28.
Приложение А
Техническое задание
А.1 Основание для разработки
Настоящая разработка ведется на основании задания, выданного руководителем дипломного проекта Дорошенко А.С.
Наименование дипломного проекта: Разработка приложения для организации ведения отношения заказов в шифраторе и КСУ Парус.
А.2 Назначение разработки
Разрабатываемая ИС предназначена для ведения отношения заказов в шифраторе и КСУ Парус. А также разработки для уменьшение нагрузки на сервера ОАО «Воткинский завод» и быстрой работы приложения.
А.3 Требования к ИС
А.3.1 Общие требования к ИС
Серверную часть ИС необходимо выполнить с использованием WCF служб;
Клиентскую часть ИС необходимо выполнить с использованием WEB технологий;
А.3.2 Требования к функциональным характеристикам
Обеспечить отображение, добавление, изменение, удаление и поиск информации о номерах учетных заказов в шифраторе и КСУ Парус;
Обеспечить отображение информации из базы данных сначала в неполной форме, а далее по необходимости получать полную информацию;
А.3.3 Требования к составу и параметрам технических средств
Минимальные требования для терминала клиента:
Процессор с тактовой чистотой 600 МГц;
Оперативная память 256 mb;
Монитор с разрешением 1024 x 768 ;
Сетевая карта;
Минимальные требования для сервера-приложений:
Процессор с тактовой чистотой 2000МГц;
Оперативная память 1 GB;
Жесткий диск 10 GB свободного места;
Сетевая карта;
А.3.4 Требования к программной совместимости
Минимальные требования для терминала клиента:
Web - браузер с поддержкой Silverlight 4.0;
Минимальные требования для сервера приложений:
Поддержка WCF, Framework 4.0;
А.4 Требования к документации
Документация должна соответствовать ГОСТ и требованию заказчика;
А.5 Стадии и этапы разработки
А.5.1 Утверждение технического задания у заказчика
Подготовка технического задания;
Согласование технического задания с руководителем дипломного проекта;
А.5.2 Проектирование ИС
Изучение предметной области;
Описание предметной области;
Выбор архитектуры приложения;
А.5.3 Разработка ИС
Создание элементов управления на странице;
Создание WCF сервиса;
Отправка запроса к сервису;
Получение данных от сервиса и использование их в качестве источника данных для элементов управления
Тестирование и отладка.
А.6 Порядок контроля и приемки
Порядок контроля и приемки устанавливается руководителем дипломного проекта Дорошенко А.С. на основании изложенных в п. А.3.2 функциональных характеристик.
Приложение Б
Программный код WCF для ведения отношения заказов
Б.1 код файла Iservice1
Данный файл содержит интерфейс для объявления методов, классов используемые в WCF сервисе.
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;
namespace WCForders
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
[ServiceContract]
public interface IService1
{
[OperationContract]
List<Prixod> GetPrihod(string sh, string par, string guid);
[OperationContract]
void UpdateRow(DateTime date_op, string UZAK, string UZAKP, string GUID);
[OperationContract]
void DeleteRow(string UZAK);
[OperationContract]
void AddingRow(string UZAK, string UZAKP, string GUID, DateTime time1);
// TODO: Add your service operations here
}
// Use a data contract as illustrated in the sample below to add composite types to service operations.
public class Prixod
{
[DataMember]
public DateTime DATE_OP { get; set; }
[DataMember]
public string UZAK { get; set; }
[DataMember]
public string UZAKP { get; set; }
[DataMember]
public string GUID { get; set; }
}
}
Б.2 Код файла Service1
Данный файл содержит методы и классы, которые выполняются при получении запроса от клиента.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Data.OracleClient;
namespace WCForders
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
public class Service1 : IService1
{
public string sql;
public List<Prixod> GetPrihod(string sh , string par ,string guid )
{
try
{
var prihodList = new List<Prixod>();
OraDBWeb.clsDB db1 = new OraDBWeb.clsDB("work.ora.vz", "W_STUDENT2", "W_STUDENT2");
sql = "";
sql = ("select t.*, t.rowid from w_zex003.tb_correlative_uzak t");
if (sh != null && sh != "")
{
sql += " where t.uzak like '%" + sh + "%'";
}
if (par != null && par != "")
{
if (sh != null && sh != "")
{
sql += " and t.uzakp like '%" + par + "%'";
}
else
{
sql += " where t.uzakp like '%" + par + "%'";
}
}
var reader = db1.GetReader(sql, true);
while (reader.Read())
{
var prihodItem = new Prixod();
prihodItem.DATE_OP = Convert.ToDateTime(reader["DATE_OP"].ToString());
// DateTime dt1 = new DateTime;
// dt1 = reader["DATE_OP"].;
prihodItem.UZAK = reader["UZAK"].ToString();
prihodItem.UZAKP = reader["UZAKP"].ToString();
prihodItem.GUID = reader["GUID"].ToString();
//prihodItem.Datetime = Convert.ToDateTime(reader["datetime"].ToString());
prihodList.Add(prihodItem);
}
db1.Connection.Close();
//System.Threading.Thread.Sleep(1000);
return prihodList;
}
catch { return new List<Prixod>(); }
}
public void UpdateRow(DateTime date_op,string UZAK, string UZAKP, string GUID)
{
try
{
OraDBWeb.clsDB db1 = new OraDBWeb.clsDB("work.ora.vz", "W_STUDENT2", "W_STUDENT2");
sql = string.Format("UPDATE w_zex003.tb_correlative_uzak SET w_zex003.tb_correlative_uzak.{0} = '{2}' , w_zex003.tb_correlative_uzak.date_op = '{3}' WHERE w_zex003.tb_correlative_uzak.UZAK= '{1}'", UZAK, UZAKP, GUID,date_op);
db1.ExecuteSQL(sql);
db1.Connection.Close();
return;
}
catch (Exception)
{
throw;
}
}
public void DeleteRow(string UZAK)
{
try
{
OraDBWeb.clsDB db1 = new OraDBWeb.clsDB("work.ora.vz", "W_STUDENT2", "W_STUDENT2");
sql = string.Format("delete from w_zex003.tb_correlative_uzak where UZAK= '{0}'", UZAK);
db1.ExecuteSQL(sql);
db1.Connection.Close();
return;
}
catch (Exception)
{
throw;
}
}
public void AddingRow(string UZAK,string UZAKP, string GUID, DateTime time1)
{
try
{
OraDBWeb.clsDB db1 = new OraDBWeb.clsDB("work.ora.vz", "W_STUDENT2", "W_STUDENT2");
sql = string.Format("INSERT INTO w_zex003.tb_correlative_uzak VALUES ('{0}','{1}','{2}','{3}')", time1, UZAK, UZAKP, GUID);
db1.ExecuteSQL(sql);
db1.Connection.Close();
return;
}
catch (Exception)
{
throw;
}
}
}
}
Приложение В
Программный код WPF для ведения отношения заказов
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Orders.ServiceReference1;
using Orders.SRSecurity;
using System.Xml.Linq;
using System.Data.OracleClient;
namespace Orders
{
/// <summary>
/// Interaction logic for Page1.xaml
/// </summary>
public partial class Page1 : Page
{
public delegate void GetUserPositionEventHandler(object sender, RoutedEventArgs e);
public delegate void InitializedEventHandler(object sender, RoutedEventArgs e);
Service1Client SVC = new Service1Client();
CommonClient CC = new CommonClient();
public ObservableCollection<ServiceReference1.Prixod> Prihods = new ObservableCollection<ServiceReference1.Prixod>();
public ServiceReference1.Prixod dd = new ServiceReference1.Prixod();
ObservableCollection<Prixod> _mydata = new ObservableCollection<Prixod>();
DateTime t = DateTime.Now;
public UserInfo User = new UserInfo();
public class Prixod
{
public DateTime DATE_OP { get; set; }
public string UZAK { get; set; }
public string UZAKP { get; set; }
public string GUID { get; set; }
}
public Page1()
{
InitializeComponent();
SVC.GetPrihodCompleted += new EventHandler<GetPrihodCompletedEventArgs>(SVC_GetPrihodCompleted);
SVC.GetPrihodAsync("","","");
CC.GetUserInfoAsync(new UserInfo { Login = null});
CC.GetUserInfoCompleted += new EventHandler<GetUserInfoCompletedEventArgs>(CC_GetUserInfoCompleted);
}
void CC_GetUserInfoCompleted(object sender, GetUserInfoCompletedEventArgs e)
{
CC.GetUserInfoCompleted -= new EventHandler<GetUserInfoCompletedEventArgs>(CC_GetUserInfoCompleted);
var document = XDocument.Parse(e.Result.Data);
var data = from post in document.Descendants("table")
select new UserInfo
{
Login = (string)post.Element("LOGIN")
};
User = data.First();
}
void SVC_GetPrihodCompleted(object sender, GetPrihodCompletedEventArgs e)
{
SVC.GetPrihodCompleted-= new EventHandler<GetPrihodCompletedEventArgs>(SVC_GetPrihodCompleted);
Prihods = new ObservableCollection<ServiceReference1.Prixod>(e.Result);
dg1.ItemsSource = Prihods;
}
private void dg1_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
MessageBoxButton buttons = MessageBoxButton.YesNo;
MessageBoxResult result = MessageBox.Show("Вы уверены что хотите изменить данные?", "Изменение данных", buttons);
if (result.ToString() == "Yes")
{
t = DateTime.Now;
SVC.UpdateRow(t, e.Column.SortMemberPath, ((Orders.ServiceReference1.Prixod)(e.Row.Item)).UZAK, ((System.Windows.Controls.TextBox)(e.EditingElement)).Text);
SVC.GetPrihodCompleted += new EventHandler<GetPrihodCompletedEventArgs>(SVC_GetPrihodCompleted);
SVC.GetPrihodAsync("", "","");
}
else
{
}
}
private void Page_Loaded(object sender, RoutedEventArgs e)
{
}
private void button1_Click(object sender, RoutedEventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "")
{
MessageBox.Show("Не все поля заполнены");
}
else
{
MessageBoxButton buttons = MessageBoxButton.YesNo;
MessageBoxResult result = MessageBox.Show("Вы действительно хотите добавить запись?", "Добавление данных", buttons);
if (result.ToString() == "Yes")
{
t = DateTime.Now;
SVC.AddingRow(textBox1.Text, textBox2.Text, User.Login, t);
textBox1.Text = "";
textBox2.Text = "";
SVC.GetPrihodCompleted += new EventHandler<GetPrihodCompletedEventArgs>(SVC_GetPrihodCompleted);
SVC.GetPrihodAsync("", "", "");
}
}
}
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
MessageBoxButton buttons = MessageBoxButton.YesNo;
MessageBoxResult result = MessageBox.Show("Вы действительно хотите удалить?", "Удаление данных", buttons);
int delnom = dg1.SelectedIndex;
if (result.ToString() == "Yes")
{
SVC.DeleteRow(Prihods[delnom].UZAK);
Prihods.RemoveAt(delnom);
}
}
private void btn_ser_Click(object sender, RoutedEventArgs e)
{
SVC.GetPrihodCompleted += new EventHandler<GetPrihodCompletedEventArgs>(SVC_GetPrihodCompleted);
SVC.GetPrihodAsync(SEN_S.Text,SEN_P.Text, "");
}
private void DataGridTextColumn_ImageFailed(object sender, ExceptionRoutedEventArgs e)
{
}
}
}
//public List<Prihod> getPrihod(string ParNum, string ParName, string ParPlav)
//{
// var prihodList = new List<Prihod>();
// try
// {
// string zapros = "select distinct t4.nrn,t4.ddocdate,t4.sreg_numb,t4.snomen_name,t4.snplav,t4.nquant,t3.ediz from w_parus.udo_v_certification t1 inner join (select distinct t.ncertificat, t.nrn from w_parus.udo_v_certif_trd_for003 t) t2 on t1.NRN = t2.NCERTIFICAT inner join (select tt.nrnsx, tt.ediz from tb_come_maters tt where tt.ediz is not null and tt.nrnsx is not null) t3 on t3.nrnsx = t2.nrn right join (select jt.nrn,jt.DDOCDATE,jt.SREG_NUMB,jt.SNomen_name,jt.SNplav,jt.NQuant from w_parus.udo_v_certification jt where Rownum<=20";
// if (ParNum != null && ParNum != "")
// {
// db.Params.AddWithValue("ParNum", ParNum).OracleType =
OracleType.VarChar;
// zapros += " and jt.SREG_NUMB = :ParNum";
// }
// if (ParName != null && ParName != "")
// {
// ParName = "%" + ParName + "%";
// db.Params.AddWithValue("ParName", ParName).OracleType = OracleType.VarChar;
// zapros += " and upper(jt.SNomen_name) like upper(:ParName)";
// }
// if (ParPlav != null && ParPlav != "")
// {
// ParPlav = "%" + ParPlav + "%";
// db.Params.AddWithValue("ParPlav", ParPlav).OracleType = OracleType.VarChar;
// zapros += " and upper(jt.SNplav) like upper(:ParPlav)";
// }
// zapros += ") t4 on t4.nrn = t1.NRN";
// var reader = db.GetReader(zapros, true);
// while (reader.Read())
// {
// var prihodItem = new Prihod();
// prihodItem.Nomen_name = string.IsNullOrEmpty(reader["SNomen_name"].ToString()) ? "----------" : reader["SNomen_name"].ToString();
// prihodItem.NRN = string.IsNullOrEmpty(reader["NRN"].ToString()) ? "----------" : reader["NRN"].ToString();
// prihodItem.Quant = string.IsNullOrEmpty(reader["NQuant"].ToString()) ? "----------" : reader["NQuant"].ToString();
// prihodItem.DocNumb = string.IsNullOrEmpty(reader["sreg_numb"].ToString()) ? "----------" : reader["sreg_numb"].ToString();
// prihodItem.Nplav = string.IsNullOrEmpty(reader["SNplav"].ToString()) ? "----------" : reader["SNplav"].ToString();
// try
// {
// prihodItem.DocDate = (DateTime)reader["DDOCDATE"];
// prihodItem.ConverteR = prihodItem.DocDate.Date.ToShortDateString();
// }
// catch (Exception ex)
// {
// prihodItem.DocDate = DateTime.Now.Date;
// prihodItem.ConverteR = DateTime.Now.Date.ToShortDateString();
// }
// prihodItem.EdIz = string.IsNullOrEmpty(reader["ediz"].ToString()) ? "----------" : reader["ediz"].ToString();
// prihodList.Add(prihodItem);
// }
// return prihodList;
// }
// catch { return prihodList; }
//}
Приложение Г
Программный код WCF для получения видимых данных
Г.1 код файла Iservice1
Данный файл содержит интерфейс для объявления методов, классов используемые в WCF сервисе.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WcfService1
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
[ServiceContract]
public interface IService1
{
[OperationContract]
List<Prixod> getPrihod(string dce, string uzak, string isg);
// TODO: Add your service operations here
}
// Use a data contract as illustrated in the sample below to add composite types to service operations.
public class Prixod
{
[DataMember]
public string dce { get; set; }
[DataMember]
public string uzak { get; set; }
[DataMember]
public string isg { get; set; }
[DataMember]
public int index { get; set; }
}
}
Г.2 Код файла Service1
Данный файл содержит методы и классы, которые выполняются при получении запроса от клиента.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Data.OracleClient;
namespace WcfService1
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
public class Service1 : IService1
{
public List<Prixod> getPrihod(string dce, string uzak, string isg)
{
try
{
OraDBWeb.clsDB db1 = new OraDBWeb.clsDB("work.ora.vz", "W_STUDENT1", "W_STUDENT1");
string sql = (" select dce,uzak,isg from w_uchet.def where rownum <=1000 ");
var prihodList = new List<Prixod>();
var reader = db1.GetReader(sql, true);
while (reader.Read())
{
var prihodItem = new Prixod();
prihodItem.dce = reader["DCE"].ToString();
prihodItem.uzak = reader["UZAK"].ToString();
prihodItem.isg = reader["ISG"].ToString();
prihodList.Add(prihodItem);
}
db1.Connection.Close();
//System.Threading.Thread.Sleep(1000);
return prihodList;
}
catch { return new List<Prixod>(); }
}
}
}
Приложение Д
Программный код WPF для получения видимых данных
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using System.IO;
using System.Xml;
using System.Xml.Linq;
using sla.ServiceReference1;
using sla.ServiceReference2;
namespace sla
{
public partial class MainPage : UserControl
{
public int timer;
public string strxml;
Service1Client SVC = new Service1Client();
wscMMKSoapClient SVC2 = new wscMMKSoapClient(); //wcf servise wscMMK
public double Curdate;
public ObservableCollection<ServiceReference1.Prixod> Prihods = new ObservableCollection<ServiceReference1.Prixod>();
System.Windows.Threading.DispatcherTimer myDispatcherTimer = new System.Windows.Threading.DispatcherTimer();
System.Windows.Threading.DispatcherTimer myDispatcherTimer1 = new System.Windows.Threading.DispatcherTimer();
public class M
{
public string[] mass = new string[13];
public int[] mass1 = new int[13];
public string h;
public int intA;
public void add(string sd,int fg)
{
if (intA != 13)
{
mass[intA] = sd;
mass1[intA] = fg;
intA += 1;
}
if (intA == 13)
{
for (int o = 12; o > 0; o--)
{
mass[o] = mass[o - 1];
mass1[o] = mass1[o - 1];
}
mass[0] = sd;
mass1[0] = fg;
}
}
}
M dob = new M();
public sla.ServiceReference1.Prixod dd = new sla.ServiceReference1.Prixod();
public int azx;
public int index2;
public class Prixod
{
public string dce { get; set; }
public string uzak { get; set; }
public string isg { get; set; }
public int index { get;set;}
}
public class WCFSERV
{
public int index1 { get; set; }
public string RN { get; set; }
public string OBOZN { get; set; }
public string VI { get; set; }
public string TVNAIM { get; set; }
public string TVMASSA { get; set; }
public string DOLY { get; set; }
public string IND_NALCOMP { get; set; }
public string RN_ISPOB { get; set; }
public string VID_ISPOB { get; set; }
public string TIP_ISPOB { get; set; }
public string IND_OBJ { get; set; }
public string IND_NOMZA { get; set; }
public string IND_NZ_PLAN { get; set; }
public string NOMIZM_TV { get; set; }
public string KR_STRING { get; set; }
public string MO_STRING { get; set; }
public string TRUD_STRING { get; set; }
public string OBOZN_TZAG { get; set; }
public string RN_ISPOB_TZAG { get; set; }
public string NORMRASH { get; set; }
public string GEOMR_DL { get; set; }
public string KDZ { get; set; }
public string VESZAG { get; set; }
public string EI_TZAG { get; set; }
}
ObservableCollection<WCFSERV> mydata2 = new ObservableCollection<WCFSERV>();
ObservableCollection<WCFSERV> mydata = new ObservableCollection<WCFSERV>();
public MainPage()
{
SVC.getPrihodCompleted += new EventHandler<getPrihodCompletedEventArgs>(SVC_getPrihodCompleted);
SVC.getPrihodAsync("", "", "");
SVC2.TV_FindCompleted += new EventHandler<TV_FindCompletedEventArgs>(SVC2_TV_FindCompleted);
myDispatcherTimer.Interval = new TimeSpan(0, 0, 0, 5);
myDispatcherTimer.Tick += new EventHandler(myDispatcherTimer_Tick);
myDispatcherTimer1.Interval = new TimeSpan(0, 0, 0, 0,1);
myDispatcherTimer1.Tick += new EventHandler(myDispatcherTimer1_Tick);
InitializeComponent();
}
void SVC2_TV_FindCompleted(object sender, TV_FindCompletedEventArgs e)
{
index2++;
XDocument xmlDoc = XDocument.Parse(Convert.ToString(e.Result.Nodes[1]));
IEnumerable<WCFSERV> mydata = (from post in xmlDoc.Descendants("Table")
select new WCFSERV
{
index1 = (int)index2 ,
RN = (string)post.Element("RN"),
OBOZN = (string)post.Element("OBOZN"),
VI = (string)post.Element("VI"),
TVNAIM = (string)post.Element("TVNAIM"),
TVMASSA = (string)post.Element("TVMASSA"),
DOLY = (string)post.Element("DOLY"),
IND_NALCOMP = (string)post.Element("IND_NALCOMP"),
RN_ISPOB = (string)post.Element("RN_ISPOB"),
VID_ISPOB = (string)post.Element("VID_ISPOB"),
TIP_ISPOB = (string)post.Element("TIP_ISPOB"),
IND_OBJ = (string)post.Element("IND_OBJ"),
IND_NOMZA = (string)post.Element("IND_NOMZA"),
IND_NZ_PLAN = (string)post.Element("IND_NZ_PLAN"),
NOMIZM_TV = (string)post.Element("NOMIZM_TV"),
KR_STRING = (string)post.Element("KR_STRING"),
MO_STRING = (string)post.Element("MO_STRING"),
TRUD_STRING = (string)post.Element("TRUD_STRING"),
OBOZN_TZAG = (string)post.Element("OBOZN_TZAG"),
RN_ISPOB_TZAG = (string)post.Element("RN_ISPOB_TZAG"),
NORMRASH = (string)post.Element("NORMRASH"),
GEOMR_DL = (string)post.Element("GEOMR_DL"),
KDZ = (string)post.Element("KDZ"),
VESZAG = (string)post.Element("VESZAG"),
EI_TZAG = (string)post.Element("EI_TZAG")
});
foreach (WCFSERV elem in mydata)
{
mydata2.Add(elem);
}
dgd2.ItemsSource = mydata2;
myDispatcherTimer1.Stop();
textBox1.Text += "Время запроса: " + Convert.ToString(timer) + " m/c" + '\r';
dgd1.IsEnabled = true;
}
void SVC_getPrihodCompleted(object sender, getPrihodCompletedEventArgs e)
{
SVC.getPrihodCompleted -= new EventHandler<getPrihodCompletedEventArgs>(SVC_getPrihodCompleted);
Prihods = (ObservableCollection<ServiceReference1.Prixod>)e.Result;
dgd1.ItemsSource = Prihods;
for (int a = 0; a < Prihods.Count; a++)
{
Prihods[a].index = a;
// mydata = Prihods;
}
}
private void dgd1_LoadingRow(object sender, DataGridRowEventArgs e)
{
dd = (sla.ServiceReference1.Prixod)e.Row.DataContext;
dob.add(dd.dce, dd.index);
myDispatcherTimer.Start();
}
public void myDispatcherTimer1_Tick(object o, EventArgs sender)
{
timer++;
}
public void myDispatcherTimer_Tick(object o, EventArgs sender)
{
azx += 1;
for (int h = 0; h <= 12; h++)
{
SVC2.TV_FindAsync(dob.mass[h], false, false, false, false, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", Convert.ToDateTime( "11.11.2011"), "");
timer = 0;
myDispatcherTimer1.Start();
dgd1.IsEnabled = false;
}
myDispatcherTimer.Stop();
}
private void dgd1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
sla.ServiceReference1.Prixod asg = (sla.ServiceReference1.Prixod)dgd1.SelectedItem;
SVC2.TV_FindCompleted += new EventHandler<TV_FindCompletedEventArgs>(SVC2_TV_FindCompleted);
SVC2.TV_FindAsync(asg.dce, false, false, false, false, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", Convert.ToDateTime("11.11.2011"), "");
timer = 0;
myDispatcherTimer1.Start();
dgd1.IsEnabled = false;
}}