RealGrid2 가이드
데이터 관리
계산 필드

계산 필드

다른 필드값에 의해 자동으로 값이 계산되는 Calculate Field는 DataField.valueExpression, valueCallback 구현할 수 있습니다.

그리고 계산 필드의 값은 수정할 수 없습니다. setValue()로 값 변경 불가, 편집 불가, ReadOnly로만 사용 가능.

valueExpression

values['필드명'], values[필드인덱스]로 값을 참조하면 되고, 수식에서 다른 calculated 필드의 참조는 허용하지 않습니다.
아래 데모는 납부 금액 = 납입 횟수 * 납입금 을 표시한 데모입니다.

var fields = [
...
  {
    fieldName: "PaymentAmount",
    dataType: "number",
    valueExpression: "values['ToMonth'] * values['SaveCost']"
  }
];
 
dataProvider.setFields(fields);

valueCallback

계산되는 값이 단순한 사칙연산이 아니고 다양한 계산식이 필요한 경우 valueCallback을 사용하면 됩니다. 계산에 필요한 시간이 많이 필요한 경우 그리드가 느려질 수 있습니다. 아래 데모는 납입횟수가 15 이상인 경우 납부 금액 = 납입 횟수 * 납입금 * 2 를 표시한 데모 입니다.

var fields = [
...
  {
    fieldName: "PaymentAmount",
    dataType: "number",
    valueCallback: function (prod, dataRow, fieldName, fieldNames, values) {
      let paymentCount = values[fieldNames.indexOf("ToMonth")];
      let paymentAmount = values[fieldNames.indexOf("SaveCost")];
 
      if (isNaN(paymentCount) || isNaN(paymentAmount))
          return undefined;
      else
          return paymentCount >= 15 ? paymentCount * paymentAmount * 2 : paymentCount * paymentAmount;
      }
  }
];
 
dataProvider.setFields(fields);