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"로 명시하면 됩니다.
  3. CalcOrder 설정시 이름들은 반드시 띄어쓰기 없이 서로 붙여 작성해주셔야 됩니다. 이름들 간에 띄어쓰기가 되어 있는 경우 Formula 동작이 정상적으로 이뤄지지 않습니다.

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 기능 추가