private void SetColumnSizePosition(ColumnSizeLocation columnSizeLocation, int currentWidthUnits, ref int consumedWidthUnits, Unit perUnitWidth)
        {
            if (currentWidthUnits == 0)
            {
                currentWidthUnits = 1;
            }

            var width = currentWidthUnits * perUnitWidth;

            columnSizeLocation.Width = width;

            var xlocation = (reportWidth - width) - consumedWidthUnits * perUnitWidth;

            columnSizeLocation.XLocation = xlocation;


            consumedWidthUnits += currentWidthUnits;
        }
        private List <ColumnSizeLocation> GetColumnsSizeLocation()
        {
            List <ColumnSizeLocation> result = new List <ColumnSizeLocation>();

            int widthUnits = 0;
            var columns    = ListReportReportDTO.EntityListView.EntityListViewAllColumns;

            foreach (var column in columns)
            {
                widthUnits += (column.WidthUnit == 0 ? 1 : column.WidthUnit);
            }
            var width              = reportWidth;
            var perUnitWidth       = width.Divide(widthUnits);
            var consumedWidthUnits = 0;


            if (ListReportReportDTO.ReportGroups != null)
            {
                foreach (var reportGroup in ListReportReportDTO.ReportGroups)
                {
                    ColumnSizeLocation columnSizeLocation = new ColumnSizeLocation();
                    columnSizeLocation.LictViewColumnID = reportGroup.ListViewColumnID;
                    SetColumnSizePosition(columnSizeLocation, reportGroup.EntityListViewColumn.WidthUnit, ref consumedWidthUnits, perUnitWidth);
                    result.Add(columnSizeLocation);
                }
            }
            foreach (var column in columns)
            {
                if (!result.Any(x => x.LictViewColumnID == column.ID))
                {
                    ColumnSizeLocation columnSizeLocation = new ColumnSizeLocation();
                    columnSizeLocation.LictViewColumnID = column.ID;
                    SetColumnSizePosition(columnSizeLocation, column.WidthUnit, ref consumedWidthUnits, perUnitWidth);
                    result.Add(columnSizeLocation);
                }
            }
            return(result);
        }