BizPopup (공통 팝업)

작성일: 2024-05-09

설명

  • [PlusWin-Dev6 → 비즈니스 컴포넌트] 메뉴에서 '컨트롤 유형'이 "Popup"인 데이터

컴포넌트 ID 규칙

  • 영어 대문자, 숫자만 등록하며 단어의 구분은 언더바( _ )를 사용

  • 컨트롤 유형의 첫 번째 문자를 접두어로 입력 (ex. 설비코드: P_FXCODE)

비즈니스 컴포넌트 데이터 등록 규칙

  • WHERE 구문을 제외하고 [LookUp 유형]과 작성법은 동일

  • ORDER BY 구문에는 최종 SELECT 결과 필드명으로 지정 ( custnm as customer_name 와 같이 별칭(Alias)을 사용했다면 별칭인 customer_name을 ORDER BY 구문에 작성)

  • 비즈니스 컴포넌트 데이터 참조 팝업에서 조회 조건용 컨트롤로 사용될 필드에 대하여 WHERE 문을 작성하며 조건용 필드는 실제 테이블의 필드명이 아닌 '최종 SELECT 결과 필드명'이 기준이며, 중괄호({ })를 사용하여 구분 ( 아래 예시 [이미지1, 2] 참고 )

  • 조회 조건용 컨트롤은 [세부 항목 설정] 영역의 '컴포넌트ID (디자인)' 필드에 값을 지정하지 않은 경우 TextEdit 유형으로 기본 생성되기 때문에 이 경우 '코드명'으로 검색해야 하므로 '코드' 값이 아닌 '코드명'으로 조회되도록 쿼리를 작성 ( [이미지2]의 WHERE문에 '{use_yn}' 필드 참고 )

  • [이미지3]은 [이미지2]에 입력된 비즈니스 컴포넌트 정보의 데이터 참조 팝업 화면

[ 이미지 1 ]
[ 이미지 2 ]
[ 이미지 3 ]

[세부 항목 설정] - 컴포넌트ID (디자인)

[ 이미지 4 ]
  • 조회 조건용 컨트롤의 디자인을 LookUpEditRadioGroup으로 적용하기 위해 비즈니스 컴포넌트에 등록된 LookUp 또는 Radio 유형의 ID를 설정하는 필드

  • '컴포넌트ID (디자인)'에 값이 지정된 필드는 팝업에서 조회 컨트롤 [이미지 6]과 같이 해당 유형으로 디자인되며 코드로 값을 받아오기 때문에 WHERE문 작성에도 코드로 조건을 처리 ( [이미지5] 참고 )

[ 이미지 5 ]
[ 이미지 6 ]

커스텀 공통 팝업 개발 및 적용

  • 폼 템플릿을 '공통 팝업' 으로 선택하여 신규 생성 ( DevTool6 : v6.0.6.2 이후 버전 사용 )

  • 모든 공통 팝업은 BizComponentPopupBase 클래스를 상속 (GST.PlusWin6.Core.dll 참조)

[이미지 7]

조회 조건 컨트롤 자동 생성 규칙

  • GroupControlEx를 생성하고 Name 속성에 "grpTop"으로 지정하고 하위 컨트롤에 LayoutControlEx 생성 후 Name 속성을 "lcParams" 로 정의

  • OnLoad 에서 InitConditionArea 메서드를 호출. 함께 자동 생성되는 조회 버튼(SimpleButton)을 Output 타입의 파라미터로 반환 받아 Click 이벤트 등록

private SimpleButton _RetrieveButton = null;

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    grpList.Text = _BizComponentInfo.BizComponentName;

    InitConditionArea(out _RetrieveButton);
    InitGridColumn();

    _RetrieveButton.Click += OnClick;
}

결과 반환 처리

  • BizComponentPopupBase 클래스에 정의된 DataRow 형식의 ResultDataRow 속성 멤버에 팝업에서 선택한 값을 할당

private bool Confirm()
{
    if (gvwList.FocusedRowHandle < 0)
    {
        MessageForm.Show(Messages.NoDataSelected);
        return false;
    }

    ResultDataRow = gvwList.GetFocusedDataRow();

    return true;
}

공통 팝업 내 서브폼 개발

  • 일반 메뉴 폼 개발에서 서브 폼을 개발하는 방식과 동일하게 BaseForm 클래스(namespace GST.PlusWin6.Core.Forms)를 상속하여 개발하며 서브 폼 개체를 생성할 때도 마찬가지로 CreateSubForm 메서드를 이용하여 처리

적용

  • [PlusWin-Dev6 - 코드 정보] 공통 팝업 정보 등록

  • [비즈니스 컴포넌트] 메뉴에서 컨트롤 유형이 "Popup"인 비즈니스 컴포넌트의 '팝업 폼' 항목에 공통 팝업 지정

[이미지 8]
[이미지 9]

주의 사항

  • 모든 디자인과 데이터 조회 기능을 수동으로 작업한 경우, ButtonEditEx의 자동 완성 기능을 사용하려 할 때 조회 조건용 컨트롤의 Tag 속성에 WHERE 구문에 입력한 조건용 필드명을 입력

  • ex) txtItemcd (TextEditEx) 수동 생성 시 → txtItemcd.Tag = "itemcd";

Last updated