Last active
August 29, 2015 14:18
-
-
Save neo125874/0f098e5b29b093face43 to your computer and use it in GitHub Desktop.
pass dt & conditions to get the filtered data(For Data Column&Row)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static DataTable GetReportFilter(List<TEUserObjectReportFilterModel> _ModelField, List<TEUserObjectReportFilterModel> _ModelContent, DataTable DtReport) | |
{ | |
DataTable _dt = DtReport.Clone(); | |
DataTable _dtreturn = new DataTable(); | |
try | |
{ | |
foreach (TEUserObjectReportFilterModel _ObjTmp in _ModelField) | |
{ | |
try | |
{ | |
_dtreturn.Columns.Add(_ObjTmp.strFilterField.ToString()); | |
} | |
catch (System.Data.DuplicateNameException) | |
{ | |
//duplicate column name do nothing | |
} | |
} | |
List<string> ListField = new List<string>(); | |
for (int i = 0; i < _dtreturn.Columns.Count; i++) | |
{ | |
ListField.Add(_dtreturn.Columns[i].ColumnName); | |
} | |
string[] strColumns = (String[])ListField.ToArray(); | |
#region content | |
StringBuilder sb = new StringBuilder(); | |
int j = 0; | |
foreach (TEUserObjectReportFilterModel tereport in _ModelContent) | |
{ | |
if (j > 0) | |
{ sb.Append(" OR "); }//strFilterField(column), strFilterValue1(content) | |
sb.Append(tereport.strFilterField.ToString() + " IN ('" + TERM.strFilterValue1.ToString().Trim() + "')"); | |
j++; | |
} | |
DtReport.DefaultView.RowFilter = sb.ToString();//default view: different dimensions to filter data | |
_dt = DtReport.DefaultView.ToTable(true, strColumns); | |
#endregion | |
#region field | |
_dtreturn.Merge(_dt, false, MissingSchemaAction.Ignore); | |
#endregion | |
} | |
catch (Exception e) | |
{ | |
logger.Fatal("GetReportFilter:" + e.Message); | |
} | |
return _dtreturn; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment