示例#1
0
        private ROIState.TabEState.Tab1State.GridState GetGridState()
        {
            var gridState = new ROIState.TabEState.Tab1State.GridState();

            var dataTable  = (DataTable)gridControlTab1.DataSource;
            var monthCount = Int32.Parse((comboBoxEditTab1Combo1.EditValue as ListDataItem)?.Value ?? "0");

            for (var rowIndex = 0; rowIndex < dataTable.Rows.Count; rowIndex++)
            {
                var dataRow = dataTable.Rows[rowIndex];

                for (var i = 0; i < monthCount; i++)
                {
                    var columnName = String.Format("{0}{1}", ROITabEInfo.Tab1Info.GridColumnNameMonthDefaultPrefix, i);
                    if (dataTable.Columns.Contains(columnName))
                    {
                        var columnValue = dataRow[columnName];
                        switch (rowIndex)
                        {
                        case 0:
                            gridState.DigitalImpressionValues.Add(columnValue != DBNull.Value ? (decimal?)columnValue : null);
                            break;

                        case 1:
                            gridState.MediaImpressionValues.Add(columnValue != DBNull.Value ? (decimal?)columnValue : null);
                            break;

                        case 3:
                            gridState.InvestmentValues.Add(columnValue != DBNull.Value ? (decimal?)columnValue : null);
                            break;
                        }
                    }
                }

                if (rowIndex == 3 &&
                    dataTable.Columns.Contains(ROITabEInfo.Tab1Info.GridColumnNamePrelaunch) &&
                    dataRow[ROITabEInfo.Tab1Info.GridColumnNamePrelaunch] != DBNull.Value)
                {
                    gridState.Prelaunch = (decimal?)dataRow[ROITabEInfo.Tab1Info.GridColumnNamePrelaunch];
                }
            }

            return(gridState);
        }
示例#2
0
        private void LoadGridData(ROIState.TabEState.Tab1State.GridState savedState)
        {
            var showPrelaunchColumn = checkEditTab1Checkbox2.Checked;

            var monthCount = Int32.Parse((comboBoxEditTab1Combo1.EditValue as ListDataItem)?.Value ?? "0");

            var useMonthTitles  = checkEditTab1Checkbox1.Checked;
            var firstMonthItem  = comboBoxEditTab1Combo2.EditValue as ListDataItem;
            var firstMonthIndex = CustomTabInfo.Tab1.Combo2Items.FindIndex(item =>
                                                                           String.Equals(item.Value, firstMonthItem?.Value, StringComparison.OrdinalIgnoreCase));

            var monthIndex = firstMonthIndex > 0 ? firstMonthIndex : 0;
            var monthNames = new List <string>();

            for (var i = 0; i < monthCount; i++)
            {
                if (useMonthTitles)
                {
                    monthNames.Add(CustomTabInfo.Tab1.Combo2Items.ElementAt(monthIndex).Value);

                    monthIndex++;
                    if (monthIndex == CustomTabInfo.Tab1.Combo2Items.Count)
                    {
                        monthIndex = 0;
                    }
                }
                else
                {
                    monthNames.Add(String.Format("{0} {1}", ROITabEInfo.Tab1Info.GridColumnNameMonthDefaultPrefix, i + 1));
                }
            }

            var dataSource = new DataTable();
            var column     = new DataColumn(ROITabEInfo.Tab1Info.GridColumnNameRowTitle, typeof(string));

            dataSource.Columns.Add(column);

            if (showPrelaunchColumn)
            {
                column = new DataColumn(ROITabEInfo.Tab1Info.GridColumnNamePrelaunch, typeof(decimal))
                {
                    AllowDBNull = true
                };
                dataSource.Columns.Add(column);
            }

            var totalMonthExpression = new List <string>();

            for (var i = 0; i < monthCount; i++)
            {
                var columnName = String.Format("{0}{1}", ROITabEInfo.Tab1Info.GridColumnNameMonthDefaultPrefix, i);
                dataSource.Columns.Add(new DataColumn(columnName, typeof(decimal))
                {
                    Caption     = monthNames.ElementAt(i),
                    AllowDBNull = true
                });
                totalMonthExpression.Add(String.Format("ISNULL({0},0)", columnName));
            }

            column = new DataColumn(ROITabEInfo.Tab1Info.GridColumnNameTotal, typeof(decimal))
            {
                AllowDBNull = true,
                Expression  = String.Format("{0}{1}",
                                            showPrelaunchColumn ? String.Format("ISNULL({0},0) + ", ROITabEInfo.Tab1Info.GridColumnNamePrelaunch) : String.Empty,
                                            String.Join(" + ", totalMonthExpression))
            };
            dataSource.Columns.Add(column);

            var digitalImpressionsRow = dataSource.NewRow();

            digitalImpressionsRow.BeginEdit();
            digitalImpressionsRow[ROITabEInfo.Tab1Info.GridColumnNameRowTitle] = "Digital Impressions";
            if (showPrelaunchColumn)
            {
                digitalImpressionsRow[ROITabEInfo.Tab1Info.GridColumnNamePrelaunch] = 0m;
            }
            for (var i = 0; i < monthCount; i++)
            {
                digitalImpressionsRow[String.Format("{0}{1}", ROITabEInfo.Tab1Info.GridColumnNameMonthDefaultPrefix, i)] =
                    (object)savedState?.DigitalImpressionValues?.ElementAtOrDefault(i) ?? DBNull.Value;
            }
            digitalImpressionsRow.EndEdit();
            dataSource.Rows.Add(digitalImpressionsRow);

            var mediaImpressionsRow = dataSource.NewRow();

            mediaImpressionsRow.BeginEdit();
            mediaImpressionsRow[ROITabEInfo.Tab1Info.GridColumnNameRowTitle] = "Television Impressions";
            if (showPrelaunchColumn)
            {
                mediaImpressionsRow[ROITabEInfo.Tab1Info.GridColumnNamePrelaunch] = 0m;
            }
            for (var i = 0; i < monthCount; i++)
            {
                mediaImpressionsRow[String.Format("{0}{1}", ROITabEInfo.Tab1Info.GridColumnNameMonthDefaultPrefix, i)] =
                    (object)savedState?.MediaImpressionValues?.ElementAtOrDefault(i) ?? DBNull.Value;
            }
            mediaImpressionsRow.EndEdit();
            dataSource.Rows.Add(mediaImpressionsRow);

            var totalImpressionsRow = dataSource.NewRow();

            totalImpressionsRow.BeginEdit();
            totalImpressionsRow[ROITabEInfo.Tab1Info.GridColumnNameRowTitle] = "Total Impressions";
            if (showPrelaunchColumn)
            {
                totalImpressionsRow[ROITabEInfo.Tab1Info.GridColumnNamePrelaunch] = 0m;
            }
            for (var i = 0; i < monthCount; i++)
            {
                var digitalValue = savedState?.DigitalImpressionValues?.ElementAtOrDefault(i);
                var mediaValue   = savedState?.MediaImpressionValues?.ElementAtOrDefault(i);

                totalImpressionsRow[String.Format("{0}{1}", ROITabEInfo.Tab1Info.GridColumnNameMonthDefaultPrefix, i)] =
                    digitalValue != null || mediaValue != null ? (object)((digitalValue ?? 0m) + (mediaValue ?? 0m)) : DBNull.Value;
            }
            totalImpressionsRow.EndEdit();
            dataSource.Rows.Add(totalImpressionsRow);

            var investmentRow = dataSource.NewRow();

            investmentRow.BeginEdit();
            investmentRow[ROITabEInfo.Tab1Info.GridColumnNameRowTitle] = "Investment";
            if (showPrelaunchColumn)
            {
                investmentRow[ROITabEInfo.Tab1Info.GridColumnNamePrelaunch] = (object)savedState?.Prelaunch ?? DBNull.Value;
            }
            for (var i = 0; i < monthCount; i++)
            {
                investmentRow[String.Format("{0}{1}", ROITabEInfo.Tab1Info.GridColumnNameMonthDefaultPrefix, i)] =
                    (object)savedState?.InvestmentValues?.ElementAtOrDefault(i) ?? DBNull.Value;
            }
            investmentRow.EndEdit();
            dataSource.Rows.Add(investmentRow);

            gridBandPrelaunch.Visible = showPrelaunchColumn;
            gridBandMonths.Visible    = false;
            gridBandMonths.Columns.Clear();
            for (var i = 0; i < monthCount; i++)
            {
                var columnName       = String.Format("{0}{1}", ROITabEInfo.Tab1Info.GridColumnNameMonthDefaultPrefix, i);
                var bandedGridColumn = new BandedGridColumn();
                bandedGridColumn.Caption    = monthNames.ElementAtOrDefault(i);
                bandedGridColumn.ColumnEdit = repositoryItemSpinEditTab1Impressions;
                bandedGridColumn.FieldName  = columnName;
                bandedGridColumn.OptionsColumn.FixedWidth = true;
                bandedGridColumn.Width   = (Int32)(70 * _scaleFactor.Width);
                bandedGridColumn.Visible = true;
                bandedGridColumn.OptionsColumn.AllowSize = false;
                bandedGridColumn.AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;
                bandedGridColumn.AppearanceHeader.TextOptions.Trimming   = Trimming.None;
                bandedGridColumn.AppearanceHeader.TextOptions.WordWrap   = WordWrap.Wrap;
                bandedGridColumn.AppearanceHeader.Options.UseTextOptions = true;
                bandedGridColumn.OptionsColumn.AllowMerge = DefaultBoolean.False;
                bandedGridViewTab1.Columns.Add(bandedGridColumn);
                gridBandMonths.Columns.Add(bandedGridColumn);
            }
            gridBandMonths.Visible = true;

            gridControlTab1.DataSource = dataSource;
        }