public bool FormatReport(string fullPathXmlFileName, string fullPathReportGeneratorFileName) { if (string.IsNullOrEmpty(fullPathXmlFileName) || string.IsNullOrEmpty(fullPathReportGeneratorFileName)) { return(false); } // check for existences of files if (!File.Exists(fullPathXmlFileName)) { return(false); } if (!File.Exists(fullPathReportGeneratorFileName)) { return(false); } if (cryRptDoc == null) { cryRptDoc = new ReportDocument(); if (cryRptDoc == null) { return(false); } } // create temp dataset to read xml information RunDataSet1 dsTempReport = new RunDataSet1(); try { // using ReadXml method of DataSet read XML data from books.xml file dsTempReport.ReadXml(fullPathXmlFileName, XmlReadMode.IgnoreSchema); GetTableData(dsTempReport); cryRptDoc.Load(fullPathReportGeneratorFileName); cryRptDoc.SetDataSource(dsTempReport); AdjustLayout(cryRptDoc); } catch (Exception ex) { MessageBox.Show(ex.Message); return(false); } return(true); }
private void GetTableData(RunDataSet1 dsTempReport) { if (dsTempReport == null) { return; } ClearDisplayElementData(); for (int i = 0; i < dsTempReport.Tables.Count; i++) { DataTable dtable = dsTempReport.Tables[i]; if (dtable.TableName == TableNameRunDetails) { for (int j = 0; j < dtable.Rows.Count; j++) { DataRow objDataRow = dtable.Rows[j]; if (objDataRow == null) { continue; } int nIndex = 0; foreach (DataColumn objDataColumn in dtable.Columns) { System.Diagnostics.Debug.WriteLine(String.Format("Column Name = {0}, Value = {1}", objDataColumn.ColumnName, objDataRow[objDataColumn])); if ((objDataRow[objDataColumn] != null || objDataRow[objDataColumn] != System.DBNull.Value) && objDataRow[objDataColumn].GetType() == (typeof(string))) { string sData = (string)objDataRow[objDataColumn]; if (string.IsNullOrEmpty(sData)) { continue; } nIndex = 0; do { nIndex = lstRunDetailsDisplayElements.FindIndex(nIndex, x => { return(!string.IsNullOrEmpty(x.TableFieldName) && x.TableFieldName.ToLower() == objDataColumn.ColumnName.ToLower()); }); if (0 <= nIndex) { if (string.IsNullOrEmpty(lstRunDetailsDisplayElements[nIndex].Name)) { lstRunDetailsDisplayElements[nIndex].Name = sData; } else { // assume longer strings occupy more spaces. if (lstRunDetailsDisplayElements[nIndex].Name.Length < sData.Length) { lstRunDetailsDisplayElements[nIndex].Name = sData; } } nIndex++; } } while (0 <= nIndex); } } } } if (dtable.TableName == TableNameRunSummary) { for (int j = 0; j < dtable.Rows.Count; j++) { DataRow objDataRow = dtable.Rows[j]; if (objDataRow == null) { continue; } int nIndex = 0; foreach (DataColumn objDataColumn in dtable.Columns) { if ((objDataRow[objDataColumn] != null || objDataRow[objDataColumn] != System.DBNull.Value) && objDataRow[objDataColumn].GetType() == (typeof(string))) { string sData = (string)objDataRow[objDataColumn]; if (string.IsNullOrEmpty(sData)) { continue; } nIndex = lstRunSummaryDisplayElements.FindIndex(x => { return(!string.IsNullOrEmpty(x.ColumnName) && x.ColumnName.ToLower() == objDataColumn.ColumnName.ToLower()); }); if (0 <= nIndex) { lstRunSummaryDisplayElements[nIndex].ListData.Add(sData); } } } } } } }