{"TYPE":"Single","MTX_MODULE_INFO":[{"MODULE_CODE":"MODC9CCAF27F3B3C11864685166FC66E3BC","MODULE_SUBJECT":"Label 값에 따른 조건부서식 적용","USE_AUTHORITY":"0","EDIT_AUTHORITY":"-1","MODULE_DESCRIPTION":"Label에 바인딩된 숫자값이 음수, 양수일 때에 대한 조건부서식을 박스스타일로 지정합니다.\n숫자값의 표시형식은 연결한 DataGrid나 OlapGrid의 [서식]을 따릅니다.\n[서식] 표시형식에  '(', '▼', '▽', '↓' 이 붙으면 음수로,\n'▲', '△', '↑'이 붙으면 양수로 인식합니다.","SCRIPT_TEXT":"\nvar inputLabels = arguments[0].split(','); //라벨 목록\n\nvar PLUS_STYLE_NAME = arguments[1]; //양수 박스스타일\nvar MINUS_STYLE_NAME = arguments[2]; //음수 박스스타일\nvar ZERO_STYLE_NAME = arguments[3]; //기본 박스스타일\n\nvar label;\nvar rawText;\nvar val;\n\n// 음수, 양수를 의미하는 기호들 정의 (필요 시 추가 가능)\nvar minusSigns = ['(', '▼', '▽', '↓'];\nvar plusSigns = ['+', '▲', '△', '↑'];\n\nif (!inputLabels || inputLabels.length === 0) return; // 배열이 비었으면 중단\n\nfor(var i=0;i<inputLabels.length;i++){\n  label = Matrix.getObject(inputLabels[i]);\n  \n  if(label){\n    rawText = label.Text.trim(); // 앞뒤 공백 제거\n    \n    // 0. 데이터가 아예 없거나 대시(-)뿐인 경우 처리\n    if (rawText === \"\" || rawText === \"-\") {\n        label.Style.SetBoxStyleName(ZERO_STYLE_NAME);\n        continue; \n    }\n    \n    var isMinus = false;\n    var isPlus = false;\n    \n    // 1. 음수 판별 로직\n    // 텍스트 내에 정의한 음수 기호 중 하나라도 포함되어 있는지 확인\n    for (var j = 0; j < minusSigns.length; j++) {\n        if (rawText.indexOf(minusSigns[j]) > -1) {\n            isMinus = true;\n            break;\n        }\n    }\n    // 텍스트 자체에 이미 '-' 마이너스 기호가 있는 경우도 체크\n    if (rawText.indexOf('-') > -1) {\n        isMinus = true;\n    }\n    \n    // 2. 양수 판별 로직\n    for (var k = 0; k < plusSigns.length; k++) {\n        if (rawText.indexOf(plusSigns[k]) > -1) {\n            isPlus = true;\n            break;\n        }\n    }\n    \n    // 2. 순수 숫자 추출\n    //0-9와 소수점을 제외한 모든 문자(원, %, 콤마, 괄호 등) 제거\n    var numPart = rawText.replace(/[^0-9.]/g, \"\");\n    \n    // 숫자가 하나도 포함되지 않은 경우 (예: 미집계)\n    if(numPart == \"\"){\n      \tlabel.Style.SetBoxStyleName(ZERO_STYLE_NAME);\n    } else {\n    \tvar val = Number(numPart);\n    \n    \t// 3. 숫자 확인 및 스타일 적용\n    \tif (!isNaN(val) && numPart !== \"\") {\n      \t\tif (isMinus) label.Style.SetBoxStyleName(MINUS_STYLE_NAME); // 음수\n      \t\telse if(val > 0 || isPlus){\n          \t\tlabel.Style.SetBoxStyleName(PLUS_STYLE_NAME); // 양수\n        \t}\n      \t\telse {\n          \t\tlabel.Style.SetBoxStyleName(ZERO_STYLE_NAME); // 0\n        \t}\n    \t}\n    }\n    label.Update();\n  }\n}\n","MODULE_TYPE":"","RESULT_TYPE":"","ORIGINAL_MODULE_CODE":"","CREATE_USER":"edumaster","MODIFY_USER":"matrix","MODULE_SEQ":"18","WF_YN":"","EVENT_YN":"Y","ATTR1":"","ATTR2":"","ATTR3":"", "MTX_MODULE_PARAMS":[{"MODULE_CODE":"MODC9CCAF27F3B3C11864685166FC66E3BC","PARAM_SEQ":"1","PARAM_TYPE":"INP005","NULLABLE":"Y","PARAM_DESCRIPTION":"Label 컨트롤들을 선택합니다.","DEFAULT_VALUE":"","ATTR1":"","ATTR2":"","ATTR3":""},{"MODULE_CODE":"MODC9CCAF27F3B3C11864685166FC66E3BC","PARAM_SEQ":"2","PARAM_TYPE":"INP009","NULLABLE":"Y","PARAM_DESCRIPTION":"양수일 때 지정될 박스스타일을 선택합니다.","DEFAULT_VALUE":"","ATTR1":"","ATTR2":"","ATTR3":""},{"MODULE_CODE":"MODC9CCAF27F3B3C11864685166FC66E3BC","PARAM_SEQ":"3","PARAM_TYPE":"INP009","NULLABLE":"Y","PARAM_DESCRIPTION":"음수일 때 지정될 박스스타일을 선택합니다.","DEFAULT_VALUE":"","ATTR1":"","ATTR2":"","ATTR3":""},{"MODULE_CODE":"MODC9CCAF27F3B3C11864685166FC66E3BC","PARAM_SEQ":"4","PARAM_TYPE":"INP009","NULLABLE":"Y","PARAM_DESCRIPTION":"0일 때 지정될 박스스타일을 선택합니다.","DEFAULT_VALUE":"","ATTR1":"","ATTR2":"","ATTR3":""}]}]}