分页模型
预览页面
请求模板资源:
- Weblet.dealWeblet - 渲染 JSON
- com.fr.web.cache.ReportEntry#getWorkBookTemplate - 读取模板
- com.fr.report.stable.fun.Actor#createContext4Tpl - 参数面板
- com.fr.form.main.ExecuteWidgetHelper#dealWithWidgetData - 控件配置计算
- com.fr.form.ui.Widget#createJSONConfig - 获取控件配置
- com.fr.form.event.Observer#createJSONListener - 获取类似 JS 事件的配置,可能会涉及计算
- com.fr.web.ResourceHelper#dealWithEmbResource - 处理内置资源
- com.fr.web.ResourceHelper#initDefaultJs - 初始化资源
控件
- WidgetGetJsonDataAction#actionCMD - 获取某一个控件的值
- com.fr.form.data.WidgetDataOutput#createJSONData
- com.fr.form.ui.FieldEditor#createJSONData - 计算值
- com.fr.form.data.WidgetDataOutput#createJSONData
- WidgetGetViewValueAction - xxx ?
- WidgetBatchGetJsonDataAction
- com.fr.web.core.service.ParametersDialogAction - 提交参数
- com.fr.util.ParameterApplyHelper#eval - 参数处理
计算
- PageHTMLReadAction - 获取 html 格式的页面数据
- com.fr.web.core.service.PageContentReader#getCurrentReportPage - 获取当前报表页
- com.fr.web.core.ReportSessionIDInfor#getResultWorkBook (java.util.Map) - 获取结果报表
- com.fr.report.core.sheet.AbstractWorkBookExecutor#execute ()
- com.fr.report.core.sheet.SheetSequenceExecutor#execute - 每个 sheet 计算一次
- com.fr.report.core.cal.SE#execute - 计算核心
- com.fr.report.core.cal.SE#execute4Expand - 计算格子扩展
- com.fr.report.core.cal.SE#execute4ECReport - 计算条件属性等
- com.fr.report.core.cal.SE#execute - 计算核心
- com.fr.report.core.sheet.AbstractWorkBookExecutor#result - 生成结果报表
- com.fr.report.core.sheet.SheetSequenceExecutor#execute - 每个 sheet 计算一次
- com.fr.report.core.sheet.AbstractWorkBookExecutor#execute ()
- com.fr.web.core.ReportSessionIDInfor#getResultWorkBook (java.util.Map) - 获取结果报表
- com.fr.web.core.service.PageContentReader#getCurrentReportPage - 获取当前报表页
- com.fr.web.core.service.PageContentHTMLReader#writePageContentToResponse - 渲染报表页
- com.fr.web.core.service.PageContentHTMLReader#createAndfillPageContentTag
- com.fr.web.output.html.HTMLOutlet#out
- com.fr.web.output.html.chwriter.CellHtmlWriter#drawContent
- com.fr.web.output.html.chwriter.CellHtmlWriter#displayVerticalText - 画图
- com.fr.report.cell.cellattr.core.CellUtils#value2Image
- com.fr.base.Style#paintContent 从这里开始就会被用到各种地方,调用频次过高,可以忽略
- com.fr.report.cell.cellattr.core.CellUtils#value2Image
- com.fr.web.output.html.chwriter.CellHtmlWriter#displayVerticalText - 画图
- 文本的忽略
- com.fr.web.core.service.PageContentHTMLReader#createAndfillPageContentTag
单元格计算
图表:
计算
com.fr.report.core.cal.SE.Box2DCase#dealWithChartCollection
com.fr.report.core.cal.SE.Box2DCase#dealChartList
com.fr.chart.chartattr.ChartCollection#createResultChartPainterWithOutDealFormula
com.fr.chart.web.ChartWriteHtmlAction#actionCMD
com.fr.base.chart.BaseChartPainter#createAttributeConfig
com.fr.chart.chartattr.ChartCollection
com.fr.base.chart.BaseChartCollection#createResultChartPainter
com.fr.chart.chartattr.ChartCollection#calculateFormula
com.fr.chart.chartattr.CompatibleChartCollectionHelper#createResultChartPainterWithOutDealFormula
com.fr.chart.chartattr.CompatibleChartCollectionHelper#dealWithChart
com.fr.chart.chartattr.CompatibleChartCollectionHelper#createChartPainterJustTableData
com.fr.base.chart.BaseChartPainter
图片:
com.fr.web.core.service.AttachmentService
内部的多个 action
斜线:
com.fr.report.cell.painter.TagPainter#paintTag
com.fr.web.BaseHTMLWriterUtils#createImageTag4RepoWithCheckVml - 将绘制的图片存起来,然后转化成 html 标签
见上文中的 Style#paintContent
com.fr.report.cell.painter.BiasTextPainter#paint
其他
- 分页计算
com.fr.page.PG#getReportPages
com.fr.page.generator.PaginateReportPageGenerator#calcPageCount
- 宽高计算
com.fr.base.DynamicPixList#getRangeValue
- 结果报表
com.fr.main.workbook.ResultWorkBook
- sheet
com.fr.report.report.ResultReport
- 页面配置
com.fr.page.ReportPageAttrProvider
- 每一个 sheet 拥有自己的页面配置。
- 页面配置
- sheet
- 分页
com.fr.page.ReportPageProvider
com.fr.web.core.ReportSessionIDInfor#createPageSetChain
com.fr.page.PageSetProvider
- 处理分页效果
com.fr.page.PG
决策报表
请求资源
请求模板资源:
- com.fr.web.weblet.Formlet#dealWeblet - 读取模板
- com.fr.web.weblet.cache.FormEntry#getForm
- com.fr.form.ui.ChartEditor#ChartEditor
- com.fr.web.weblet.cache.FormEntry#getForm
计算
计算参数面板
- com.fr.form.fit.web.handler.ParameterConfigHandler#handle - 计算参数面板
- com.fr.form.main.Form#createParaJSONConfig - 参数处理
- com.fr.form.main.Form#initWidgetData - 处理控件数据
- com.fr.form.main.ExecuteWidgetHelper#dealWithWidgetData - 控件配置计算
- com.fr.form.main.Form#initWidgetData - 处理控件数据
- com.fr.form.fit.common.ConfigDataProcessUtil#handleCompatibleData - 数据兼容
- com.fr.form.main.Form#createParaJSONConfig - 参数处理
计算核心块儿
- com.fr.form.fit.web.handler.FormFitConfigHandler#execute - 配置
- com.fr.form.main.Form#executeElementCases - 计算报表块
- com.fr.report.core.block.execute.Executor#executeAllParallel
- com.fr.report.core.block.execute.Executor#executeAllSerial
- com.fr.form.main.Form#calculateWidget(com.fr.stable.web.Repository, com.fr.script.Calculator)
- com.fr.form.main.Form#initWidgetData - 处理控件数据
- com.fr.form.main.FormConfig#dealWithWidgetData ^y1wa73
- com.fr.form.main.ExecuteWidgetHelper#dealWithWidgetData
- com.fr.form.main.FormConfig#dealWithWidgetData ^y1wa73
- com.fr.form.main.Form#initWidgetData - 处理控件数据
- com.fr.form.fit.web.util.FormFitUtils#createBodyJSONObject - 渲染
- com.fr.form.main.Form#executeElementCases - 计算报表块
报表块
- com.fr.form.fit.web.handler.element.FormLoadReportContentHandler#handle - 报表块
- com.fr.form.fit.web.handler.element.FormLoadReportContentHandler#didElementCase
- com.fr.form.fit.web.handler.element.FormLoadReportContentHandler#doElementCase
- 计算
- com.fr.form.fit.web.handler.element.FormLoadReportContentHandler#executeLazyElements
- com.fr.form.fit.web.handler.element.FormLoadReportContentHandler#reloadContent
- com.fr.web.core.DashboardSessionIDInfo#getElementCaseResult - 获取结果
- 渲染
- com.fr.form.fit.web.handler.element.ElementCaseJsonResult#createReportPageJO
- com.fr.form.fit.web.handler.element.ElementCaseJsonResult#createSimpleReportPageJO
- 计算
其他组件
- com.fr.web.core.service.FormGetSourceValueAction - 获取单个数据值
- com.fr.web.core.service.FormGetSourceValueAction#createJSONConfig
- com.fr.web.core.service.FormGetSourceValueAction#parallelLoad - 并行取数
- com.fr.web.core.service.FormGetSourceValueAction#dealSimpleWidget - 控件
- com.fr.web.core.service.FormGetSourceValueAction#dealChartWidget - 图表
- com.fr.form.ui.BaseChartEditor#createJSONConfig2Show
- 见图表
- com.fr.form.ui.BaseChartEditor#createJSONConfig2Show
- com.fr.web.core.service.FormGetSourceValueAction#parallelLoad - 并行取数
- com.fr.web.core.service.FormGetSourceValueAction#createJSONConfig
参数应用
com.fr.web.utils.WebUtils#parameters4SessionIDInfor
预览时获取请求中的参数com.fr.web.core.utils.ExportUtils#dealWithParam
导出时获取请求中的参数
优先级规则 url 参数>平台挂载参数>参数面板控件>模板参数>全局参数>表单 body 控件>预览界面的控件
- 全局参数和模板参数
com.fr.main.impl.WorkBookHelper#apply4Parameters(com.fr.web.core.SessionParaMap<java.lang.Object>, com.fr.main.parameter.ReportParameterAttr)
com.fr.form.main.FormHelper#apply4Parameters(com.fr.web.core.SessionParaMap<java.lang.Object>, com.fr.form.main.Form)
- 全局参数
ParameterConfig.getInstance().getGlobalParameters()
- 模板参数
com.fr.main.parameter.TemplateParameterAttr#getParameters
- 参数面板参数 ^8c2vyt
com.fr.web.core.service.ParametersDialogAction
com.fr.web.core.TemplateSessionIDInfo#clearSessionPara
只有决策报表会清空 Session 参数。com.fr.web.core.TemplateSessionIDInfo#applySessionIDInfoParameter(javax.servlet.http.HttpServletRequest)
会将参数注入进去,等下一次使用。
com.fr.web.core.TemplateSessionIDInfo#clearPageSet
会清空计算的缓存 book2show, 从而保证参数计算不影响模板计算
- 平台挂载参数 ^arkgbq
com.fr.decision.extension.report.preview.template.CptPreview#dealWithCpt
com.fr.decision.webservice.bean.entry.TemplateBean#getParameters()
com.fr.web.WebletDealWith#dealWithWeblet
- url 参数
- 正式计算的时候,由 url 传递
不参与运算
- 数据集参数
com.fr.main.impl.WorkBookHelper#getParameters
com.fr.data.impl.DBTableData#processParameters
公式计算
com.fr.parser.Ambiguity#delay4PageCal
$$page_number
和$$totalPage_number
会延迟计算- 预览时,是
com.fr.report.core.ReportHF#evalHFPageNumberValue
- 导出时,todo
控件
按钮组
com.fr.form.ui.WriteUnableRepeatEditor
属性
数据字典
com.fr.data.Dictionary
超链接
计算
SEAssist.doHyperlinkPara(CellElement, NameJavaScriptGroup, Calculator) (com.fr.report.core.cal)
- SEAssist.preprocessorJavaScriptParameterAndWidgetDependence(BoxCE, Calculator, Actor) (com.fr.report.core.cal) `
渲染
CellHTMLWriter
com.fr.web.output.html.chwriter.CellHtmlWriter#getHtmlValue
- 将单元格的值转化成 html
com.fr.report.cell.cellattr.CellGUIAttr#isShowAsHTML
- 富文本的展示
ReportHTMLWriterUtils
com.fr.web.core.utils.ReportHTMLWriterUtils#value2PaintableTag
- Painter
- Image
com.fr.base.background.ImageBackground
com.fr.stable.web.Repository#checkoutObject
com.fr.web.request.ImageEmptyRepository
图片空实现- encode data with base64
com.fr.web.RepositoryDeal#checkoutObject
正常预览实现- store in attachment
- return url
- WebImage
- Attachment
- rest