Example #1
0
File: Csv.cs Project: yarivat/Admin
        public string Export(DataView dataView, View view, string[] roles, ITableViewer tableViewer, string guid)
        {
            //Load SubGrids Data once
            Dictionary <string, DataView> SubGrids = new Dictionary <string, DataView>();

            Dictionary <string, Field> excluded = new Dictionary <string, Field>();

            foreach (Field field in view.Fields.Values.OrderBy(f => f.Order))
            {
                if (field.FieldType == FieldType.Children && field.GetFieldControlType() != "CheckList" && !field.IsHiddenInTable() && !IsDenied(field.DenySelectRoles, roles) && tableViewer.IsVisible(field, excluded, guid))
                {
                    ChildrenField c_field = (ChildrenField)field;

                    if (c_field.SubGridExport)
                    {
                        View c_view = (View)c_field.ChildrenView;

                        SubGrids.Add(c_view.Name, GetSubGridData(c_view));
                    }
                }
            }

            //Headers
            string header = GetColumnsHeaders(view, roles, tableViewer, guid, true, SubGrids, false) + charNewLine;

            //Columns Data - CSV
            return(header + GetColumnsData(dataView, view, roles, tableViewer, guid, SubGrids) + charNewLine);
        }
Example #2
0
File: Csv.cs Project: yarivat/Admin
        private string GetColumnsData(DataView dataView, View view, string[] roles, ITableViewer tableViewer, string guid, Dictionary <string, DataView> SubGrids)
        {
            StringBuilder content = new StringBuilder();

            Dictionary <string, Field> excluded = new Dictionary <string, Field>();

            //Main Grid Data
            foreach (DataRowView row in dataView)
            {
                string line = string.Empty;

                foreach (Durados.Field field in view.Fields.Values.OrderBy(f => f.Order))
                {
                    if (!field.IsHiddenInTable() && !IsDenied(field.DenySelectRoles, roles) && tableViewer.IsVisible(field, excluded, guid))
                    {
                        //SubGrids Data
                        if (field.FieldType == FieldType.Children && field.GetFieldControlType() != "CheckList")
                        {
                            ChildrenField c_field = (ChildrenField)field;

                            if (c_field.SubGridExport)
                            {
                                View c_view = (View)c_field.ChildrenView;

                                string pk = view.GetPkValue(row.Row);

                                DataView c_grid = SubGrids[c_view.Name];

                                tableViewer.DataView = c_grid;

                                DataTable dt = c_grid.Table.DataSet.Tables[view.DataTable.TableName];

                                DataRow[] ChildsRows = null;

                                if (pk != null && dt != null)
                                {
                                    DataRow dr = dt.Rows.Find(view.GetPkValue(pk));
                                    if (dr != null)
                                    {
                                        ChildsRows = dr.GetChildRows(c_field.DataRelation.RelationName);
                                    }
                                }

                                if (ChildsRows != null)
                                {
                                    foreach (Field cc_field in c_view.Fields.Values.OrderBy(f => f.Order))
                                    {
                                        if (!cc_field.IsHiddenInTable() && !IsDenied(cc_field.DenySelectRoles, roles) && tableViewer.IsVisible(cc_field, excluded, ""))
                                        {
                                            string val          = string.Empty;
                                            string dispalyValue = null;

                                            foreach (DataRow childrensDataRow in ChildsRows)
                                            {
                                                dispalyValue = tableViewer.GetFieldDisplayValue(cc_field, childrensDataRow, true);
                                                if (!string.IsNullOrEmpty(dispalyValue))
                                                {
                                                    val += dispalyValue.Replace(charNewLine, ' ');
                                                }

                                                val += (char)10;
                                            }

                                            line += ValidCsvContent(val, true) + charDelimeter;
                                        }
                                    }
                                }
                                else
                                {
                                    foreach (Field cc_field in c_view.Fields.Values.OrderBy(f => f.Order))
                                    {
                                        if (!cc_field.IsHiddenInTable() && !IsDenied(cc_field.DenySelectRoles, roles) && tableViewer.IsVisible(cc_field, excluded, ""))
                                        {
                                            line += charDelimeter;//" - " +
                                        }
                                    }
                                }
                            }
                        }
                        else //Main Grid Data
                        {
                            tableViewer.DataView = dataView;

                            line += ValidCsvContent(tableViewer.GetFieldDisplayValue(field, row.Row, true), false) + charDelimeter;
                        }
                    }
                }

                line += charNewLine;

                content.Append(line);
            }

            return(content.ToString());
        }
Example #3
0
File: Csv.cs Project: yarivat/Admin
        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);
        }