コード例 #1
0
        private void CreateReportViewer()
        {
            frmRpt = new frm_Report();

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

            // Исходные данные в отчет 
            DataInput_HB _DataInput_HB = new DataInput_HB(HB);
            List<cReportList> RepListInputHB = new List<cReportList>();
            foreach (HeatBalance.Class.Param par in _allParamsInput)
            {
                if (par.IsReport)
                {
                    if (_DataInput_HB.GetType().GetProperty(par.PropertyName).GetValue(_DataInput_HB, null) != null)
                    {
                        double d = Math.Round(Convert.ToDouble(
                            _DataInput_HB.GetType().GetProperty(par.PropertyName).GetValue(
                            _DataInput_HB, null)), 3);
                        RepListInputHB.Add(new HeatBalance.Class.cReportList(par.Description, d.ToString()));
                    }
                }
            }
            frmRpt.cReportInputBindingSource.DataSource = RepListInputHB;
            // Результаты расчета в отчет 
            DataOutput _dataOutput = new DataOutput(HB);
            List<cReportList> RepListOutput = new List<cReportList>();
            foreach (HeatBalance.Class.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 HeatBalance.Class.cReportList(par.Description, d.ToString()));
                }
            }
            #endregion

            #region Указать отчету источники данных                
            frmRpt.cReportInputBindingSource.DataSource = RepListInputHB;
            frmRpt.cReportOutputBindingSource.DataSource = RepListOutput;
            #endregion

            #region Показать окно отчета на весь экран
            frmRpt.WindowState = FormWindowState.Maximized;
            frmRpt.ShowDialog(this);
            #endregion
        }
コード例 #2
0
        private void FormOptionDefault()
        {
            btn_Diagramma.Enabled = false;
            btn_report.Enabled = false;   
            // Показать в заголовке главного окна номер текущей версии и пользвателя
            this.Text = this.Text + " [" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + "]";
            // Установить редактируемый объект в PropertyGrid
            _DataInput = new DataInput_HB(HB);
            propertyGrid1.SelectedObject = _DataInput;
            //btn_OpenGR.Enabled = false;
            //btn_OpenReport.Enabled = false;

            string path = Application.UserAppDataPath.ToString() + @"\";

            #region -- Заполнить перечень показателей в отчет: исходные данные          
            if (File.Exists(path + "cfgInputToRep.xml"))
            {
                XmlSerializer xmls = new XmlSerializer(typeof(List<HeatBalance.Class.Param>));
                FileStream fs = null;
                try
                {
                    // Исходные данные
                    fs = new FileStream(path + "cfgInputToRepDP1.xml", FileMode.Open);
                    _allParamsInput = (List<HeatBalance.Class.Param>)xmls.Deserialize(fs);

                }
                catch
                {
                }
                finally
                {
                    if (fs != null) fs.Close();
                }
            }
            else
            {
                DataInput_HB _dataIn = new DataInput_HB(HB);
                PropertyInfo[] pArrIn = _dataIn.GetType().GetProperties();
                if (pArrIn != null)
                    foreach (PropertyInfo p in pArrIn)
                    {
                        string descrIn = "";
                        object[] attrIn = p.GetCustomAttributes(false);
                        if (attrIn != null)
                            foreach (object a in attrIn)
                            {
                                if (a is DisplayNameAttribute) descrIn += (a as DisplayNameAttribute).DisplayName;
                                if (a is CategoryAttribute) descrIn = descrIn.Insert(0, (a as CategoryAttribute).Category + ", ");
                            }
                        HeatBalance.Class.Param parIn = new HeatBalance.Class.Param(0);
                        parIn.Description = descrIn;
                        parIn.IsReport = true;
                        parIn.PropertyName = p.Name;
                        _allParamsInput.Add(parIn);
                    }
            }           
            #endregion

            #region -- Заполнить перечень показателей в отчет: результаты расчета
            if (File.Exists(path + "cfgOutputToRep.xml"))
            {
                XmlSerializer xmls = new XmlSerializer(typeof(List<HeatBalance.Class.Param>));
                FileStream fsOut = null;
                try
                {
                    fsOut = new FileStream(path + "cfgOutputToRep.xml", FileMode.Open);
                    _allParamsOutput = (List<HeatBalance.Class.Param>)xmls.Deserialize(fsOut);
                }
                catch
                {
                }
                finally
                {
                    if (fsOut != null) fsOut.Close();
                }
            }
            else
            {
                DataOutput _dataOut = new DataOutput(HB);
                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 + ", ");
                            }
                        HeatBalance.Class.Param parOut = new HeatBalance.Class.Param(0);
                        parOut.Description = descrOut;
                        parOut.IsReport = true;
                        parOut.PropertyName = p.Name;
                        _allParamsOutput.Add(parOut);
                    }
            }
            #endregion
            
        }