コード例 #1
0
ファイル: Csv.cs プロジェクト: yarivat/Admin
        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);
        }
コード例 #2
0
ファイル: Csv.cs プロジェクト: 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());
        }