커스텀 데이타 핸들러 및 액션에서 값 초기화 하는 방법.
페이지 정보
본문
안녕하세요. 소심비형입니다. 액션에서 속성을 초기화 하려면 12라인처럼 IResetDataProperty 인터페이스를 직접 구현해야 합니다. 아래 코드를 커스텀 소스에 붙여넣기 한 후 다시 빌드하세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CustomNGM { [Serializable] public class DataTableHandlerModel : NGM.Models.Interface.BaseCustomToolModel, NGM.Interface.IResetDataProperty { /// <summary> /// 도구 상자에 표시할 카테고리 이름입니다. /// </summary> public override string DisplayCategory { get { return "NGM 커스텀 도구"; } } /// <summary> /// 도구 상자에 표시할 액션 이름입니다. /// </summary> public override string DisplayName { get { return "데이타 핸들러"; } } [Category("Data")] [DisplayName("데이타")] [Description("사용자가 선택한 열과 행의 데이타입니다.")] [Browsable(true)] [ReadOnly(true)] public string Data { get; set; } [Category("Data")] [DisplayName("데이타 테이블")] [Description("값을 조회하여 변수에 저장할 데이타 테이블입니다.")] [Browsable(true)] [ReadOnly(true)] public DataTable DataTable { get; set; } [Category("Action")] [DisplayName("행 위치")] [Description("데이타를 가져올 데이타 테이블의 행 위치입니다. 위치는 0부터 시작합니다.")] [Browsable(true)] [DefaultValue(0)] public int RowIndex { get; set; } [Category("Action")] [DisplayName("열 위치")] [Description("데이타를 가져올 데이타 테이블의 열 위치입니다. 위치는 0부터 시작합니다.")] [Browsable(true)] [DefaultValue(0)] public int ColumnIndex { get; set; } [Category("Action")] [DisplayName("열 이름")] [Description("데이타를 가져올 데이타 테이블의 열 이름입니다. 열 위치보다 이 값이 우선 적용됩니다.")] [Browsable(true)] [DefaultValue(null)] public string ColumnName { get; set; } public override void Execute() { if (DataTable == null) { MainView.WriteOutput("데이타 테이블이 없습니다. 먼저 변수로부터 데이타 테이블을 가져와야 합니다."); Data = null; return; } if (DataTable.Rows.Count == 0) { MainView.WriteOutput("데이타 테이블에 데이타가 없습니다."); Data = null; return; } try { int colIndex = this.ColumnIndex; if (!string.IsNullOrEmpty(this.ColumnName)) colIndex = this.DataTable.Columns.IndexOf(this.ColumnName); Data = this.DataTable.Rows[this.RowIndex][colIndex].ToString(); } catch (Exception ex) { MainView.WriteOutput($"Error {ex.Message}"); Data = null; return; } } public void Initialize() { this.Data = null; this.DataTable = null; this.RowIndex = 0; this.ColumnIndex = 0; this.ColumnName = null; } } } | cs |
인터페이스를 상속 받은 후 92라인처럼 Initialize 메소드를 구현하세요. 원하는 속성을 초기화 시킬 수 있습니다. 커스텀 액션 또는 펑션을 개발할 때 참고하세요^^
※ 첨부되어 있는 dll은 요청에 의해 95부터 98라인까지 삭제한 모듈입니다.
추천0 비추천0
- 이전글커스텀 모듈 설치 방법 및 라이브러리 위치 찾기. 20.02.17
- 다음글Custom Action(커스텀 액션)에서 변수, 아이디 속성 표시하기. 20.02.16
댓글목록
등록된 댓글이 없습니다.