Beispiel #1
0
        private void CreateReportViewer()
        {
            Rpt = new myReport();

            #region Закомментировал Лавров В.В. Подготовка данных для вывода в отчет

            //// Исходные данные для отчета
            //List<cReportList> RepListInput = new List<cReportList>();
            //RepListInput.Add(new cReportList("Температура воздуха на выходе из рекуператора, °C", ML.tв2.ToString()));
            //RepListInput.Add(new cReportList("Температура воздуха на входе в рекуператор, °C", ML.tв1.ToString()));
            //RepListInput.Add(new cReportList("Температура продуктов сгорания перед рекуператором, °C", ML.tд1.ToString()));
            //RepListInput.Add(new cReportList("Расход воздуха, м3/с", ML.Vв.ToString()));
            //RepListInput.Add(new cReportList("Расход продуктов сгорания, м3/с", ML.Vд.ToString()));
            //RepListInput.Add(new cReportList("Количество вещества, %", ML.СO2.ToString()));
            //RepListInput.Add(new cReportList("Количество вещества, %", ML.H2O.ToString()));
            //RepListInput.Add(new cReportList("Поправка на длину канала для Крек", ML.Kl.ToString()));
            //RepListInput.Add(new cReportList("Коэффициент излучения АЧТ, Вт/(м2*К4)", ML.Co.ToString()));
            //RepListInput.Add(new cReportList("Поправка для Крек", ML.Ки.ToString()));
            //RepListInput.Add(new cReportList("Эмпирический коэффициент для воздуха 1", ML.A.ToString()));
            //RepListInput.Add(new cReportList("Эмпирический коэффициент для воздуха 2", ML.n.ToString()));
            //RepListInput.Add(new cReportList("Эмпирический коэффициент для воздуха 3", ML.m.ToString()));
            //RepListInput.Add(new cReportList("Эмпирический коэффициент для продуктов сгорания 1", ML.A1.ToString()));
            //RepListInput.Add(new cReportList("Эмпирический коэффициент для продуктов сгорания 2", ML.n1.ToString()));
            //RepListInput.Add(new cReportList("Эмпирический коэффициент для продуктов сгорания 3", ML.m1.ToString()));
            //RepListInput.Add(new cReportList("Коэффициент теплопроводности 1, Вт/(м3*оС)", ML.λ.ToString()));
            //RepListInput.Add(new cReportList("Коэффициент кинематической вязкости 1, м2/с", ML.ν10.ToString()));
            //RepListInput.Add(new cReportList("Число Прандтля 1", ML.Pr.ToString()));
            //RepListInput.Add(new cReportList("Коэффициент кинематической вязкости 2, м2/с", ML.ν_10.ToString()));
            //RepListInput.Add(new cReportList("Число Прандтля 2", ML.Pr1.ToString()));
            //RepListInput.Add(new cReportList("Коэффициент теплопроводности 2, Вт/(м3*оС)", ML.λ1.ToString()));
            //RepListInput.Add(new cReportList("Внешний диаметр трубы, м", ML.d.ToString()));
            //RepListInput.Add(new cReportList("Внутренний диаметр трубы, м", ML.dэ.ToString()));
            //RepListInput.Add(new cReportList("Проходное сечение для воздуха, м2", ML.wв.ToString()));
            //RepListInput.Add(new cReportList("Проходное сечение для продуктов сгорания, м2", ML.wд.ToString()));
            //RepListInput.Add(new cReportList("Поправочный коэффициент", ML.ɛdt.ToString()));
            //RepListInput.Add(new cReportList("Поправочный коэффициент на длину канала", ML.Kl1.ToString()));
            //RepListInput.Add(new cReportList("Поправочный коэффициент на число труб", ML.Kz.ToString()));
            //RepListInput.Add(new cReportList("Поправочный коэффициент 1", ML.Kt.ToString()));
            //RepListInput.Add(new cReportList("Интегральная степень черноты", ML.ɛг.ToString()));
            //RepListInput.Add(new cReportList("Значение доли излучения АЧТ", ML.αг2.ToString()));
            //RepListInput.Add(new cReportList("Значение доли излучения АЧТ", ML.αст2.ToString()));
            //RepListInput.Add(new cReportList("Радиус", ML.r.ToString()));


            //// Результаты расчета
            //List<cReportList> RepListOutput = new List<cReportList>();
            //RepListOutput.Add(new cReportList("Теплоемкость воздуха, Дж/(м3K)", Math.Round(ML.get_Св(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Теплоемкость дыма, Дж/(м3K)", Math.Round(ML.get_Сд(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Энтальпия воздуха при начальной температуре, кДж/м3", Math.Round(ML.get_Iв1(), 1).ToString()));
            //RepListOutput.Add(new cReportList("Энтальпия воздуха при конечной температуре, кДж/м3", Math.Round(ML.get_Iв2()).ToString()));
            //RepListOutput.Add(new cReportList("Энтальпия дыма при начальной температуре, кДж/м3", Math.Round(ML.get_Iд1()).ToString()));
            //RepListOutput.Add(new cReportList("Средняя температура воздуха, оС", Math.Round(ML.get_Tв()).ToString()));
            //RepListOutput.Add(new cReportList("Фактическая скорость воздуха, м/с", Math.Round(ML.get_Wво(), 3).ToString()));
            //RepListOutput.Add(new cReportList("Фактическая скорость продуктов сгорания, м/с", Math.Round(ML.get_Wдо(), 3).ToString()));
            //RepListOutput.Add(new cReportList("Действительная скорость воздуха, м/с", Math.Round(ML.get_Wв(), 3).ToString()));
            //RepListOutput.Add(new cReportList("Действительная скорость продуктов сгорания, м/с", Math.Round(ML.get_Wд(), 3).ToString()));
            //RepListOutput.Add(new cReportList("Количество тепла, переданного воздуху, Квт", Math.Round(ML.get_Qв(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Количество тепла,вносимое в теплообменный аппарат продуктами сгорания, Квт", Math.Round(ML.get_Qд1(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Количество тепла,уносимое продуктами сгорания, Квт", Math.Round(ML.get_Qд2(), 1).ToString()));
            //RepListOutput.Add(new cReportList("Энтальпия продуктов сгорания, кДж/м3", Math.Round(ML.get_iд2(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Температура продуктов сгорания после рекуператора, оС", Math.Round(ML.get_Tд2(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Cреднелогарифмическая разность температур", Math.Round(ML.get_tср(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Параметр", Math.Round(ML.get_R(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Параметр", Math.Round(ML.get_P(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Число Рейнольдса 1", Math.Round(ML.get_Re(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Средняя температура дыма, °C", Math.Round(ML.get_Tд(), 3).ToString()));
            //RepListOutput.Add(new cReportList("Средняя температура стенки рекуператора, °C", Math.Round(ML.get_Tст(), 3).ToString()));
            //RepListOutput.Add(new cReportList("Отношение Тст/Тв", Math.Round(ML.get_Тст_Тв(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Поправочный коэффициент", Math.Round(ML.get_kt(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Поправочный коэффициент (если изогнута труба)", Math.Round(ML.get_Ku(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Суммарный поправочный коэффициент 1", Math.Round(ML.get_К_рек(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Число Нуссельта 1", Math.Round(ML.get_Nu(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Коэффициент теплоотдачи конвекцией на пути движения воздуха, Вт/(м^2*оС)", Math.Round(ML.get_aв1(), 1).ToString()));
            //RepListOutput.Add(new cReportList("Коэффициент теплоотдачи конвекцией в пересчете на поверхность наружной трубы, Вт/(м^2*оС)", Math.Round(ML.get_aв1(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Число Рейнольдса 2", Math.Round(ML.get_Re1(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Суммарный поправочный коэффициент 2", Math.Round(ML.get_К_рек1()).ToString()));
            //RepListOutput.Add(new cReportList("Число Нуссельта 2", Math.Round(ML.get_Nu1(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Коэффициент конвективной теплоотдачи", Math.Round(ML.get_αкд(), 1).ToString()));
            //RepListOutput.Add(new cReportList("Эффективная длина луча", Math.Round(ML.get_Sэф(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Коэффициент для газовой части печной среды", Math.Round(ML.get_kг(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Отношение Ср/Нр", Math.Round(ML.get_Cp_Hp(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Коэффициент", Math.Round(ML.get_kc(), 3).ToString()));
            //RepListOutput.Add(new cReportList("Связующая величина", Math.Round(ML.get_x(), 3).ToString()));
            //RepListOutput.Add(new cReportList("Расчетное значение доли излучения АЧТ", Math.Round(ML.get_ɛг2(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Коэффициент лучистой теплоотдачи, Вт/(м^2*оС)", Math.Round(ML.get_αдл(), 1).ToString()));
            //RepListOutput.Add(new cReportList("Суммарный коэффициент теплоотдачи от пс к стенке, Вт/(м^2*оС)", Math.Round(ML.get_αд(), 1).ToString()));
            //RepListOutput.Add(new cReportList("Коэффициент теплопередачи, Вт/(м^2*оС)", Math.Round(ML.get_Кзвезд(), 3).ToString()));
            //RepListOutput.Add(new cReportList("Коэффициент теплопередачи с учетом загрязнения труб, Вт/(м^2*оС)", Math.Round(ML.get_K(), 3).ToString()));
            //RepListOutput.Add(new cReportList("Поверхность нагрева", Math.Round(ML.get_Fзвезд(), 3).ToString()));
            //RepListOutput.Add(new cReportList("Плотность теплового потока от продуктов сгорания к воздуху, Вт/м2", Math.Round(ML.get_q(), 2).ToString()));
            //RepListOutput.Add(new cReportList("Максимальная температура стенки", Math.Round(ML.get_t_ст_max(), 2).ToString()));

            #endregion Закомментировал Лавров В.В. Подготовка данных для вывода в отчет

            #region Подготовить данные для вывода в отчет

            // Исходные данные в отчет только те, которые отметил пользователь (IsReport=true)
            List <cReportList> RepListInput = new List <cReportList>();
            foreach (Param par in _allParamsInput)
            {
                if (par.IsReport)
                {
                    double d = Math.Round(Convert.ToDouble(
                                              propertyGrid1.SelectedObject.GetType().GetProperty(par.PropertyName).GetValue(
                                                  propertyGrid1.SelectedObject, null)), 3);
                    RepListInput.Add(new cReportList(par.Description, d.ToString()));
                }
            }
            // Результаты расчета в отчет только те, которые отметил пользователь (IsReport=true)
            DataOutput         _dataOutput   = new DataOutput(ML);
            List <cReportList> RepListOutput = new List <cReportList>();
            foreach (Param par in _allParamsOutput)
            {
                if (par.IsReport)
                {
                    double d = Math.Round(Convert.ToDouble(
                                              _dataOutput.GetType().GetProperty(par.PropertyName).GetValue(_dataOutput, null)), 3);
                    RepListOutput.Add(new cReportList(par.Description, d.ToString()));
                }
            }
            #endregion Подготовить данные для вывода в отчет


            // Указать отчету источники данных
            Rpt.cReportInputBindingSource.DataSource  = RepListInput;;
            Rpt.cReportOutputBindingSource.DataSource = RepListOutput;

            // Показать окно отчета на весь экран
            Rpt.WindowState = FormWindowState.Maximized;
            Rpt.ShowDialog(this);
        }
Beispiel #2
0
        private void FormOptionDefault()
        {
            // Показать в заголовке главного окна номер текущей версии и пользвателя
            this.Text = this.Text + " [версия " + Assembly.GetExecutingAssembly().GetName().Version.ToString() + "]";

            // Установить редактируемый объект в PropertyGrid
            propertyGrid1.SelectedObject = new DataInput(ML);


            #region -- Заполнить перечень показателей в отчет: исходные данные
            if (File.Exists("cfgInputToRep.xml"))
            {
                XmlSerializer xmls = new XmlSerializer(typeof(List <Param>));
                FileStream    fs   = null;
                try
                {
                    fs = new FileStream("cfgInputToRep.xml", FileMode.Open);
                    _allParamsInput = (List <Param>)xmls.Deserialize(fs);
                }
                catch
                {
                }
                finally
                {
                    if (fs != null)
                    {
                        fs.Close();
                    }
                }
            }
            else
            {
                PropertyInfo[] pArr = propertyGrid1.SelectedObject.GetType().GetProperties();
                if (pArr != null)
                {
                    foreach (PropertyInfo p in pArr)
                    {
                        string   descr = "";
                        object[] attr  = p.GetCustomAttributes(false);
                        if (attr != null)
                        {
                            foreach (object a in attr)
                            {
                                if (a is DisplayNameAttribute)
                                {
                                    descr += (a as DisplayNameAttribute).DisplayName;
                                }
                                if (a is CategoryAttribute)
                                {
                                    descr = descr.Insert(0, (a as CategoryAttribute).Category + ". ");
                                }
                            }
                        }
                        Param par = new Param(0);
                        par.Description  = descr;
                        par.IsReport     = false;
                        par.PropertyName = p.Name;
                        _allParamsInput.Add(par);
                    }
                }
            }
            #endregion

            #region -- Заполнить перечень показателей в отчет: результаты расчета
            //if (File.Exists("cfgOutputToRep.xml"))
            //{
            //    XmlSerializer xmls = new XmlSerializer(typeof(List<Param>));
            //    FileStream fsOut = null;
            //    try
            //    {
            //        fsOut = new FileStream("cfgOutputToRep.xml", FileMode.Open);
            //        _allParamsOutput = (List<Param>)xmls.Deserialize(fsOut);
            //    }
            //    catch
            //    {
            //    }
            //    finally
            //    {
            //        if (fsOut != null) fsOut.Close();
            //    }
            //}
            //else
            {
                DataOutput     _dataOut = new DataOutput(ML);
                PropertyInfo[] pArrOut  = _dataOut.GetType().GetProperties();
                if (pArrOut != null)
                {
                    foreach (PropertyInfo p in pArrOut)
                    {
                        string   descrOut = "";
                        object[] attrOut  = p.GetCustomAttributes(false);
                        if (attrOut != null)
                        {
                            foreach (object a in attrOut)
                            {
                                if (a is DisplayNameAttribute)
                                {
                                    descrOut += (a as DisplayNameAttribute).DisplayName;
                                }
                                if (a is CategoryAttribute)
                                {
                                    descrOut = descrOut.Insert(0, (a as CategoryAttribute).Category + ", ");
                                }
                            }
                        }
                        Param parOut = new Param(0);
                        parOut.Description  = descrOut;
                        parOut.IsReport     = false;
                        parOut.PropertyName = p.Name;
                        _allParamsOutput.Add(parOut);
                    }
                }
            }
            #endregion
        }