{"TYPE":"Single","MTX_MODULE_INFO":[{"MODULE_CODE":"MOD90B72A2364ED7AEB2B2C4565D74C57D5","MODULE_SUBJECT":"[MX-Grid] ComboBox를 통한 MXGrid 시트 변경","USE_AUTHORITY":"0","EDIT_AUTHORITY":"9","MODULE_DESCRIPTION":"- MX-Grid > OnDataBindEnd 이벤트에 적용합니다.\n- MX-Grid의 시트 목록을 ComboBox DataSet으로 자동 세팅합니다.\n- View 시트만 표시하거나 모든 시트를 표시하도록 설정할 수 있습니다.","SCRIPT_TEXT":"/**\n * ============================================================\n * [MX-Grid] ComboBox 활용하여 MXGrid 시트 변경\n * ============================================================\n * 설명    : MXGrid의 시트 목록을 콤보박스에 자동으로 불러오고,\n *           콤보박스에서 시트를 선택하면 해당 시트로 전환합니다.\n *\n * Arguments:\n *   [0] {string} MXGrid     - 대상 MXGrid 컨트롤 ID\n *   [1] {string} ComboBox   - 시트 목록을 표시할 콤보박스 컨트롤 ID\n *   [2] {string} SheetScope - 표시할 시트 범위\n *                             Y : View 시트만 표시\n *                             N : 모든 시트 표시\n * ============================================================\n */\n\nvar MXGrid     = Matrix.getObject(arguments[0]);\nvar ComboBox   = Matrix.getObject(arguments[1]);\nvar SheetScope = arguments[2] || \"Y\";\n\nvar columns      = [\"SHEET_CODE\", \"SHEET_NAME\"];\nvar arrSheetName = MXGrid.getWorkSheetNames(); // 시트명 가져오기\n\n//시트명을 ComboBox DataSet으로 세팅\nvar rows = arrSheetName\n    .filter(function (item) {\n\n        // 모든 시트 표시\n        if (SheetScope === \"N\") {\n            return true;\n        }\n\n        // VIEW 시트만 표시\n        // V_ 또는 V + 숫자로 시작하는 시트\n        return /^V(_|\\d)/.test(item);\n    })\n    .map(function (item) {\n        var sheet_name;\n\n        // V_시트 → V_ 제거\n        // 예: V_요약 → 요약\n        if (item.indexOf(\"V_\") === 0) {\n            sheet_name = item.substring(2);\n\n        // V숫자 시트 → \"번 시트\" 표시\n        // 예: V1 → 1번 시트\n        } else if (/^V\\d/.test(item)) {\n            sheet_name = item.substring(1) + \"번 시트\"; // \"V\"로 시작하지만 \"V_\"가 아닐 경우 (숫자만 있음) :  V2 → 2\n\n        // 그 외 시트는 원래 시트명 그대로 표시\n        } else {\n            sheet_name = item;\n        }\n\n        return [item, sheet_name];\n    });\n\n// 가공된 시트 목록으로 DataSet 생성 후 콤보박스에 바인딩\nvar ds = Matrix.CreateDataSet(\"DS_SHEET\", columns, rows);\n\nComboBox.SetDataSet(ds);\nComboBox.Update();\n\n// 콤보박스 값 변경 시 선택한 시트로 전환\nComboBox.OnValueChanged = function (s, e) {\n    MXGrid.ChangeSheet(ComboBox.Value);\n};\n","MODULE_TYPE":"","RESULT_TYPE":"","ORIGINAL_MODULE_CODE":"","CREATE_USER":"auduser","MODIFY_USER":"swchoi1436","MODULE_SEQ":"14","WF_YN":"","EVENT_YN":"Y","ATTR1":"","ATTR2":"","ATTR3":"", "MTX_MODULE_PARAMS":[{"MODULE_CODE":"MOD90B72A2364ED7AEB2B2C4565D74C57D5","PARAM_SEQ":"1","PARAM_TYPE":"INP004","NULLABLE":"N","PARAM_DESCRIPTION":"시트를 변경할 MXGrid를 선택하세요.","DEFAULT_VALUE":"MXGrid","ATTR1":"","ATTR2":"","ATTR3":""},{"MODULE_CODE":"MOD90B72A2364ED7AEB2B2C4565D74C57D5","PARAM_SEQ":"2","PARAM_TYPE":"INP004","NULLABLE":"N","PARAM_DESCRIPTION":"MXGrid의 시트명을 담을 ComboBox를 선택하세요.","DEFAULT_VALUE":"","ATTR1":"","ATTR2":"","ATTR3":""},{"MODULE_CODE":"MOD90B72A2364ED7AEB2B2C4565D74C57D5","PARAM_SEQ":"3","PARAM_TYPE":"INP008","NULLABLE":"N","PARAM_DESCRIPTION":"View 시트만 표시할지 선택하세요. (Yes: View 시트만 / No: 모든 시트)\n※ No 선택 시 MXGrid의 UseMultiSheet 옵션 활성화 필요.","DEFAULT_VALUE":"Y","ATTR1":"","ATTR2":"","ATTR3":""}]}]}