Exemple #1
0
        public List <string> GetTemplatePage(string contextIds, int?currentPage, bool bool_0)
        {
            IService                service = ServiceHelper.GetService(printTemp.ModelName);
            List <string>           list    = new List <string>();
            List <TemplatePageInfo> list2   = GetTemplatePageInfo(contextIds);
            int num = (!currentPage.HasValue) ? 1 : currentPage.Value;

            dicPageInfo["page"]      = ObjectExtensions.ToStr((object)num);
            dicPageInfo["pagecount"] = ObjectExtensions.ToStr((object)list2.Count);
            for (int i = 1; i <= list2.Count; i++)
            {
                if (i != num && !bool_0)
                {
                    list.Add(null);
                }
                else
                {
                    TemplatePageInfo templatePageInfo = list2[i - 1];
                    string           context          = templatePageInfo.Context;
                    formatContent = printTemp.TemplateBody;
                    string detailFieldName = GetReportDetialHtml();
                    if (!string.IsNullOrEmpty(detailFieldName))
                    {
                        ModelDetailData = service.GetDetailData(context, null, false);
                        ServiceConfig serviceConfig = ServiceHelper.GetServiceConfig(printTemp.ModelName);
                        Field         field         = (from a in serviceConfig.fields
                                                       where a.name == detailFieldName
                                                       select a).FirstOrDefault();
                        if (field != null)
                        {
                            IService  service2  = ServiceHelper.GetService(field.relationModel);
                            PagedData pagedData = service2.GetPageData(new QueryDescriptor
                            {
                                SortName  = "CreateDate",
                                SortOrder = "asc",
                                PageIndex = templatePageInfo.PageIndex,
                                PageSize  = printTemp.PageSize.Value,
                                Condition = new FilterGroup
                                {
                                    op    = "and",
                                    rules = new List <FilterRule>
                                    {
                                        new FilterRule(field.relationField, context, "equal")
                                    }
                                }
                            }) as PagedData;
                            ModelDetailData[detailFieldName] = pagedData.Records;
                            DoWithJsonXmlContent();
                            DoWithJsonContent();
                            string text = formatContent;
                            text = text.Replace("{#page}", ObjectExtensions.ToStr((object)i));
                            text = text.Replace("{#pagecount}", ObjectExtensions.ToStr((object)list2.Count));
                            list.Add(text);
                            continue;
                        }
                    }
                    ModelDetailData = service.GetDetailData(context, null);
                    DoWithJsonXmlContent();
                    DoWithJsonContent();
                    string text2 = formatContent;
                    text2 = text2.Replace("{#page}", ObjectExtensions.ToStr((object)i));
                    text2 = text2.Replace("{#pagecount}", ObjectExtensions.ToStr((object)list2.Count));
                    list.Add(text2);
                }
            }
            return(list);
        }
Exemple #2
0
        public List <TemplatePageInfo> GetTemplatePageInfo(string contextIds)
        {
            List <TemplatePageInfo> list = new List <TemplatePageInfo>();

            if (printTemp != null)
            {
                ServiceConfig serviceConfig   = ServiceHelper.GetServiceConfig(printTemp.ModelName);
                string        detailFieldName = GetReportDetialHtml();
                int           num             = 1;
                if (string.IsNullOrEmpty(detailFieldName))
                {
                    string[] array = contextIds.Split(';');
                    foreach (string context in array)
                    {
                        TemplatePageInfo templatePageInfo = new TemplatePageInfo
                        {
                            Context      = context,
                            PageIndex    = 1,
                            AllPageIndex = num++
                        };
                        list.Add(templatePageInfo);
                    }
                }
                else
                {
                    DbContext currentDb = SysContext.GetCurrentDb();
                    Field     field     = (from a in serviceConfig.fields
                                           where a.name == detailFieldName
                                           select a).FirstOrDefault();
                    if (field != null)
                    {
                        ServiceHelper.GetService(field.relationModel);
                        string[] array = contextIds.Split(';');
                        foreach (string context in array)
                        {
                            int num2 = 1;
                            int num4 = currentDb.ExecuteScalar <int>(string.Format("select count(*) from {0} where {1} = @0", field.relationModel, field.relationField), new object[1]
                            {
                                context
                            });
                            double a2   = (double)num4 * 1.0 / (double)printTemp.PageSize.Value;
                            int    num5 = (int)Math.Ceiling(a2);
                            if (num5 == 0)
                            {
                                list.Add(new TemplatePageInfo
                                {
                                    Context      = context,
                                    PageIndex    = num2++,
                                    AllPageIndex = num++
                                });
                            }
                            else
                            {
                                for (int j = 1; j <= num5; j++)
                                {
                                    list.Add(new TemplatePageInfo
                                    {
                                        Context      = context,
                                        PageIndex    = num2++,
                                        AllPageIndex = num++
                                    });
                                }
                            }
                        }
                    }
                }
            }
            return(list);
        }