|
@@ -1,5 +1,5 @@
|
|
|
-'use strict';
|
|
|
|
|
|
|
|
|
|
|
|
+import JE from './jpc_rte'; //Important: for self-define function execution purpose
|
|
|
import JV from './jpc_value_define';
|
|
import JV from './jpc_value_define';
|
|
|
import JpcBand from './jpc_band';
|
|
import JpcBand from './jpc_band';
|
|
|
import JpcFlowTab from './jpc_flow_tab';
|
|
import JpcFlowTab from './jpc_flow_tab';
|
|
@@ -12,9 +12,12 @@ import JpcFunc from './jpc_function';
|
|
|
import JpcEvent from './jpc_event';
|
|
import JpcEvent from './jpc_event';
|
|
|
import JpcData from './jpc_data';
|
|
import JpcData from './jpc_data';
|
|
|
import JpcCommonHelper from './helper/jpc_helper_common';
|
|
import JpcCommonHelper from './helper/jpc_helper_common';
|
|
|
-import $JE from './jpc_rte'; //Important: for self-define function execution purpose
|
|
|
|
|
|
|
+import useReportDate from '../public/ReportDate'
|
|
|
|
|
+
|
|
|
import { IDefProperties, IFormula, IParams, ICurrent_RPT, ICurrent_DATA, ICustomizeCfg, ITargetFields, IRptTpl, IDataObj, IBands, IControlCollection, IStyles, BorderStyle, IFontSubCollection, IControlSubCollection, IPreviewPage, IRstPage, IMergeBand } from '../interface/basic'
|
|
import { IDefProperties, IFormula, IParams, ICurrent_RPT, ICurrent_DATA, ICustomizeCfg, ITargetFields, IRptTpl, IDataObj, IBands, IControlCollection, IStyles, BorderStyle, IFontSubCollection, IControlSubCollection, IPreviewPage, IRstPage, IMergeBand } from '../interface/basic'
|
|
|
import { IFlowTabClass, IBillTabClass, ICostTabClass } from '../interface/classType';
|
|
import { IFlowTabClass, IBillTabClass, ICostTabClass } from '../interface/classType';
|
|
|
|
|
+import { IControlProps, IFontProps, IPagingOption } from '../interface/enum';
|
|
|
|
|
+import { Key } from 'readline';
|
|
|
|
|
|
|
|
class JpcExClass {
|
|
class JpcExClass {
|
|
|
flowTab!: IFlowTabClass;
|
|
flowTab!: IFlowTabClass;
|
|
@@ -56,12 +59,14 @@ class JpcExClass {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
analyzeData(rptTpl: IRptTpl, dataObj: IDataObj, defProperties: IDefProperties, option: string, outputType: string) {
|
|
analyzeData(rptTpl: IRptTpl, dataObj: IDataObj, defProperties: IDefProperties, option: string, outputType: string) {
|
|
|
- let me = this, dftPagingOption = option || JV.PAGING_OPTION_NORMAL;
|
|
|
|
|
|
|
+ let me = this, dftPagingOption = option || IPagingOption.normal;
|
|
|
//1. data object
|
|
//1. data object
|
|
|
let dataHelper: any = JpcData.createNew();
|
|
let dataHelper: any = JpcData.createNew();
|
|
|
- me.executeFormulas(JV.RUN_TYPE_BEFORE_ANALYZING, rptTpl, dataObj, me); //在分析前运行,主要是增加灵活性,比如:重新编排数据的主从关系
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 主要是通过计算rptTpl参数里面的 指标_数据_映射 属性中的公式,赋值于dataObj中的相对应(根据)的属性
|
|
|
|
|
+ me.executeFormulas('before_analyzing', rptTpl, dataObj, me); //在分析前运行,主要是增加灵活性,比如:重新编排数据的主从关系
|
|
|
if (me.crossTab) {
|
|
if (me.crossTab) {
|
|
|
- me.executeFormulas(JV.RUN_TYPE_BEFORE_PAGING, rptTpl, dataObj, me);
|
|
|
|
|
|
|
+ me.executeFormulas('before_paging', rptTpl, dataObj, me);
|
|
|
dataHelper.analyzeData(rptTpl, dataObj);
|
|
dataHelper.analyzeData(rptTpl, dataObj);
|
|
|
me.crossTab.sorting(rptTpl, dataObj, dataHelper.dataSeq.slice(0), me);
|
|
me.crossTab.sorting(rptTpl, dataObj, dataHelper.dataSeq.slice(0), me);
|
|
|
} else {
|
|
} else {
|
|
@@ -75,24 +80,28 @@ class JpcExClass {
|
|
|
me.flowTabEx.sorting(rptTpl, dataObj, dataHelper.exDataSeq.slice(0), me);
|
|
me.flowTabEx.sorting(rptTpl, dataObj, dataHelper.exDataSeq.slice(0), me);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
if (me.billTab) {
|
|
if (me.billTab) {
|
|
|
|
|
+ // 先记录下账单式表_信息.账单式表_数据中的数据相对应于从 数据指标_集合 中的相对应的数组序号,后面便于计算
|
|
|
// me.billTab.sorting(rptTpl, dataObj, dataHelper.dataSeq.slice(0), me);
|
|
// me.billTab.sorting(rptTpl, dataObj, dataHelper.dataSeq.slice(0), me);
|
|
|
- me.billTab.sorting(rptTpl);//edit by lish,方法中需要的参数只有一个,但是这里存入了4个
|
|
|
|
|
|
|
+ //edit by lish,方法中需要的参数只有一个,但是这里存入了4个
|
|
|
|
|
+ me.billTab.sorting(rptTpl);
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
- //let dt2 = new Date();
|
|
|
|
|
- //alert(dt2 - dt1);
|
|
|
|
|
//3. formulas
|
|
//3. formulas
|
|
|
- me.executeFormulas(JV.RUN_TYPE_BEFORE_PAGING, rptTpl, dataObj, me);
|
|
|
|
|
|
|
+ // 主要是通过计算rptTpl参数里面的 指标_数据_映射 属性中的公式,赋值于dataObj中的相对应(根据)的属性
|
|
|
|
|
+ me.executeFormulas('before_paging', rptTpl, dataObj, me);
|
|
|
}
|
|
}
|
|
|
//4. paging
|
|
//4. paging
|
|
|
|
|
+ //获取总页数
|
|
|
me.paging(rptTpl, dataObj, defProperties, dftPagingOption);
|
|
me.paging(rptTpl, dataObj, defProperties, dftPagingOption);
|
|
|
//alert('analyzeData was completed!');
|
|
//alert('analyzeData was completed!');
|
|
|
//for garbage collection:
|
|
//for garbage collection:
|
|
|
- // dataHelper = null;
|
|
|
|
|
|
|
+ dataHelper = null;
|
|
|
};
|
|
};
|
|
|
-
|
|
|
|
|
|
|
+ //获取总页数
|
|
|
paging(rptTpl: IRptTpl, dataObj: IDataObj, defProperties: IDefProperties, option: string) {
|
|
paging(rptTpl: IRptTpl, dataObj: IDataObj, defProperties: IDefProperties, option: string) {
|
|
|
- let me = this, dftPagingOption = option || JV.PAGING_OPTION_NORMAL;
|
|
|
|
|
|
|
+ let me = this, dftPagingOption = option || IPagingOption.normal;
|
|
|
if (me.flowTab) {
|
|
if (me.flowTab) {
|
|
|
if (me.isFollowMode) {
|
|
if (me.isFollowMode) {
|
|
|
me.totalPages = me.flowTab.preSetupPages(rptTpl, dataObj, defProperties, dftPagingOption, me, me.flowTabEx);
|
|
me.totalPages = me.flowTab.preSetupPages(rptTpl, dataObj, defProperties, dftPagingOption, me, me.flowTabEx);
|
|
@@ -106,24 +115,36 @@ class JpcExClass {
|
|
|
}
|
|
}
|
|
|
} else if (me.crossTab) {
|
|
} else if (me.crossTab) {
|
|
|
//me.totalPages = me.crossTab.preSetupPages(rptTpl, defProperties, dftPagingOption);
|
|
//me.totalPages = me.crossTab.preSetupPages(rptTpl, defProperties, dftPagingOption);
|
|
|
- me.totalPages = me.crossTab.preSetupPages(rptTpl, defProperties, JV.PAGING_OPTION_NORMAL); //infinity对交叉表来说无意义
|
|
|
|
|
|
|
+ me.totalPages = me.crossTab.preSetupPages(rptTpl, defProperties, IPagingOption.normal); //infinity对交叉表来说无意义
|
|
|
} else if (me.billTab) {
|
|
} else if (me.billTab) {
|
|
|
me.totalPages = me.billTab.paging(rptTpl, dataObj);
|
|
me.totalPages = me.billTab.paging(rptTpl, dataObj);
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- executeFormulas(runType: string, $CURRENT_TEMPLATE: any, $CURRENT_DATA: ICurrent_DATA, $CURRENT_RPT: ICurrent_RPT) {
|
|
|
|
|
|
|
+ //根据步骤,对formulas中的计算式进行处理,并赋值到相应属性中
|
|
|
|
|
+ executeFormulas(runType: string, $CURRENT_TEMPLATE: IRptTpl, $CURRENT_DATA: IDataObj, $CURRENT_RPT: ICurrent_RPT) {
|
|
|
let execFmlMe = this;
|
|
let execFmlMe = this;
|
|
|
for (let execFmlIdx = 0; execFmlIdx < execFmlMe.formulas.length; execFmlIdx++) {
|
|
for (let execFmlIdx = 0; execFmlIdx < execFmlMe.formulas.length; execFmlIdx++) {
|
|
|
//remark: 搞这么复杂的变量名是为了防止与表达式起冲突(如循环变量i,j,k,容易造成变量冲突且不容易看出问题)
|
|
//remark: 搞这么复杂的变量名是为了防止与表达式起冲突(如循环变量i,j,k,容易造成变量冲突且不容易看出问题)
|
|
|
if (execFmlMe.formulas[execFmlIdx].run_type === runType) {
|
|
if (execFmlMe.formulas[execFmlIdx].run_type === runType) {
|
|
|
let expression = execFmlMe.formulas[execFmlIdx].expression;
|
|
let expression = execFmlMe.formulas[execFmlIdx].expression;
|
|
|
if (expression) {
|
|
if (expression) {
|
|
|
|
|
+ // 计算式集合,目前是放置打印信息的,用于配置属性的计算
|
|
|
let $ME = execFmlMe.formulas[execFmlIdx];
|
|
let $ME = execFmlMe.formulas[execFmlIdx];
|
|
|
// console.log("current expression idx: " + execFmlIdx);
|
|
// console.log("current expression idx: " + execFmlIdx);
|
|
|
// console.log(expression);
|
|
// console.log(expression);
|
|
|
|
|
+
|
|
|
try {
|
|
try {
|
|
|
- eval(expression);
|
|
|
|
|
|
|
+ const $JE = JE;
|
|
|
|
|
+ const ReportDate = useReportDate;
|
|
|
|
|
+ console.log(expression);
|
|
|
|
|
+ //临时处理
|
|
|
|
|
+ if (expression.indexOf('Date()') > -1) {
|
|
|
|
|
+ eval(expression.replace('Date()', 'ReportDate()'));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ eval(expression);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
} catch (ex) {
|
|
} catch (ex) {
|
|
|
console.log(ex);
|
|
console.log(ex);
|
|
|
}
|
|
}
|
|
@@ -145,7 +166,7 @@ class JpcExClass {
|
|
|
let bands = JpcBand.createNew(rptTpl, defProperties);
|
|
let bands = JpcBand.createNew(rptTpl, defProperties);
|
|
|
try {
|
|
try {
|
|
|
function getPageMergeBorder() {
|
|
function getPageMergeBorder() {
|
|
|
- let mergeRst: IMergeBand = {};
|
|
|
|
|
|
|
+ let mergeRst = {} as IMergeBand;
|
|
|
if (bands.MergeBand) {
|
|
if (bands.MergeBand) {
|
|
|
let mergedBand = bands.MergeBand;
|
|
let mergedBand = bands.MergeBand;
|
|
|
mergeRst.Left = parseInt(mergedBand.Left.toFixed(0));
|
|
mergeRst.Left = parseInt(mergedBand.Left.toFixed(0));
|
|
@@ -172,12 +193,14 @@ class JpcExClass {
|
|
|
rst.items.push(rstPage);
|
|
rst.items.push(rstPage);
|
|
|
//2.
|
|
//2.
|
|
|
if (bands.MergeBand) {
|
|
if (bands.MergeBand) {
|
|
|
- let mergedBand: IMergeBand = {}, band = bands.MergeBand;
|
|
|
|
|
- mergedBand.Left = parseInt(band.Left.toFixed(0));
|
|
|
|
|
- mergedBand.Right = parseInt(band.Right.toFixed(0));
|
|
|
|
|
- mergedBand.Top = parseInt(band.Top.toFixed(0));
|
|
|
|
|
- mergedBand.Bottom = parseInt(band.Bottom.toFixed(0));
|
|
|
|
|
- mergedBand.style = band.style;
|
|
|
|
|
|
|
+ let band = bands.MergeBand;
|
|
|
|
|
+ let mergedBand :IMergeBand= {
|
|
|
|
|
+ Left : parseInt(band.Left.toFixed(0)),
|
|
|
|
|
+ Right: parseInt(band.Right.toFixed(0)),
|
|
|
|
|
+ Top : parseInt(band.Top.toFixed(0)),
|
|
|
|
|
+ Bottom :parseInt(band.Bottom.toFixed(0)),
|
|
|
|
|
+ style: band.style,
|
|
|
|
|
+ } ;
|
|
|
rst.MergeBand = mergedBand;
|
|
rst.MergeBand = mergedBand;
|
|
|
}
|
|
}
|
|
|
} catch (exception) {
|
|
} catch (exception) {
|
|
@@ -193,26 +216,31 @@ class JpcExClass {
|
|
|
if ((startPage > 0) && (startPage <= endPage) && (endPage <= me.totalPages)) {
|
|
if ((startPage > 0) && (startPage <= endPage) && (endPage <= me.totalPages)) {
|
|
|
rst.control_collection = private_buildDftControls(rptTpl, (defProperties === null) ? null : defProperties.ctrls);
|
|
rst.control_collection = private_buildDftControls(rptTpl, (defProperties === null) ? null : defProperties.ctrls);
|
|
|
rst.style_collection = private_buildDftStyles(rptTpl, (defProperties === null) ? null : defProperties.styles);
|
|
rst.style_collection = private_buildDftStyles(rptTpl, (defProperties === null) ? null : defProperties.styles);
|
|
|
- rst[JV.NODE_FONT_COLLECTION] = private_buildDftFonts(rptTpl, (defProperties === null) ? null : defProperties.fonts);
|
|
|
|
|
|
|
+ rst.font_collection = private_buildDftFonts(rptTpl, (defProperties === null) ? null : defProperties.fonts);
|
|
|
rst.打印页面_信息 = {};
|
|
rst.打印页面_信息 = {};
|
|
|
rst.打印页面_信息.报表名称 = rptTpl.主信息.报表名称;
|
|
rst.打印页面_信息.报表名称 = rptTpl.主信息.报表名称;
|
|
|
rst.打印页面_信息.纸张宽高 = JpcCommonHelper.getPageSize(rptTpl);
|
|
rst.打印页面_信息.纸张宽高 = JpcCommonHelper.getPageSize(rptTpl);
|
|
|
rst.打印页面_信息.页边距 = rptTpl.主信息.页边距;
|
|
rst.打印页面_信息.页边距 = rptTpl.主信息.页边距;
|
|
|
rst.items = [];
|
|
rst.items = [];
|
|
|
|
|
+ //初始化band(每个大板块的属性)
|
|
|
let bands = JpcBand.createNew(rptTpl, defProperties);
|
|
let bands = JpcBand.createNew(rptTpl, defProperties);
|
|
|
try {
|
|
try {
|
|
|
for (let page = startPage; page <= endPage; page++) {
|
|
for (let page = startPage; page <= endPage; page++) {
|
|
|
me.runTimePageData.currentPage = page;
|
|
me.runTimePageData.currentPage = page;
|
|
|
- me.executeFormulas(JV.RUN_TYPE_BEFORE_OUTPUT, rptTpl, dataObj, me);
|
|
|
|
|
|
|
+ me.executeFormulas('before_output', rptTpl, dataObj, me);
|
|
|
|
|
+ console.log('=======================');
|
|
|
rst.items.push(me.outputAsSimpleJSONPage(rptTpl, dataObj, bands, page, rst.control_collection, customizeCfg));
|
|
rst.items.push(me.outputAsSimpleJSONPage(rptTpl, dataObj, bands, page, rst.control_collection, customizeCfg));
|
|
|
}
|
|
}
|
|
|
if (bands.MergeBand) {
|
|
if (bands.MergeBand) {
|
|
|
- let mergedBand: IMergeBand = {}, band = bands.MergeBand;
|
|
|
|
|
- mergedBand.Left = parseInt(band.Left.toFixed(0));
|
|
|
|
|
- mergedBand.Right = parseInt(band.Right.toFixed(0));
|
|
|
|
|
- mergedBand.Top = parseInt(band.Top.toFixed(0));
|
|
|
|
|
- mergedBand.Bottom = parseInt(band.Bottom.toFixed(0));
|
|
|
|
|
- mergedBand.style = band.style;
|
|
|
|
|
|
|
+ let band = bands.MergeBand;
|
|
|
|
|
+ let mergedBand: IMergeBand = {
|
|
|
|
|
+ Left : parseInt(band.Left.toFixed(0)),
|
|
|
|
|
+ Right: parseInt(band.Right.toFixed(0)),
|
|
|
|
|
+ Top : parseInt(band.Top.toFixed(0)),
|
|
|
|
|
+ Bottom : parseInt(band.Bottom.toFixed(0)),
|
|
|
|
|
+ style : band.style,
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
rst.MergeBand = mergedBand;
|
|
rst.MergeBand = mergedBand;
|
|
|
}
|
|
}
|
|
|
} catch (exception) {
|
|
} catch (exception) {
|
|
@@ -228,10 +256,9 @@ class JpcExClass {
|
|
|
let me = this, rst: any = null;
|
|
let me = this, rst: any = null;
|
|
|
function getPageMergeBorder() {
|
|
function getPageMergeBorder() {
|
|
|
// let mergeRst = null;
|
|
// let mergeRst = null;
|
|
|
- let mergeRst: IMergeBand = {};
|
|
|
|
|
|
|
+ let mergeRst = {} as IMergeBand;
|
|
|
if (bands.MergeBand) {
|
|
if (bands.MergeBand) {
|
|
|
let mergedBand = bands.MergeBand;
|
|
let mergedBand = bands.MergeBand;
|
|
|
- mergeRst = {};
|
|
|
|
|
mergeRst.Left = parseInt(mergedBand.Left.toFixed(0));
|
|
mergeRst.Left = parseInt(mergedBand.Left.toFixed(0));
|
|
|
mergeRst.Right = parseInt(mergedBand.Right.toFixed(0));
|
|
mergeRst.Right = parseInt(mergedBand.Right.toFixed(0));
|
|
|
mergeRst.Top = parseInt(mergedBand.Top.toFixed(0));
|
|
mergeRst.Top = parseInt(mergedBand.Top.toFixed(0));
|
|
@@ -253,7 +280,7 @@ class JpcExClass {
|
|
|
rst.cells = me.flowTab.outputAsSimpleJSONPage(rptTpl, dataObj, page, bands, controls, adHocMergePos, me, customizeCfg);
|
|
rst.cells = me.flowTab.outputAsSimpleJSONPage(rptTpl, dataObj, page, bands, controls, adHocMergePos, me, customizeCfg);
|
|
|
if (adHocMergePos) {
|
|
if (adHocMergePos) {
|
|
|
adHocMergePos.纸张宽高 = JpcCommonHelper.getPageSize(rptTpl);
|
|
adHocMergePos.纸张宽高 = JpcCommonHelper.getPageSize(rptTpl);
|
|
|
- rst[JV.PAGE_SPECIAL_MERGE_POS] = adHocMergePos;
|
|
|
|
|
|
|
+ rst.page_merge_pos = adHocMergePos;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
} else {
|
|
@@ -266,7 +293,7 @@ class JpcExClass {
|
|
|
} else if (me.billTab) {
|
|
} else if (me.billTab) {
|
|
|
rst.cells = me.billTab.outputAsSimpleJSONPage(rptTpl, dataObj, page, bands, controls, me, customizeCfg);
|
|
rst.cells = me.billTab.outputAsSimpleJSONPage(rptTpl, dataObj, page, bands, controls, me, customizeCfg);
|
|
|
}
|
|
}
|
|
|
- if (!(me.flowTab && me.flowTab.paging_option === JV.PAGING_OPTION_INFINITY)) {
|
|
|
|
|
|
|
+ if (!(me.flowTab && me.flowTab.paging_option === IPagingOption.infinity)) {
|
|
|
let pageMergeBorder = getPageMergeBorder();
|
|
let pageMergeBorder = getPageMergeBorder();
|
|
|
if (pageMergeBorder) {
|
|
if (pageMergeBorder) {
|
|
|
rst.page_merge_border = pageMergeBorder;
|
|
rst.page_merge_border = pageMergeBorder;
|
|
@@ -278,17 +305,19 @@ class JpcExClass {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//暂定
|
|
//暂定
|
|
|
-function private_buildDftItems(rptTpl: any, dftCollection: any, propArray: any, nodeName: any) {
|
|
|
|
|
|
|
+const private_buildDftItems = (
|
|
|
|
|
+ rptTpl: any,
|
|
|
|
|
+ dftCollection: IControlSubCollection[] | IFontSubCollection[] | null,
|
|
|
|
|
+ nodeName: string
|
|
|
|
|
+) => {
|
|
|
const rst: any = {};
|
|
const rst: any = {};
|
|
|
if (dftCollection) {
|
|
if (dftCollection) {
|
|
|
for (let i = 0; i < dftCollection.length; i++) {
|
|
for (let i = 0; i < dftCollection.length; i++) {
|
|
|
- const item: any = {};
|
|
|
|
|
- for (let j = 0; j < propArray.length; j++) {
|
|
|
|
|
- item[propArray[j]] = dftCollection[i][propArray[j]];
|
|
|
|
|
- }
|
|
|
|
|
- rst[dftCollection[i].ID] = item;
|
|
|
|
|
|
|
+ const { ID, ...dftCollectionProps } = dftCollection[i];
|
|
|
|
|
+ rst[dftCollection[i].ID] = { ...dftCollectionProps };
|
|
|
}
|
|
}
|
|
|
- if (rptTpl && rptTpl[nodeName] && rptTpl[nodeName].length > 0) {
|
|
|
|
|
|
|
+ const propArray = (nodeName === 'control_collection') ? JV.CONTROL_PROPS : JV.FONT_PROPS;
|
|
|
|
|
+ if (rptTpl && rptTpl[nodeName] && rptTpl[nodeName].length) {
|
|
|
for (let i = 0; i < rptTpl[nodeName].length; i++) {
|
|
for (let i = 0; i < rptTpl[nodeName].length; i++) {
|
|
|
const rptDftItem = rptTpl[nodeName][i];
|
|
const rptDftItem = rptTpl[nodeName][i];
|
|
|
if (rst[rptDftItem.ID] === undefined) {
|
|
if (rst[rptDftItem.ID] === undefined) {
|
|
@@ -305,11 +334,11 @@ function private_buildDftItems(rptTpl: any, dftCollection: any, propArray: any,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function private_buildDftControls(rptTpl: IRptTpl, dftControlCollection: IControlSubCollection[] | null) {
|
|
function private_buildDftControls(rptTpl: IRptTpl, dftControlCollection: IControlSubCollection[] | null) {
|
|
|
- return private_buildDftItems(rptTpl, dftControlCollection, JV.CONTROL_PROPS, JV.NODE_CONTROL_COLLECTION);
|
|
|
|
|
|
|
+ return private_buildDftItems(rptTpl, dftControlCollection, 'control_collection');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function private_buildDftFonts(rptTpl: IRptTpl, dftFontCollection: IFontSubCollection[] | null) {
|
|
function private_buildDftFonts(rptTpl: IRptTpl, dftFontCollection: IFontSubCollection[] | null) {
|
|
|
- return private_buildDftItems(rptTpl, dftFontCollection, JV.FONT_PROPS, JV.NODE_FONT_COLLECTION);
|
|
|
|
|
|
|
+ return private_buildDftItems(rptTpl, dftFontCollection, 'font_collection');
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function private_buildDftStyles(rptTpl: IRptTpl, dftStyleCollection: IStyles[] | null) {
|
|
function private_buildDftStyles(rptTpl: IRptTpl, dftStyleCollection: IStyles[] | null) {
|