jpc_field.js 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. let JV = require('./jpc_value_define');
  2. let JpcField = {
  3. createNew: function(rptTpl) {
  4. let JpcFieldResult = {};
  5. let me = this;
  6. JpcFieldResult[JV.NODE_DISCRETE_FIELDS] = {};
  7. if (rptTpl[JV.NODE_FIELD_MAP] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS]) {
  8. for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS].length; i++) {
  9. me.createSingle(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS][i], JpcFieldResult[JV.NODE_DISCRETE_FIELDS], rptTpl, JV.DATA_DISCRETE_DATA, i);
  10. }
  11. }
  12. JpcFieldResult[JV.NODE_MASTER_FIELDS] = {};
  13. if (rptTpl[JV.NODE_FIELD_MAP] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS]) {
  14. for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS].length; i++) {
  15. me.createSingle(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS][i], JpcFieldResult[JV.NODE_MASTER_FIELDS], rptTpl, JV.DATA_MASTER_DATA, i);
  16. }
  17. }
  18. JpcFieldResult[JV.NODE_DETAIL_FIELDS] = {};
  19. if (rptTpl[JV.NODE_FIELD_MAP] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS]) {
  20. for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS].length; i++) {
  21. me.createSingle(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS][i], JpcFieldResult[JV.NODE_DETAIL_FIELDS], rptTpl, JV.DATA_DETAIL_DATA, i);
  22. }
  23. }
  24. JpcFieldResult[JV.NODE_NO_MAPPING_FIELDS] = {};
  25. if (rptTpl[JV.NODE_NO_MAPPING_FIELDS]) {
  26. for (let i = 0; i < rptTpl[JV.NODE_NO_MAPPING_FIELDS].length; i++) {
  27. me.createSingle(rptTpl[JV.NODE_NO_MAPPING_FIELDS][i], JpcFieldResult[JV.NODE_NO_MAPPING_FIELDS], rptTpl, "NA", JV.BLANK_FIELD_INDEX);
  28. }
  29. }
  30. JpcFieldResult[JV.NODE_MASTER_FIELDS_EX] = {};
  31. if (rptTpl[JV.NODE_FIELD_MAP] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS_EX]) {
  32. for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS_EX].length; i++) {
  33. me.createSingle(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS_EX][i], JpcFieldResult[JV.NODE_MASTER_FIELDS_EX], rptTpl, JV.DATA_MASTER_DATA_EX, i);
  34. }
  35. }
  36. JpcFieldResult[JV.NODE_DETAIL_FIELDS_EX] = {};
  37. if (rptTpl[JV.NODE_FIELD_MAP] && rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS_EX]) {
  38. for (let i = 0; i < rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS_EX].length; i++) {
  39. me.createSingle(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS_EX][i], JpcFieldResult[JV.NODE_DETAIL_FIELDS_EX], rptTpl, JV.DATA_DETAIL_DATA_EX, i);
  40. }
  41. }
  42. //NODE_MASTER_FIELDS_EX
  43. return JpcFieldResult;
  44. },
  45. createSingle: function(fieldNode, parentObj, rptTpl, dataNodeName, sequence) {
  46. if (fieldNode && fieldNode[JV.PROP_ID]) {
  47. let item = {};
  48. item[JV.PROP_ID] = fieldNode[JV.PROP_ID];
  49. item[JV.PROP_NAME] = fieldNode[JV.PROP_NAME];
  50. item[JV.PROP_DATA_TYPE] = fieldNode[JV.PROP_DATA_TYPE];
  51. if (fieldNode[JV.PROP_PRECISION]) {
  52. item[JV.PROP_PRECISION] = {};
  53. item[JV.PROP_PRECISION].type = fieldNode[JV.PROP_PRECISION].type;
  54. if (fieldNode[JV.PROP_PRECISION].type === 'fixed') {
  55. item[JV.PROP_FIXED_PRECISION_AMT] = fieldNode[JV.PROP_FIXED_PRECISION_AMT];
  56. } else {
  57. item[JV.PROP_PRECISION][JV.PROP_FLEXIBLE_REF_FILED_ID] = fieldNode[JV.PROP_PRECISION][JV.PROP_FLEXIBLE_REF_FILED_ID];
  58. item.flexiblePrecisionRefObj = fieldNode.flexiblePrecisionRefObj;
  59. }
  60. }
  61. item.DataNodeName = dataNodeName;
  62. item.DataSeq = sequence;
  63. parentObj[JV.PROP_ID + "_" + fieldNode[JV.PROP_ID]] = item;
  64. }
  65. }
  66. };
  67. module.exports = JpcField;