attribute+Formula (col)

열의 각종 속성(CanEdit, TextColor 등)을 Formula를 통해 설정할 수 있습니다.
가령 CanEdit, Color 등과 같은 속성을 Formula로 지정하여 설정한다는 것은 다음과 같이 선언될 수 있습니다.

options.Cols = [
  {Type:"Text", Name:"Total",
      CanEditFormula:"CHK==1&&AMT>10?1:0",
      ColorFormula:"Value>10000 ? '#FF0000':'#FFFF00'",
      FormatFormula:function(param){
          if(param.Row["SaupJuminNo"].length == 10){
              return "###-##-#####";
          }else{
               return "######-#######";
           }
      }
  }
];

매우중요

  1. 모든 포뮬러 기능을 사용시에는 (row)CanFormula가 1로 설정되어야 동작합니다.
  2. attribute+Formula 사용시에는 반드시 (row)CalcOrder열이름+기능명 형식으로 포뮬러별 계산 순서가 정의되어야 합니다.
    가령 "A"열에 대해 CanEdit속성 포뮬러를 설정하고 "B"열에 대해 Color속성 포뮬러를 설정했다면, CalcOrder에는 "ACanEdit, BColor"로 명시하면 됩니다.

Type

mixed( function | string )

Options

Value Description
string 열이름을 기준으로 한 계산 로직 (ex: "sCount \* sPrice - ( Discount \* Rate ) \* 1.24")
function 별도 함수를 통해 계산 가능(함수 내에서는 Sheet,Row,Col,Attr 예약어를 통해 접근 가능)

Example

// formula 사용시 CanFormula:1이 설정 되어야 하고, attribute+Formula사용시에는 CalcOrder도 설정되어야 함
options.Def.Row = {
    CanFormula: 1,
    CalcOrder: "yearSumColor,rateCanEdit" // 열이름 간에 띄어쓰지말고 전부 붙여쓰셔야 합니다.
};
options.Cols = [
    ...
    {Type: "Bool" Name: "CHK"},
    // 해당 열의 값이 100보다 큰 경우 붉은색 그렇지 않은 경우 옅은노란색으로 배경색이 자동 변경
    {Type: "Int",  Name: "yearSum",
        ColorFormula:function(fr){
            return fr.Value>100?'#FF0000':'#FFFFAA';
        }
    },
    // CHK 열이 체크되어있고, yearSum열의 값이 150보다 큰 경우에만 편집이 가능
    {Type: "Float", Name: "rate",
        CanEditFormula:function(fr) {
            if (fr.Row["CHK"] == 1 && fr.Row["yearSum"] > 150)
                return true;
            else
                return false;
        }
    },
    ...
];

Read More

Since

product version desc
core 8.0.0.0 기능 추가