PDCA 지원 도구를 만들어 보십시오. 상태 매트릭스를 이용하여 4개의 화면을 만드는 3개의 제어 Enable 속성/속성을 이용한 상태 이동 전환

어제 오큘러스 고가 우리 집에 도착했는데.네.
정신을 차리고 보니 이 시간(새벽 4시)이었다.
좀비를 막 때리고...
관리시간, 백조씨!
그럼, 오늘은 너무 많은 시간을 들이지 말고 편하게 하자.
PDCA 주기의 각 단계에 대한 무선 버튼/버튼의 Enable 상태 매트릭스 작성
그럼 지난번과 마찬가지로 상태 매트릭스를 빠르게 만들어보자.
지난번 상태 매트릭스 기능도 간단했어요.
이번에는 공정에 따라 버튼의 상태가 달라져 좀 복잡했다.
디자인으로 다음은 규격입니다.
  • 도착하지 않은 공정의 풍부한 텍스트로 전환하지 않습니다.
  • Plan 단계에서만 상속 단추를 유효하게 합니다.
  • 상황이 설정되지 않았을 때, 풍부한 텍스트 단추는 모두 변경할 수 없습니다.
  • 상기 내용을 바탕으로 제작된 상태 행렬은 다음과 같다.
    상황의 상태
    RadioButton Plan
    RadioButton Do
    RadioButton Check
    RadioButton Act
    상속 버튼
    프로젝트 마이그레이션 버튼
    리치 텍스트
    상황이 설정되지 않았을 때
    False
    False
    False
    False
    False
    False
    False
    Plan 단계
    False
    False
    False
    False
    True
    True
    True
    페이드 인
    True
    True
    False
    False
    False
    True
    True
    Check 단계
    True
    True
    False
    False
    True
    True
    True
    동작 단계
    True
    True
    True
    True
    True
    False
    True
    그리고 어제처럼 이걸 코드에 떨어뜨려요.
    Main.cs
            /* Status Table */
            private readonly bool[,] STATUS_TABLE_CONTROL_ENABLE = new bool[,]{
               /* RadioButtons              | Buttons               | RichTextBox              */
               /* Plan   Do     Check  Act  | Inhert.   N.Stage     | All                      */
                { false, false, false, false, false,    false,        false}, /* Case未設定時  */
                { false, false, false, false, true ,    true ,        true }, /* Case Plan時   */
                { true , true , false, false, false,    true ,        true }, /* Case Do時     */
                { true , true , true , false, false,    true ,        true }, /* Case Check時  */
                { true , true , true , true , false,    true ,        true }, /* Case Act時    */
            };
    
    그리고 어제와 같이 설정 프로젝트의 일반적인 처리 방법을 만듭니다.
    Main.cs
    
            /// <summary>
            /// コントロールのEnableプロパティを一括設定する。
            /// </summary>
            /// <param name="pStatus">Status</param>
            private void SetEnable(int pStatus) {
    
                rbtnPlan.Enabled        = STATUS_TABLE_CONTROL_ENABLE[ pStatus, CTRL_RADIO_PLAN];
                rbtnDo.Enabled          = STATUS_TABLE_CONTROL_ENABLE[ pStatus, CTRL_RADIO_DO];
                rbtnCheck.Enabled       = STATUS_TABLE_CONTROL_ENABLE[ pStatus, CTRL_RADIO_CHECK];
                rbtnAct.Enabled         = STATUS_TABLE_CONTROL_ENABLE[ pStatus, CTRL_RADIO_ACT];
                btnInheritance.Enabled  = STATUS_TABLE_CONTROL_ENABLE[ pStatus, CTRL_BUTTON_INHERIT];
                btnNextStage.Enabled    = STATUS_TABLE_CONTROL_ENABLE[ pStatus, CTRL_BUTTON_N_STAGE];
                rtbPlan.Enabled         = STATUS_TABLE_CONTROL_ENABLE[ pStatus, CTRL_R_TEXT_ALL];
                rtbDo.Enabled           = STATUS_TABLE_CONTROL_ENABLE[ pStatus, CTRL_R_TEXT_ALL];
                rtbCheck.Enabled        = STATUS_TABLE_CONTROL_ENABLE[ pStatus, CTRL_R_TEXT_ALL];
                rtbAct.Enabled          = STATUS_TABLE_CONTROL_ENABLE[ pStatus, CTRL_R_TEXT_ALL];
    
                return;
            }
    
    혹시 기능할 때 "비슷한 처리를 반복하고 반복하면 되는 거죠?"그렇게 생각하는 사람이 있을지도 몰라요.
    결론적으로 말하면 충분히 가능하다.
    예를 들어 기능의 처리에서 처리된 대상은 모두 System이다.Windows.Forms.라디오 박스이기 때문에 배열이나 목록을 for문이나 forEach문으로 만들면 기술이 간단해진다.
    다만, 자신의 출신이 가세한 이유도 있어 어떻게든 다루는 양에 신경을 쓴다.
    중복문은 블록을 중복 처리할 때마다 판정하는 것이다.
    지금 시대에는 기계의 힘이 너무 많기 때문에 조건문도 그렇게 무겁지 않다
    정말 상세한 주문을 감안하면 어쨌든 상술한'조금 지루한'코드가 될 것이다.
    이유를 말하든지 구애되든지 그런 문화 아래 이런 코드가 쓰여 있다.
    Enable 속성은 중복된 기사에 쓰려면 System입니다.Windows.Forms.통제의 근본에서 물려받은 거니까.
    System.Windows.Forms.Control의 배열이나 목록을 만든 다음 for문을 돌리면 됩니다.
    기술이 지능적으로 변했네요.처리 내용이 미묘해졌지만, 그곳은 균형이었다.
    아마도 컴파일러는 사람들에게 일종의 영리한 느낌을 줄 것이다.
    그러면 상태의 전환은 기본적으로 다음 프로젝트의 과도 버튼을 통해 진행된다.
    여기서 전환 처리를 호출할 수 있습니다
    얻기 어려운 기회니까 프로퍼티를 사용해서 실현해 보세요.
    아, 이거 평소에 썼어요.
    속성 병합 처리 사용
    그럼, 속성에 관해서는
    이거, 상당히 처음 봤을 때 막힌 콘셉트야.
    그때 자신이'보통 멤버랑 뭐가 달라!'이런 느낌.
    그렇다면 상세한 설명을 쓰는 사이트가 많다
    나는 초보자를 간단명료하고 알기 쉬운 말로 대하고 싶다.(할 수 있다고는 말하지 않았다)
    그래서 한마디로 표현하자면 이런 느낌이다.
    "변수로 처리할 수 있는 설정기(변수에 값을 설정하는 함수)와 게이트(변수 값을 얻는 데 사용되는 설정)"
    결국'변수로 처리할 수 있다'고 하지만'내용은 함수(방법)'라고 전달하면 된다.
    이벤트처럼 시뮬레이션을 할 수 있는 곳이 섹시해요.
    그리고 세터와 게이트 편만 이룰 수도 있다.
    액세스를 제한하는 방법으로도 사용 가능
    ...매번 코드를 쓸 때 사용하는 요소를 총결산해서 쓰지만 하나하나 상세히 쓰면 기술 블로그 같지 않나...?
    그렇다면 그렇게 좋은 속성 기능을 이용하면
    컨디션이 바뀌면 화면의 컨디션 이동이 연동될 것 같다.
    현재 상태를 나타내는 값을 가져오거나 설정하는 속성을 만듭니다.
    결과는 다음과 같다.
    Main.cs
            private int _currentStatus;
    
            (中略)
    
            private int currentStatus {
                get { return _currentStatus; }
                set {
                    _currentStatus = value % STATUS_PROGRESS_NUM;
                    SetEnable(_currentStatus);
    
                    return;
                }
    
    속성을 사용하여 값을 유지할 때 트레이로 다른 변수가 필요합니다.
    만약 준비하지 않는다면, 위의 트위터 내용은
             get { return currentStatus; }
    
    어떻게 하면 앱이 떨어져.
    Stack OverFlow라는 물건이죠?
    겸사겸사 말씀드리겠습니다.
    (속성 이름) {get;set;}
    앨리어스 변수는 필요하지 않습니다.
    속성 이름은 변수로 직접 사용할 수 있습니다.이것은 단지 접근할 r/w 권한을 제어하기 위해 사용하는 방법일 뿐입니다.
    상술한 처리를 첨가함으로써 상태가 변경될 때의 처리는 매우 간단해졌다.
    즉, 초기화 처리든 상태 이동 처리든
    currentStatus에 적당한 상태값만 추가하면 OK입니다.
    물론 다른 처리도 예쁜 실현 방식이 많다(기능 지침/위치추적 장치를 이용한다)
    이번에는 이곳에서 실시한다.
    다음은 다음 프로젝트 버튼(Next Stage) 버튼의 클릭 이벤트의 구현을 확인합니다.
    Plan 단계:

    Do 단계:
    2018y06m08d_060526494.jpg
    Check 단계:

    Act 단계:

    Case가 설정되지 않은 경우:

    이후 데이터의 저장과 호출 처리를 실시하면 완성된다.
    그러니까 오늘은 여기까지.
    오늘 거의 기사 갱신에 시간이 걸렸어요.
    소요시간은 01:21:17입니다.

    좋은 웹페이지 즐겨찾기