public static string Dt2Ltr(DataTable dt, string baslik, string toplanacaklarKolonlar, string haricKolonlar)
{
string ltr = "";
StringBuilder ltr2 = new StringBuilder();
if (baslik != "")
//ltr += @"<h5>" + baslik + "</h5><br>";
ltr2.AppendLine("<h5>" + baslik + "</h5><br>");
try
{
//ltr += @"<table id='gridi' class='table table-bordered table2' style='color: black;'><thead>";
ltr2.AppendLine("<table id='gridi' class='table table-bordered table2' style='color: black;'><thead>");
//önceki dönem, sonraki dönem renkelri için
//string renk = (dt.Columns[j].ColumnName.StartsWith("Ö. ") ? "#f7f1e3" : (dt.Columns[j].ColumnName.StartsWith("S. ") ? "#d1ccc0" : ""));
if (dt.Rows.Count > 0)
{
//ltr += "<tr style='text-align:center'>";
ltr2.AppendLine("<tr style='text-align:center'>");
for (int i = 0; i < dt.Columns.Count; i++)
{
if (haricKolonlar.Contains(dt.Columns[i].ColumnName)) continue;
//ltr += " < th class='" + (dt.Columns[i].ColumnName.StartsWith("Ö. ") ? "o" : (dt.Columns[i].ColumnName.StartsWith("S. ") ? "s" : "")) + "'>" + dt.Columns[i].ColumnName + "</th>";
ltr2.AppendLine("<th>" + dt.Columns[i].ColumnName + "</th>");
}
//ltr += "</tr></thead><tbody>";
ltr2.AppendLine("</tr></thead><tbody>");
for (int i = 0; i < dt.Rows.Count; i++)
{
//ltr += "<tr>";
ltr2.AppendLine("<tr>");
for (int j = 0; j < dt.Columns.Count; j++)
{
//if (dt.Columns[j].DataType == System.Type.GetType("System.DateTime"))
// ltr += "<td nowrap='nowrap' align='center'>" + ((DateTime)dt.Rows[i][j]).ToString("dd.MM.yyyy") + "</td>";
string renk = "";// (dt.Columns[j].ColumnName.StartsWith("Ö. ") ? "o" : (dt.Columns[j].ColumnName.StartsWith("S. ") ? "s" : ""));
if (haricKolonlar.Contains(dt.Columns[j].ColumnName)) continue;
if (dt.Columns[j].DataType == System.Type.GetType("System.Decimal") || dt.Columns[j].DataType == System.Type.GetType("System.Double"))
{
if (dt.Rows[i][j] == DBNull.Value) dt.Rows[i][j] = 0m;
////2019.03.25 mutlum önceki döeneme göre düşüş varsa kırmızı olsun
//if (dt.Columns[j].ColumnName == "Son. Dön. KG")
//{
// if ((decimal)dt.Rows[i]["DegOranı"] < 0)
// ltr += "<td align='right' style='background-color:red;color:white;'>" + "<small><i>%" + ((decimal)dt.Rows[i]["DegOranı"]).ToString("N2") + "</i></small> " + Convert.ToDecimal(dt.Rows[i][j].ToString()).ToString("N2") + "</td>";
// else
// ltr += "<td align='right' class='" + renk + "'>" + Convert.ToDecimal(dt.Rows[i][j]).ToString("N2") + "</td>";
//}
//else
{
//ltr += "<td align='right' style='text-align:right' class='" + renk + "' data-order='" + dt.Rows[i][j].ToString() + "'> " + Convert.ToDecimal(dt.Rows[i][j]).ToString("N2") + "</td>";
ltr2.AppendLine("<td align='right' data-order='" + dt.Rows[i][j].ToString() + "'>" + Convert.ToDecimal(dt.Rows[i][j]).ToString("N2") + "</td>");
}
continue;
}
if (dt.Columns[j].DataType == System.Type.GetType("System.Int16") || dt.Columns[j].DataType == System.Type.GetType("System.Int32"))
{
if (dt.Rows[i][j] == DBNull.Value) dt.Rows[i][j] = 0;
//ltr += "<td align='right' style='text-align:right' class='" + renk + "' data-order='" + dt.Rows[i][j].ToString() + "'> " + Convert.ToDecimal(dt.Rows[i][j]).ToString("N0") + "</td>";
ltr2.AppendLine("<td align='right' style='text-align:right' >" + Convert.ToDecimal(dt.Rows[i][j]).ToString("N0") + "</td>");
continue;
}
if (dt.Columns[j].DataType != System.Type.GetType("System.Double") && dt.Columns[j].DataType != System.Type.GetType("System.Decimal"))
{
if (dt.Rows[i][j] == DBNull.Value) dt.Rows[i][j] = "";
//ltr += "<td class='" + renk + "'>" + dt.Rows[i][j].ToString() + "</td>";
ltr2.AppendLine("<td class='" + renk + "'>" + dt.Rows[i][j].ToString() + "</td>");
continue;
}
}
//ltr += "</tr>";
ltr2.AppendLine("</tr>");
}
//ltr += "</tbody>";
ltr2.AppendLine("</tbody>");
//neyler toplanacak
if (toplanacaklarKolonlar != "")
{
string[] ttler = toplanacaklarKolonlar.Split(new string[1] { "," }, StringSplitOptions.RemoveEmptyEntries);
decimal[] ttlerd = new decimal[ttler.Length];
for (int i = 0; i < ttler.Length; i++)
{
for (int j = 0; j < dt.Rows.Count; j++)
{
decimal t = 0.0m;
//kolon ismi yerine, kolon nosu gönderilirse ör 6,7
//decimal.TryParse(dt.Rows[j][Convert.ToInt16(ttler[i])].ToString(), out t);
//kolon ismi gönderilirse
decimal.TryParse(dt.Rows[j][ttler[i]].ToString(), out t);
ttlerd[i] += t;
}
}
string toplami = "<tr>";
for (int j = 0; j < dt.Columns.Count; j++)
{
if (haricKolonlar.Contains(dt.Columns[j].ColumnName)) continue;
bool y = false;
for (int i = 0; i < ttler.Length; i++)
{
//kolon ismi yerine, kolon nosu gönderilirse ör 6,7
//if (j.ToString() == ttler[i].ToString())
if (dt.Columns[j].ColumnName == ttler[i].ToString())
{ y = true; toplami += "<td nowrap='nowrap' align='right'><b>" + ttlerd[i].ToString("N2") + "</b></td>"; break; }
}
if (!y)
{ toplami += "<td></td>"; }
}
toplami += "</tr>";
//ltr += toplami;
ltr2.AppendLine(toplami);
}
}
//ltr += "</table>";
ltr2.AppendLine("</table>");
}
catch (Exception ex)
{
;
}
return ltr2.ToString();//ltr;
}