public XlsGridReportDefBuilder(IDataContext dataContext, BizForm form, SqlQueryReader reader, Guid userId)
 {
     DataContext = dataContext;
     Form        = form;
     UserId      = userId;
     SqlDataSet  = new SqlQueryDataSet(reader, userId);
 }
        public XlsReportDefBuilder(IAppServiceProvider provider, ReportDef report, SqlQueryReader reader)
        {
            Report     = report;
            SqlDataSet = new SqlQueryDataSet(provider, reader);

            Headers.Add(new XlsGridReportSectionText(Report.Caption));
        }
 public XlsGridDefBuilder(IAppServiceProvider provider, BizForm form, SqlQueryReader reader)
 {
     Provider   = provider;
     Form       = form;
     UserId     = provider.GetCurrentUserId();
     SqlDataSet = new SqlQueryDataSet(Provider, reader);
 }
 public void AddDataField(SqlQueryDataSet dataSet, string name, ContentStyle style = null, string format = null)
 {
     if (dataSet != null)
     {
         //AddDataField(new SqlQueryDataSetField(dataSet, dataSet.Reader.Query.GetAttribute(name), null), style);
         AddDataField(dataSet.CreateField(name), style, format);
     }
     else
     {
         throw new ArgumentNullException("dataSet");
     }
 }
        private void AddColumn(CrossDataTable table, ReportDef report, SqlQueryReader reader, ReportAttributeColumnDef column, Dictionary <Guid, SqlQuerySource> sourceMap,
                               SqlQueryDataSet dataSet, Dictionary <CrossDataColumn, SqlQueryDataSetField> columnMaps)
        {
            SqlQuerySource querySource;
            var            reportSource     = report.GetSourceDef(column.Attribute.SourceId);
            var            reportSourceAttr = reportSource.Attributes != null
                ? reportSource.Attributes.FirstOrDefault(a => a.Id == column.Attribute.AttributeId)
                : null;

            var hasQuerySource = sourceMap.TryGetValue(column.Attribute.SourceId, out querySource);

            var attr = reportSourceAttr == null
                ? !hasQuerySource
                    ? reader.Query.FindAttribute(column.Attribute.AttributeId)
                    : reader.Query.FindAttribute(querySource, column.Attribute.AttributeId)
                : !hasQuerySource
                    ? reader.Query.FindAttribute(reportSourceAttr.Ident)
                    : reader.Query.FindAttribute(querySource, reportSourceAttr.Ident);

            if (attr != null)
            {
                var i = reader.Query.Attributes.IndexOf(attr);

                if (column.Grouping == ReportColumnGroupingType.None ||
                    column.Grouping == ReportColumnGroupingType.Group)
                {
                    var crossColumn = new CrossDataKeyColumn(i, column.Caption);
                    table.AddColumn(crossColumn);
                    columnMaps.Add(crossColumn,
                                   new SqlQueryDataSetField(dataSet, attr,
                                                            column.Grouping == ReportColumnGroupingType.None
                                ? SqlQuerySummaryFunction.None
                                : SqlQuerySummaryFunction.Group));
                }
                else if (column.Grouping == ReportColumnGroupingType.CrossGroup)
                {
                    var crossColumn = new CrossDataGroupColumn(i, column.Caption);
                    table.AddColumn(crossColumn);
                    columnMaps.Add(crossColumn, new SqlQueryDataSetField(dataSet, attr));
                }
                else
                {
                    var crossColumn = new CrossDataFuncColumn(i, column.Caption, column.ToSqlGrouping());
                    table.AddColumn(crossColumn);
                    columnMaps.Add(crossColumn, new SqlQueryDataSetField(dataSet, attr, column.ToSqlGrouping()));
                }
            }
        }
        public void Fill(SqlQueryDataSet dataSet, Dictionary <CrossDataColumn, SqlQueryDataSetField> columnFieldMaps)
        {
            while (!dataSet.Eof())
            {
                var row = new CrossDataRow();
                foreach (var column in Columns.OfType <CrossDataKeyColumn>())
                {
                    var field = columnFieldMaps[column];
                    var value = field.GetValue();
                    row.AddValue(column, value);
                }

                var existsRow = Find(row);
                if (existsRow != null)
                {
                    row = existsRow;
                }
                else
                {
                    Rows.Add(row);
                }

                var i = 0;
                CrossDataGroupColumnValue columnValue = null;
                foreach (var column in Columns.OfType <CrossDataGroupColumn>())
                {
                    var field = columnFieldMaps[column];
                    var value = field.GetValue();

                    var currColumnValue = i == 0 ? column.GetValue(value) : column.GetValue(columnValue, value);
                    // row.AddValue(column, columnValue, value);
                    columnValue = currColumnValue;
                    i++;
                }

                foreach (var column in Columns.OfType <CrossDataFuncColumn>())
                {
                    var field = columnFieldMaps[column];
                    var value = field.GetValue();

                    row.AddValue(column, columnValue, value);
                }

                dataSet.Next();
            }
        }
        private CrossDataTable CreateCrossDataTable(ReportDef report, SqlQueryReader reader)
        {
            var table      = new CrossDataTable();
            var sourceMap  = MapSources(report, reader);
            var columnMaps = new Dictionary <CrossDataColumn, SqlQueryDataSetField>();
            var dataSet    = new SqlQueryDataSet(Provider, reader);

            if (report.Columns != null)
            {
                foreach (var column in report.Columns.OfType <ReportAttributeColumnDef>())
                {
                    AddColumn(table, report, reader, column, sourceMap, dataSet, columnMaps);
                }
            }

            table.Fill(dataSet, columnMaps);

            return(table);
        }
Exemple #8
0
        protected void AddControlColumn(XlsGroup band, XlsRow gridRow, BizControl control, SqlQueryDataSet dataSet)
        {
            if (control.Invisible)
            {
                return;
            }

            var header = new XlsTextNode(control.Caption);

            band.AddGroup(header);
            var info = _adjuster.Find(control);
            var attr = dataSet.Reader.Query.FindAttribute(((BizDataControl)control).AttributeDefId ?? Guid.Empty);

            if (attr != null)
            {
                var field = gridRow.AddDataField(new SqlQueryDataSetField(dataSet, attr, control));
                if (info != null)
                {
                    header.ColSpan = info.ColSpan;
                    field.ColSpan  = info.ColSpan;
                }
            }

/*
 *          var field = gridRow.AddDataField(new SqlQueryDataSetField(dataSet, control));
 *          if (info != null)
 *          {
 *              header.ColSpan = info.ColSpan;
 *              field.ColSpan = info.ColSpan;
 * //                if (info.ColSpan == 1)
 * //                    field.Width = info.Size;
 *          }
 */
        }
Exemple #9
0
        protected void AddControlBand(XlsGroup band, XlsRow gridRow, BizControl control, SqlQueryDataSet dataSet)
        {
            if (control.Invisible || control is BizButton)
            {
                return;
            }

            if (control is BizPanel)
            {
                var node = new XlsTextNode(control.Caption);
                band.AddGroup(node);

                foreach (var child in control.Children)
                {
                    AddControlBand(node, gridRow, child, dataSet);
                }
            }
            else if (control is BizTableColumn ||
                     control is BizDocumentControl || control is BizDocumentListForm)
            {
                if (control.Children != null)
                {
                    foreach (var child in control.Children)
                    {
                        AddControlBand(band, gridRow, child, dataSet);
                    }
                }
            }
            else if (control is BizDataControl)
            {
                AddControlColumn(band, gridRow, control, dataSet);
            }
            else
            if (control.Children != null)
            {
                foreach (var child in control.Children)
                {
                    AddControlBand(band.AddGroup(new XlsTextNode(child.Caption)), gridRow, child, dataSet);
                }
            }
        }
 public WordParagraphDef(SqlQueryDataSet dataSet, string name, ContentStyle style = null, string format = null)
 {
     AddDataField(dataSet, name, style, format);
 }