Пример #1
0
        private HorizonFormat GetColumnFormat(DataTable table, int columnIndex)
        {
            HorizonFormat format = new HorizonFormat();

            foreach (DataRow row in table.Rows)
            {
                string   data       = Convert.ToString(row[columnIndex]);
                string[] dataTokens = data.Split('.');

                if (dataTokens.Length == 1)
                {
                    if (format.WholeNumberCount < data.Length)
                    {
                        format.WholeNumberCount = data.Length;
                    }
                }
                else
                {
                    if (format.WholeNumberCount < dataTokens[0].Length)
                    {
                        format.WholeNumberCount = dataTokens[0].Length;
                    }
                    if (format.DecimalPlaceCount < dataTokens[1].Length)
                    {
                        format.DecimalPlaceCount = dataTokens[1].Length;
                    }
                }
            }

            return(format);
        }
Пример #2
0
        /// <summary>
        /// For HORIZON, we will output the data right-aligned
        /// </summary>
        /// <param name="row"></param>
        /// <param name="desiredColumns"></param>
        /// <returns></returns>
        private String HandleDesiredDataForHorizon(DataRow row, Dictionary <int, HorizonFormat> desiredColumnLengthMappings)
        {
            StringBuilder retVal = new StringBuilder();

            foreach (int desiredCol in desiredColumnLengthMappings.Keys)
            {
                HorizonFormat format = desiredColumnLengthMappings[desiredCol];

                var      data       = Convert.ToString(row[desiredCol]);
                string[] dataTokens = data.Split('.');

                string wholeNumber;
                string decimalNumber;

                if (dataTokens.Length == 1)
                {
                    wholeNumber   = data.PadLeft(format.WholeNumberCount, ' ');
                    decimalNumber = string.Empty.PadRight(format.DecimalPlaceCount, '0');
                }
                else
                {
                    wholeNumber   = dataTokens[0].PadLeft(format.WholeNumberCount, ' ');
                    decimalNumber = dataTokens[1].PadRight(format.DecimalPlaceCount, '0');
                }

                if (!string.IsNullOrEmpty(retVal.ToString()))
                {
                    retVal.Append(" ");
                }
                retVal.Append(string.Format("{0}.{1}", wholeNumber, decimalNumber));
            }

            return(retVal.ToString());
        }
Пример #3
0
        private Dictionary <int, HorizonFormat> GetDesiredColumnLengthMapping(DataTable table, List <int> desiredColumns)
        {
            Dictionary <int, HorizonFormat> retVal = new Dictionary <int, HorizonFormat>();

            foreach (int desiredCol in desiredColumns)
            {
                HorizonFormat format = GetColumnFormat(table, desiredCol);
                retVal.Add(desiredCol, format);
            }

            return(retVal);
        }