Beispiel #1
0
        /// <summary>
        /// Creates the csv header
        /// </summary>
        /// <param name="page">The page configuration</param>
        /// <param name="allColumns">signal if all exportable columns will be included in the csv</param>
        /// <param name="separator">The list separator</param>
        /// <returns>The csv header</returns>
        protected virtual string CreateHeader(Page page, bool allColumns, string separator)
        {
            StringBuilder response = new StringBuilder();

            if (allColumns)
            {
                IList <PageField> fields = GetExportableFields(page);
                foreach (PageField field in fields)
                {
                    string fieldName = field.FieldName;
                    if (!string.IsNullOrEmpty(field.DropDownInfo) && !string.IsNullOrEmpty(field.JoinInfo))
                    {
                        Entity   joinInfo   = EntityUtils.GetJoinInfoEntity(field);
                        string[] joinFields = joinInfo.GetProperty("JoinFields").Split(',');

                        foreach (string alias in joinFields)
                        {
                            response.Append("\"").Append(EntityUtils.GetAliasName(alias).Replace("\"", "\"\"")).Append("\"").Append(separator);
                        }
                    }
                    else
                    {
                        response.Append("\"").Append(field.Label.Replace("\"", "\"\"")).Append("\"").Append(separator);
                    }
                }
            }
            else
            {
                foreach (PageGridColumn col in page.GridFields)
                {
                    response.Append("\"").Append(col.ColumnLabel).Append("\"").Append(separator);
                }
            }

            response.Remove(response.Length - separator.Length, separator.Length);
            response.Append(System.Environment.NewLine);

            return(response.ToString());
        }