|  | @@ -65,18 +65,31 @@ let JE = {
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      getFieldValue: function (field, dataObj, valIdx, dftVal) {
 | 
	
		
			
				|  |  |          let rst = dftVal;
 | 
	
		
			
				|  |  | -        if (!field.DataNodeName) {
 | 
	
		
			
				|  |  | -            //that means this is a self-defined discrete field!
 | 
	
		
			
				|  |  | -            field.DataNodeName = JV.DATA_DISCRETE_DATA;
 | 
	
		
			
				|  |  | -            let len = dataObj[JV.DATA_DISCRETE_DATA];
 | 
	
		
			
				|  |  | -            field.DataSeq = len;
 | 
	
		
			
				|  |  | -            dataObj[JV.DATA_DISCRETE_DATA].push([]);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        if (dataObj[field.DataNodeName][field.DataSeq].length > valIdx) {
 | 
	
		
			
				|  |  | -            rst = dataObj[field.DataNodeName][field.DataSeq][valIdx];
 | 
	
		
			
				|  |  | +        if (field.DataNodeName === "NA") {
 | 
	
		
			
				|  |  | +            if (!field[JV.PROP_AD_HOC_DATA]) {
 | 
	
		
			
				|  |  | +                field[JV.PROP_AD_HOC_DATA] = [];
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (field[JV.PROP_AD_HOC_DATA].length > valIdx) {
 | 
	
		
			
				|  |  | +                rst = field[JV.PROP_AD_HOC_DATA][valIdx];
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                if (dftVal === null && field[JV.PROP_AD_HOC_DATA].length > 0) {
 | 
	
		
			
				|  |  | +                    rst = field[JV.PROP_AD_HOC_DATA][field[JV.PROP_AD_HOC_DATA].length - 1];
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | -            if (dftVal === null && dataObj[field.DataNodeName][field.DataSeq].length > 0) {
 | 
	
		
			
				|  |  | -                rst = dataObj[field.DataNodeName][field.DataSeq][dataObj[field.DataNodeName][field.DataSeq].length - 1];
 | 
	
		
			
				|  |  | +            if (!field.DataNodeName) {
 | 
	
		
			
				|  |  | +                //that means this is a self-defined discrete field!
 | 
	
		
			
				|  |  | +                field.DataNodeName = JV.DATA_DISCRETE_DATA;
 | 
	
		
			
				|  |  | +                let len = dataObj[JV.DATA_DISCRETE_DATA];
 | 
	
		
			
				|  |  | +                field.DataSeq = len;
 | 
	
		
			
				|  |  | +                dataObj[JV.DATA_DISCRETE_DATA].push([]);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if (dataObj[field.DataNodeName][field.DataSeq].length > valIdx) {
 | 
	
		
			
				|  |  | +                rst = dataObj[field.DataNodeName][field.DataSeq][valIdx];
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                if (dftVal === null && dataObj[field.DataNodeName][field.DataSeq].length > 0) {
 | 
	
		
			
				|  |  | +                    rst = dataObj[field.DataNodeName][field.DataSeq][dataObj[field.DataNodeName][field.DataSeq].length - 1];
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return rst;
 |