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); }