Beispiel #1
0
        /// <summary>
        /// Возвращает список документов попадающих в запрос
        /// </summary>
        /// <param name="queryDef">Запрос на выборку данных</param>
        /// <param name="pageNo">Номер страницы</param>
        /// <param name="pageSize">Количество строк на странице</param>
        /// <returns>Список идентификаторв документов</returns>
        public List <Guid> GetDocList(QueryDef queryDef, int pageNo, int pageSize)
        {
            /*using (var query = new DocQuery(queryDef, DataContext))
             * {
             *  return pageSize <= 0
             *             ? query.All().ToList()
             *             : query.Take(pageNo * pageSize, pageSize).ToList();
             * }*/
            var sqb = _sqlQueryBuilderFactory.Create();

            using (var query = sqb.Build(queryDef))
            {
                query.AddAttribute("&Id");

                using (var reader = _sqlQueryReaderFactory.Create(query))
                {
                    reader.Open();
                    var i      = reader.GetAttributeIndex("&Id");
                    var result = new List <Guid>();
                    while (reader.Read())
                    {
                        result.Add(reader.GetGuid(i));
                    }
                    return(result);
                }
            }
        }
Beispiel #2
0
        private void AddControlRow(XlsDef def, /*XlsGroup band,*/ BizControl control)
        {
            if (control.Invisible || control is BizButton)
            {
                return;
            }

            if (control is BizPanel || control is BizDocumentControl)
            {
                var cell = def.AddArea().AddRow().AddText(control.Caption); //band.AddGroup(new XlsRow()).AddText(control.Caption);
                cell.Style.FontStyle  = FontStyle.Bold;
                cell.ColSpan          = _adjuster.ColumnCount;
                cell.Style.FontColor  = IndexedColors.DARK_BLUE.Index; // 18;
                cell.Style.HAlign     = HAlignment.Center;
                cell.Style.AutoHeight = true;
                cell.Style.BgColor    = IndexedColors.GREY_25_PERCENT.Index;

                foreach (var child in control.Children)
                {
                    AddControlRow(def, /*band,*/ child);
                }
            }
            else if (control is BizDocumentListForm)
            {
                var docListForm = (BizDocumentListForm)control;

                var cell = def.AddArea().AddRow().AddText(control.Caption);
                cell.Style.FontStyle  = FontStyle.Bold;
                cell.ColSpan          = _adjuster.ColumnCount;
                cell.Style.FontColor  = IndexedColors.DARK_BLUE.Index; // 18;
                cell.Style.HAlign     = HAlignment.Center;
                cell.Style.AutoHeight = true;
                cell.Style.BgColor    = IndexedColors.GREY_25_PERCENT.Index;

                var tableForm = docListForm.Children != null && docListForm.Children.Count > 0
                    ? docListForm
                    : (BizControl)docListForm.TableForm;
                var docDefId = docListForm.TableForm != null
                    ? docListForm.TableForm.DocumentDefId ?? Guid.Empty
                    : Guid.Empty;

                SqlQueryDataSet dataSet;
                var             sqb = _sqlQueryBuilderFactory.Create();
                if (docListForm.AttributeDefId != null)
                {
                    /*using (
                     *  var query = SqlQueryExBuilder.BuildAttrList(tableForm,
                     *      docListForm.DocumentId ?? Guid.Empty, docDefId, (Guid) docListForm.AttributeDefId, null,
                     *      null,
                     *      UserId, DataContext))*/
                    /*using (*/
                    var query = sqb.BuildAttrList(tableForm, docListForm.DocumentId ?? Guid.Empty, docDefId,
                                                  (Guid)docListForm.AttributeDefId, null, null);//)
                    {
                        query.WithNoLock = true;

                        dataSet = CreateDataSet(query);
                    }
                }
                else if (docListForm.FormAttributeDefId != null)
                {
                    /*using (
                     *  var query = SqlQueryExBuilder.BuildRefList(tableForm,
                     *      docListForm.DocumentId ?? Guid.Empty, docDefId, (Guid) docListForm.FormAttributeDefId, null,
                     *      null,
                     *      UserId, DataContext))*/
                    //using (
                    var query = sqb.BuildRefList(tableForm,
                                                 docListForm.DocumentId ?? Guid.Empty, docDefId, (Guid)docListForm.FormAttributeDefId, null,
                                                 null);//)
                    {
                        dataSet = CreateDataSet(query);
                    }
                }
                else
                {
                    throw new ApplicationException(
                              "Недостаточно данных для формирования Excel-файла. Ошибка в данных формы!");
                }

                /*int count;
                 *  var docs = docRepo.DocAttrListById(out count, docListForm.DocumentId ?? Guid.Empty,
                 *      docListForm.AttributeDefId ?? Guid.Empty, 0, 0);
                 *
                 *  dataSet = new DocFormDataSet(docs, tableForm, UserId, DataContext);*/

                var hRow = def.AddArea().AddRow();
                hRow.ShowAllBorders(true);
                hRow.Style.FontStyle = FontStyle.Bold;
                hRow.Style.HAlign    = HAlignment.Center;
                hRow.Style.BgColor   = IndexedColors.BLUE_GREY.Index; //48;
                hRow.Style.FontColor = IndexedColors.WHITE.Index;
                hRow.Style.WrapText  = true;
                var dRow = def.AddGrid(dataSet).AddRow();
                dRow.ShowAllBorders(true);

                if (tableForm.Children != null)
                {
                    foreach (var child in tableForm.Children)
                    {
                        AddControlBand(hRow, dRow, child, dataSet);
                    }
                }
            }
            else
            {
                var row  = def.AddArea().AddRow();//band.AddGroup(new XlsRow());
                var cell = row.AddText(control.Caption);
                cell.ColSpan        = _captionColSpan;
                cell.Style.HAlign   = HAlignment.Right;
                cell.Style.WrapText = true;

                if (control is BizDataControl && ((BizDataControl)control).ObjectValue != null)
                {
                    var value    = GetDataControlValue((BizDataControl)control);
                    var dataCell = row.AddText(value);
                    dataCell.ColSpan         = _valueColSpan;
                    dataCell.Style.FontColor = IndexedColors.DARK_BLUE.Index;
                    dataCell.Style.WrapText  = true;
                }
                else
                {
                    var emptyCell = row.AddEmptyCell();
                    emptyCell.ColSpan = _valueColSpan;
                }
            }
        }
Beispiel #3
0
        public List <EnumValue> GetEnumDocumentValues(BizComboBox combo, DocDef detailDocDef, Guid?userId)
        {
            var list = new List <EnumValue>();

            if (detailDocDef == null)
            {
                return(list);
            }
            //var defRepo = new DocDefRepository(context);
            var docDef = _docDefRepo.DocDefById(detailDocDef.Id);

            AttrDef detailAttrDef;

            if (combo.DetailAttributeId != null)
            {
                detailAttrDef = docDef.Attributes.FirstOrDefault(ad => ad.Id == combo.DetailAttributeId);
            }
            else
            {
                detailAttrDef =
                    docDef.Attributes.FirstOrDefault(
                        ad => String.Equals(ad.Name, combo.DetailAttributeName, StringComparison.OrdinalIgnoreCase));
                if (detailAttrDef == null)
                {
                    detailAttrDef =
                        docDef.Attributes.FirstOrDefault(
                            ad => ad.Type.Id == (int)CissaDataType.Text);
                }
            }

            if (detailAttrDef == null)
            {
                return(list);
            }

            var sqb = _sqlQueryBuilderFactory.Create();

            // using (var query = userId != null ? new SqlQuery(context, docDef, (Guid)userId) : new SqlQuery(context, docDef))
            // using (var query = sqb.Build(docDef.Id, null, null))
            using (var query = sqb.Build(combo, docDef.Id))
            {
                query.AddAttribute("&Id");
                query.AddAttribute(detailAttrDef.Id);
                query.AddOrderAttribute(detailAttrDef.Id);
                using (var reader = _sqlQueryReaderFactory.Create(query)) //new SqlQueryReader(context, query))
                {
                    while (reader.Read())
                    {
                        var detail = !reader.IsDbNull(1) ? reader.GetString(1) : String.Empty;

                        list.Add(new EnumValue
                        {
                            Id           = reader.GetGuid(0),
                            Value        = detail,
                            DefaultValue = detail
                        });
                    }
                }
            }

            return(list);
        }
Beispiel #4
0
        /// <summary>
        /// Создает SqlQuery из QueryDef
        /// </summary>
        /// <param name="def">QueryDef</param>
        /// <returns>SqlQuery</returns>
        public SqlQuery CreateSqlQuery(QueryDef def)
        {
            var sqb = _sqlQueryBuilderFactory.Create();

            return(sqb.Build(def));  //SqlQueryBuilder.Build(DataContext, def);
        }