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 }
public void CreateReportViewer() { frmRpt = new RepForm(); // Исходные данные в отчет только те, которые отметил пользователь (IsReport=true) DataInput _DataInput = new DataInput(c); List <cReportList> RepListInput = new List <cReportList>(); foreach (KonverSywul.Class.Param par in _allParamsInput) { if (par.IsReport) { if (_DataInput.GetType().GetProperty(par.PropertyName).GetValue(_DataInput, null) != null) { double d = Math.Round(Convert.ToDouble( _DataInput.GetType().GetProperty(par.PropertyName).GetValue( _DataInput, null)), 3); RepListInput.Add(new KonverSywul.Class.cReportList(par.Description, d.ToString())); } } } frmRpt.cReportInputBindingSource.DataSource = RepListInput; // Результаты расчета в отчет только те, которые отметил пользователь (IsReport=true) DataOutput _DataOutput = new DataOutput(c); List <cReportList> RepListOutput = new List <cReportList>(); foreach (KonverSywul.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 KonverSywul.Class.cReportList(par.Description, d.ToString())); } } // Указать отчету источники данных frmRpt.cReportInputBindingSource.DataSource = RepListInput; frmRpt.cParamOutputBindingSource.DataSource = RepListOutput; // Показать окно отчета на весь экран frmRpt.WindowState = FormWindowState.Maximized; frmRpt.ShowDialog(this); }
private void FormOptionDefault() { // Показать в заголовке главного окна номер текущей версии и пользвателя this.Text = this.Text + " [" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + "]"; // Установить редактируемый объект в PropertyGrid _DataInput = new DataInput(c); _DataOutput = new DataOutput(c); //btn_OpenGR.Enabled = false; //btn_OpenReport.Enabled = false; string path = Application.UserAppDataPath.ToString() + @"\"; #region -- Заполнить перечень показателей в отчет: исходные данные #region -- Исходные данные if (File.Exists(path + "cfgInputToRep.xml")) { XmlSerializer xmls = new XmlSerializer(typeof(List <KonverSywul.Class.Param>)); FileStream fs = null; try { // Исходные данные fs = new FileStream(path + "cfgInputToRepDP1.xml", FileMode.Open); _allParamsInput = (List <KonverSywul.Class.Param>)xmls.Deserialize(fs); } catch { } finally { if (fs != null) { fs.Close(); } } } else { DataInput _dataIn = new DataInput(c); 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 + ", "); } } } KonverSywul.Class.Param parIn = new KonverSywul.Class.Param(0); parIn.Description = descrIn; parIn.IsReport = true; parIn.PropertyName = p.Name; _allParamsInput.Add(parIn); } } } #endregion -- Исходные данные #endregion #region -- Заполнить перечень показателей в отчет: результаты расчета if (File.Exists(path + "cfgOutputToRep.xml")) { XmlSerializer xmls = new XmlSerializer(typeof(List <KonverSywul.Class.Param>)); FileStream fsOut = null; try { fsOut = new FileStream(path + "cfgOutputToRep.xml", FileMode.Open); _allParamsOutput = (List <KonverSywul.Class.Param>)xmls.Deserialize(fsOut); } catch { } finally { if (fsOut != null) { fsOut.Close(); } } } else { DataOutput _dataOut = new DataOutput(c); 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 + ", "); } } } KonverSywul.Class.Param parOut = new KonverSywul.Class.Param(0); parOut.Description = descrOut; parOut.IsReport = true; parOut.PropertyName = p.Name; _allParamsOutput.Add(parOut); } } } #endregion }