프로그램을 실행하여 화면로딩 후 수정된 데이터 저장하기
'저장'버튼이 눌러지면 아래 코드로 분기된다.
Templet에 포함된 public override void OnSaveClick(UBiMdiForm f) 메서드를 찾아 아래와 같이 수정한다.
필요하다면 개발자가 저장을 위한 여러 조건들을 검사해야 할 수 있다.
지정된 DataAdapter를 포함한 하위 DataAdapter의 C.U.D 에 해당하는 변경된(추가, 수정, 삭제) 데이터를 하나의
Transection으로 저장하며 중간에 문제가 발생할 경우 자동 RollBack된다.
물론 성공하게 되면 Commit된다.
아래 저장의 일반적인 처리 예시
/// <summary>
/// 저장 버튼 클릭
/// </summary>
public override void OnSaveClick(UBiMdiForm f)
{
base.OnSaveClick(f);
try
{
// 저장중이라는 메세지를 화면에 표시함
UBiMessageBox.ShowWait("Wait", "Saving into Database...");
// 저장 처리
ResponseDB res = uBiDataManager1.GetAdapter("GET_MAIN").Update();
// 또는 ResponseDB res = mainGrid.DatAdapter.Update();
if (res.Code == 0)
{
// 저장에 성공하여 변경된 데이터를 다시 조회함.
OnSearchClick(f); // 재조회
}
else
// 서버에서 보내는 오류 메세지를 표시함
throw new Exception(res.Message);
}
catch (Exception ex)
{
// 혹시 모를 Exception 처리
ex.UBiShowException(this);
}
finally
{
// 저장중이라는 화면 메세지를 안보이게 숨김
UBiMessageBox.CloseWait();
}
}
버튼과 묵시적으로 매핑된 override Method들은 BaseModule 을 상속받은 UX Form에 적용된다.
각 버튼은 사용자별로 설정된 권한에 기반하여 Enable된다.
초기화
public override void OnInitClick(UBiMdiForm f)
조회
public override void OnSearchClick(UBiMdiForm f)
{
//DataAdapter : GET_MAIN의 SELECT 프로시져를 호출
=>uBiDataManager1.GetAdapter("GET_MAIN").Select(true);
...
}
행추가
public override void OnAddClick(UBiMdiForm f)
{
DataRow newRow = gridMain.UBiAddNewRow(true);
if (newRow == null)
{
UBiMessageBox.Show("행추가 실패", MessageBoxIcon.Warning, false);
return;
}
else
{
// 추가된 행에 값을 강제로 지정(필요시에)
newRow["cnt"] = 1;
//변경된 값을 개별 컨트롤에 업데이트
gridMain.DataAdapter.UBiUpdateRow();
}
}
행삭제
public override void OnDeleteClick(UBiMdiForm f)
{
// 그리드의 포커스 행을 지운다.
gridMain.DeleteRow(gridMain.FocusedRowHandle);
}
변경된 데이터 저장
public override void OnSaveClick(UBiMdiForm f)
{
// 위 설명 참조
}
PDF기반의 화면 사용 설명서 열기
public override void OnHelpClick(UBiMdiForm f)
화면 닫기<- 이 기능은 화면 버튼과 연동되 있지 않음
public override void OnCloseClick(UBiMdiForm f)
마지막 별표는 상위 BaseModule에서 처리되며 즐겨찾기 코글버튼으로 채워진 별은 즐겨찾기에 추가됨을 의미함
토글함으로써 빼거나 넣을수 있다.
↑ 상위로 가기