void ExportToHTML(List <DataTable> aTables, List <string> aDetails, List <string> aFooter, string aFilePath, bool aIsThermal = false, bool ArabicFlowDirection = false, bool colored = false) { StreamWriter sr = new StreamWriter(aFilePath, false, UTF8Encoding.UTF8); string Width = aIsThermal ? " width: 350px ;" : "; width:100% ;"; string direction = ArabicFlowDirection ? "rtl" : "ltr"; /// Printing Headers and linking style sr.Write(@"<!DOCTYPE html> <html lang='en'> <head> <meta charset=""UTF-8"" /> </head> "); // <title> Sari Title </title> //<link rel=""stylesheet"" href=""style.css""> #region STYLESHEET sr.Write("<style>/*CALCIUM|RMS REPORTING STYLE ALL RIGHT RESERVERED 2013 CALCIUM */table.TableStyle1 { table-layout: fixed;width:100%;font-family: \"simplified arabic\",arial,sans-serif;color:#333333;border-width: 1px;border-color: #a9c6c9;border-collapse: collapse; }table.TableStyle1 th {color:#000 ;border-width: 1px;padding: 2px;border-color: #a9c6c9 ; word-wrap:break-word;font-size:14pt;font-family:\"simplified arabic\",sans-serif;border-style: solid;}table.TableStyle1 td{text-align:center;border-width: 1px;padding: 2px;border-style: solid;border-color: #a9c6c9;word-wrap:break-word; font-family:\"century gothic\",sans-serif;font-size:12pt;}table.TableStyle1NoBorder { table-layout: fixed;width:100%;font-family: \"simplified arabic\",arial,sans-serif;color:#333333; }table.TableStyle1NoBorder th {color:#000 ;padding: 2px;word-wrap:break-word;font-size:14pt;font-family:\"simplified arabic\",sans-serif;}table.TableStyle1NoBorder td{text-align:center;padding: 2px;word-wrap:break-word; font-family:\"century gothic\",sans-serif;font-size:12pt;}table.ThermalNoBorder { table-layout: fixed;width:100%;font-family: arial,sans-serif;color:#000;}table.ThermalNoBorder th {color:#000 ;text-decoration:underline;padding: 2px;word-wrap:break-word;font-size:14pt;font-weight:bold;font-family:arial,sans-serif;}table.ThermalNoBorder td{padding: 2px;word-wrap:break-word; font-family:arial,sans-serif;font-size:12pt;font-weight:bold;} table.ThermalBorder { table-layout: fixed;width:100%;font-family: sans-serif;color:#000;border-width: 1px;border-color: #000;border-collapse: collapse; }table.ThermalBorder th {color:#000 ;border-width: 1px;padding: 2px;border-color: #000 ; word-wrap:break-word;font-size:14pt;font-family:sans-serif,sans-serif;border-style: solid;font-weight:bold;}table.ThermalBorder td{border-width: 1px;padding: 2px;border-style: solid;border-color: #000;word-wrap:break-word; font-family:arial,sans-serif;font-size:12pt;font-weight:bold;} table.TableIsHeaderOnly { table-layout: fixed;width:100%;font-family: verdana,arial,sans-serif;}table.TableIsHeaderOnly th{color:#000000 ;width:100%; text-decoration:underline;word-wrap:break-word;font-size:12pt;font-family: arial,sans-serif;text-align:center;}h1{width:100%;margin:0;margin-bottom:1px;font-family: arial,tahoma,sans-serif;font-size:14pt;text-align:center;word-wrap:break-word;font-weight:bold;}h2 {width:100%;margin:0;margin-bottom:1px;font-family: arial,tahoma,sans-serif;font-size:12pt;text-align:left;word-wrap:break-word;font-weight:normal;}h3 {width:100%;margin:0;margin-bottom:1px;font-family: tahoma,sans-serif;font-size:11pt;;text-align:left;word-wrap:break-word;font-weight:normal;}footer {footer-layout: fixed;<!--background: #ccc;-->width:100%;}footer p{<!--color:#000;-->font-size:14pt;font-weight:bold;font-family: tahoma, sans-serif;text-align:center;margin:1;padding:10px ;}hr {border: 0;border-bottom: 1px dashed #000;background: #fff; }.oddrowcolor{background-color:#d4e3e5;/*d4e3e5*/}.evenrowcolor{background-color:#c3dde0;/*#c3dde0*/}</style>"); #endregion STYLESHEET sr.WriteLine("<body dir=\"" + direction + "\">"); sr.WriteLine("<center>"); sr.WriteLine("<div style=\"" + Width + "\" >"); if (ConfigurationHelper.IsPrintLogoEnabled()) //LOGO { sr.WriteLine("<div style=\"text-align: center\">"); sr.WriteLine("<img src=\"" + System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\logo.jpg\" style=\"float: middle;\" alt=\"logo\" />"); sr.WriteLine("</div>"); } List <string> details = new List <string>(aDetails); for (int i = 0; i < details.Count; i++) { if (details[i] == null) //bug fix V01I Septemper 18 2013 By Sari Sultan { continue; } if (details[i].ToString().IndexOf("<h") != -1) { sr.WriteLine(details[i]); } else { sr.WriteLine("<h1> " + details[i] + " </h1>"); } } sr.Close(); foreach (DataTable dt in aTables) { printTable(dt, aFilePath, aIsThermal); sr = new StreamWriter(aFilePath, true, UTF8Encoding.UTF8); sr.Close(); } sr = new StreamWriter(aFilePath, true, UTF8Encoding.UTF8); List <string> dd = new List <string>(aFooter); sr.WriteLine("<footer>"); sr.WriteLine("<br><br>"); for (int i = 0; i < dd.Count; i++) { sr.WriteLine("<h1> " + dd[i] + "</h1>"); } sr.WriteLine("</footer>"); sr.WriteLine("</center>"); if (colored && !aIsThermal) { //sr.WriteLine("<script src=\"AlternateColors.js\"></script>"); sr.WriteLine("<script> function altRows(table){ if(document.getElementsByTagName){ var table = table; if(table.rows.length==1) { table.className=\"TableIsHeaderOnly\"; } else {var rows = table.getElementsByTagName(\"tr\"); for(i = 0; i < rows.length; i++){ if(i % 2 == 0 ){rows[i].className = \"evenrowcolor\";} else{rows[i].className = \"oddrowcolor\";} } }}} window.onload=function(){ var tables = document.getElementsByTagName(\"TABLE\"); for (var i=tables.length-1; i>=0;i-=1) if (tables[i]) altRows(tables[i]); } </script>"); } sr.WriteLine("</body>"); sr.WriteLine("</html>"); sr.Close(); using (StreamReader areader = new StreamReader(aFilePath, UTF8Encoding.UTF8)) { Reports.ReportsHelper.__HTMLPage = areader.ReadToEnd(); } }
private void UpdateForm() { try { IsLoading = true; DataTable aBillHeader = PrintingSettingsMgmt.SelectBillsHeaders(0, 0); DataTable aBillFooter = PrintingSettingsMgmt.SelectBillsHeaders(1, 0); DataTable aReportHeader = PrintingSettingsMgmt.SelectBillsHeaders(0, 1); DataTable aReportFooter = PrintingSettingsMgmt.SelectBillsHeaders(1, 1); if (aBillHeader != null) { foreach (DataRow aRow in aBillHeader.Rows) { if (aRow["Number"].ToString() == "1") { bh1TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "2") { bh2TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "3") { bh3TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "4") { bh4TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "5") { bh5TxtBox.Text = aRow["Data"].ToString(); } } } if (aBillFooter != null) { foreach (DataRow aRow in aBillFooter.Rows) { if (aRow["Number"].ToString() == "1") { bf1TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "2") { bf2TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "3") { bf3TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "4") { bf4TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "5") { bf5TxtBox.Text = aRow["Data"].ToString(); } } } //-------------- Starting Report Data if (aReportHeader != null) { foreach (DataRow aRow in aReportHeader.Rows) { if (aRow["Number"].ToString() == "1") { rh1TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "2") { rh2TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "3") { rh3TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "4") { rh4TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "5") { rh5TxtBox.Text = aRow["Data"].ToString(); } } } if (aReportFooter != null) { foreach (DataRow aRow in aReportFooter.Rows) { if (aRow["Number"].ToString() == "1") { rf1TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "2") { rf2TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "3") { rf3TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "4") { rf4TxtBox.Text = aRow["Data"].ToString(); } else if (aRow["Number"].ToString() == "5") { rf5TxtBox.Text = aRow["Data"].ToString(); } } } //--------------------- PrintLogoChkBox.Checked = ConfigurationHelper.IsPrintLogoEnabled(); } catch (Exception ex) { MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [PrintingSettingsForm] \n Exception: \n" + ex.ToString(), MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { IsLoading = false; } }