public DataTable ExportToDataTable(DataView dataView, View view, string[] roles, ITableViewer tableViewer, string guid) { DataTable csvDataTable = new DataTable(); string columnHeader = string.Empty; foreach (Field field in view.Fields.Values.OrderBy(f => f.Order)) { if (!field.IsHiddenInTable() && !IsDenied(field.DenySelectRoles, roles))//&& field.FieldType != FieldType.Children { if (tableViewer == null) { columnHeader = field.DisplayName; } else { columnHeader = tableViewer.GetDisplayName(field, null, guid); } if (field.Equals(view.Fields.First()) && columnHeader.ToLower() == "id") { columnHeader = "_" + columnHeader; } csvDataTable.Columns.Add(columnHeader, typeof(string)); } } foreach (DataRowView row in dataView) { DataRow newRow = csvDataTable.NewRow(); int i = 0; foreach (Durados.Field field in view.Fields.Values.OrderBy(f => f.Order)) { if (!field.IsHiddenInTable() && !IsDenied(field.DenySelectRoles, roles)) //&& field.FieldType != FieldType.Children { newRow[i] = tableViewer.GetFieldDisplayValue(field, row.Row, true); //newRow[i] = field.ConvertToString(row.Row); i++; } } csvDataTable.Rows.Add(newRow); } return(csvDataTable); }
private string GetColumnsHeaders(View view, string[] roles, ITableViewer tableViewer, string guid, bool withSubgrids, Dictionary <string, DataView> SubGrids, bool isSubGrid) { string header = string.Empty; string columnHeader = string.Empty; Dictionary <string, Field> excluded = new Dictionary <string, Field>(); foreach (Field field in view.Fields.Values.OrderBy(f => f.Order)) { if (!field.IsHiddenInTable() && !IsDenied(field.DenySelectRoles, roles) && tableViewer.IsVisible(field, excluded, guid)) { if (field.FieldType == FieldType.Children && field.GetFieldControlType() != "CheckList") { ChildrenField c_field = (ChildrenField)field; if (withSubgrids && (c_field.SubGridExport)) { View c_view = (View)c_field.ChildrenView; DataView c_grid = SubGrids[c_view.Name]; tableViewer.DataView = c_grid; header += GetColumnsHeaders(c_view, roles, tableViewer, "", false, null, true); } } else { columnHeader = tableViewer.GetDisplayName(field, null, guid); if (field.Equals(view.Fields.First()) && columnHeader.ToLower() == "id") { columnHeader = " " + columnHeader; } if (isSubGrid) { header += view.DisplayName + " "; } header += ValidCsvContent(columnHeader, false) + charDelimeter; } } } return(header); }