jpc_helper_discrete.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. let JV = require('../jpc_value_define');
  2. let JE = require('../jpc_rte');
  3. let JpcTextHelper = require('./jpc_helper_text');
  4. let JpcCommonOutputHelper = require('./jpc_helper_common_output');
  5. let JpcAreaHelper = require('./jpc_helper_area');
  6. let JpcFieldHelper = require('./jpc_helper_field');
  7. let JpcDiscreteHelper = {
  8. outputDiscreteInfo: function (discreteArray, bands, dataObj, unitFactor, pageStatus, segIdx, multiCols, multiColIdx, $CURRENT_RPT, customizeCfg) {
  9. let rst = [];
  10. if (discreteArray && dataObj) {
  11. for (let i = 0; i < discreteArray.length; i++) {
  12. let band = bands[discreteArray[i][JV.PROP_BAND_NAME]];
  13. if (band && pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]] === true) {
  14. if (discreteArray[i][JV.PROP_TEXT]) {
  15. rst.push(JpcTextHelper.outputText(discreteArray[i][JV.PROP_TEXT], band, unitFactor, 1, 0, 1, 0, multiCols, multiColIdx));
  16. }
  17. if (discreteArray[i][JV.PROP_TEXTS]) {
  18. for (let j = 0; j < discreteArray[i][JV.PROP_TEXTS].length; j++) {
  19. rst.push(JpcTextHelper.outputText(discreteArray[i][JV.PROP_TEXTS][j], band, unitFactor, 1, 0, 1, 0, multiCols, multiColIdx));
  20. }
  21. }
  22. if (discreteArray[i][JV.PROP_DISCRETE_FIELDS]) {
  23. let flexiblePrecisionRefObj = null, flexibleRefField = null;
  24. for (let j = 0; j < discreteArray[i][JV.PROP_DISCRETE_FIELDS].length; j++) {
  25. let df = discreteArray[i][JV.PROP_DISCRETE_FIELDS][j];
  26. let value = "";
  27. if (df[JV.PROP_FIELD_ID]) {
  28. // let map_data_field = JE.F(df[JV.PROP_FIELD_ID], $CURRENT_RPT);
  29. let map_data_field = JE.F(df[JV.PROP_FIELD_ID], $CURRENT_RPT);
  30. if (map_data_field.DataSeq !== JV.BLANK_FIELD_INDEX) {
  31. let data = dataObj[map_data_field.DataNodeName][map_data_field.DataSeq];
  32. if (data && data.length > 0) {
  33. if (data.length > segIdx) {
  34. value = data[segIdx];
  35. } else {
  36. value = data[0];
  37. }
  38. }
  39. } else {
  40. if (map_data_field[JV.PROP_AD_HOC_DATA] && map_data_field[JV.PROP_AD_HOC_DATA].length > 0) {
  41. value = map_data_field[JV.PROP_AD_HOC_DATA][0]
  42. } else value = "";
  43. }
  44. if (map_data_field && map_data_field[JV.PROP_PRECISION] && map_data_field.flexiblePrecisionRefObj) {
  45. let pre_ref_data = null;
  46. if (flexiblePrecisionRefObj === null) {
  47. flexiblePrecisionRefObj = {};
  48. flexibleRefField = JE.F(map_data_field[JV.PROP_PRECISION][JV.PROP_FLEXIBLE_REF_FILED_ID], $CURRENT_RPT);
  49. pre_ref_data = dataObj[map_data_field.DataNodeName][flexibleRefField.DataSeq]; //这里的引用指标必须得存在,哪怕不显示,也要存放在指标集合中!
  50. for (let decimalObj of map_data_field.flexiblePrecisionRefObj) {
  51. flexiblePrecisionRefObj["refUnit_" + decimalObj.unit] = decimalObj.decimal;
  52. }
  53. }
  54. JpcFieldHelper.resetFlexibleFormat(df, pre_ref_data, flexiblePrecisionRefObj, segIdx, customizeCfg);
  55. } else {
  56. JpcFieldHelper.resetFormat(df, map_data_field, customizeCfg);
  57. }
  58. } else if (df[JV.PROP_PARAM_ID]) {
  59. let param = JE.P(df[JV.PROP_PARAM_ID], $CURRENT_RPT);
  60. value = param[JV.PROP_DFT_VALUE];
  61. }
  62. let item = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, value, true);
  63. //position
  64. item[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, multiCols, multiColIdx, false, false);
  65. rst.push(item);
  66. }
  67. }
  68. }
  69. }
  70. }
  71. return rst;
  72. },
  73. outputPreviewDiscreteInfo: function (discreteArray, bands, unitFactor, pageStatus) {
  74. let rst = [];
  75. for (let i = 0; i < discreteArray.length; i++) {
  76. let band = bands[discreteArray[i][JV.PROP_BAND_NAME]];
  77. if (band && pageStatus[band[JV.BAND_PROP_DISPLAY_TYPE]] === true) {
  78. if (discreteArray[i][JV.PROP_TEXT]) {
  79. rst.push(JpcTextHelper.outputText(discreteArray[i][JV.PROP_TEXT], band, unitFactor, 1, 0, 1, 0, 1, 0));
  80. }
  81. if (discreteArray[i][JV.PROP_TEXTS]) {
  82. for (let j = 0; j < discreteArray[i][JV.PROP_TEXTS].length; j++) {
  83. rst.push(JpcTextHelper.outputText(discreteArray[i][JV.PROP_TEXTS][j], band, unitFactor, 1, 0, 1, 0, 1, 0));
  84. }
  85. }
  86. if (discreteArray[i][JV.PROP_DISCRETE_FIELDS]) {
  87. for (let j = 0; j < discreteArray[i][JV.PROP_DISCRETE_FIELDS].length; j++) {
  88. let df = discreteArray[i][JV.PROP_DISCRETE_FIELDS][j];
  89. let value = "";
  90. if (df[JV.PROP_DFT_VALUE]) {
  91. value = df[JV.PROP_DFT_VALUE];
  92. }
  93. let item = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(df, value, null);
  94. //position
  95. item[JV.PROP_AREA] = JpcAreaHelper.outputArea(df[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
  96. rst.push(item);
  97. }
  98. }
  99. }
  100. }
  101. return rst;
  102. },
  103. outputPreviewSumInfoOutput: function (band, unitFactor, tab) {
  104. let rst = [];
  105. if (tab[JV.PROP_TEXT]) {
  106. rst.push(JpcTextHelper.outputText(tab[JV.PROP_TEXT], band, unitFactor, 1, 0, 1, 0, 1, 0));
  107. }
  108. if (tab[JV.PROP_TEXTS]) {
  109. for (let j = 0; j < tab[JV.PROP_TEXTS].length; j++) {
  110. rst.push(JpcTextHelper.outputText(tab[JV.PROP_TEXTS][j], band, unitFactor, 1, 0, 1, 0, 1, 0));
  111. }
  112. }
  113. if (tab[JV.PROP_SUM_FIELDS]) {
  114. for (let i = 0; i < tab[JV.PROP_SUM_FIELDS].length; i++) {
  115. let tab_field = tab[JV.PROP_SUM_FIELDS][i];
  116. if (!(tab_field[JV.PROP_HIDDEN])) {
  117. // rst.push(me.outputTabField(band, tab_field, null, -1, -1, 1, 0, 1, 0, unitFactor, true, controls, 0));
  118. let value = "";
  119. let item = JpcCommonOutputHelper.createCommonOutputWithoutDecorate(tab_field, value, null);
  120. //position
  121. item[JV.PROP_AREA] = JpcAreaHelper.outputArea(tab_field[JV.PROP_AREA], band, unitFactor, 1, 0, 1, 0, 1, 0, false, false);
  122. rst.push(item);
  123. }
  124. }
  125. }
  126. return rst;
  127. }
  128. }
  129. module.exports = JpcDiscreteHelper;