Ejemplo n.º 1
0
        public static DataTable GetGridDataTable(BindingInfoEntity entity, IEnumerable <DataRowView> collection)
        {
            var dataTable = new DataTable(entity.Name);

            var columns = new Dictionary <String, String>();

            foreach (var model in entity.Bindings)
            {
                dataTable.Columns.Add(model.Caption);
                columns.Add(model.Source, model.Caption);
            }

            foreach (var dataRowView in collection)
            {
                var dataRow = dataTable.NewRow();

                foreach (var pair in columns)
                {
                    var value = dataRowView[pair.Key];

                    var dbl = DataConverter.ToNullableDouble(value);
                    if (dbl != null)
                    {
                        value = String.Format("{0:0.00}", Math.Round(dbl.Value, 2));
                    }

                    dataRow[pair.Value] = value;
                }

                dataTable.Rows.Add(dataRow);
            }

            return(dataTable);
        }
Ejemplo n.º 2
0
        public static IEnumerable <BindingInfoEntity> GetQueries(ReportUnitModel unitModel, PortalDataContext dataContext)
        {
            var reportLogicsModel = unitModel.ReportLogics;

            if (reportLogicsModel == null || reportLogicsModel.List == null)
            {
                yield break;
            }

            foreach (var reportLogicModel in reportLogicsModel.List)
            {
                var logicModel = reportLogicModel.Logic;

                var list = (List <BindingInfoModel>)null;

                var bindings = reportLogicModel.Bindings;
                if (bindings == null || bindings.List == null)
                {
                    list = new List <BindingInfoModel>();
                }
                else
                {
                    list = bindings.List;
                }

                var entity = new BindingInfoEntity
                {
                    Name      = unitModel.Name,
                    Type      = reportLogicModel.Type,
                    QueryType = logicModel.Type,
                    SqlQuery  = logicModel.Query,
                    Ordered   = IsDataOrdered(logicModel),
                    Bindings  = list,
                };

                if (logicModel.Type != "Query")
                {
                    var queryGenerator = new QueryGenerator(dataContext, logicModel);
                    entity.SqlQuery = queryGenerator.SelectQuery();
                }

                yield return(entity);
            }
        }
Ejemplo n.º 3
0
        protected IEnumerable <DataRowView> GetCollection(BindingInfoEntity entity, String groupMember, String xMember)
        {
            var sqlDs = ReportUnitHelper.CreateDataSource(entity.SqlQuery);

            var dataView = (DataView)sqlDs.Select(new DataSourceSelectArguments());

            if (dataView == null)
            {
                return(null);
            }

            if (!String.IsNullOrWhiteSpace(groupMember))
            {
                FillCaptionsList(dataView, groupMember);
            }

            FillXYValuesList(dataView, xMember);

            var selCaptions = GetSelectedCaptions().ToHashSet();
            var selXYValues = GetSelectedXYSeries().ToHashSet();

            var collection = dataView.Cast <DataRowView>();

            if (selCaptions.Count > 0)
            {
                collection = (from n in collection
                              let v = Convert.ToString(n[groupMember])
                                      where selCaptions.Contains(v)
                                      select n);
            }

            if (selXYValues.Count > 0)
            {
                collection = (from n in collection
                              let v = Convert.ToString(n[xMember])
                                      where selXYValues.Contains(v)
                                      select n);
            }

            return(collection);
        }
Ejemplo n.º 4
0
        protected void BindGridData(BindingInfoEntity entiry)
        {
            var sqlDs = ReportUnitHelper.CreateDataSource(entiry.SqlQuery);

            var dataView = (DataView)sqlDs.Select(new DataSourceSelectArguments());

            if (dataView == null)
            {
                return;
            }

            lblReportTitle.Text = entiry.Name;

            var dataTable = ReportUnitHelper.GetGridDataTable(entiry, dataView.Cast <DataRowView>());

            var dataSet = new DataSet();

            dataSet.Tables.Add(dataTable);

            BindGridData(dataSet);
        }