program study story

プログラムの勉強 アウトプット

復習2

/// <summary>
/// キー部コントロール検証
/// </summary>
/// <returns>検証結果</returns>
protected virtual bool IsKeyControlValidate()
{
// キー部コントロール検証を返す。
if (ControlManager.EntrySequencedManager.IsKeyControlValidate(this) == false)
{
return false;
}

// 関連チェックを行う
var checkSet = CreateControlCheck(ControlKindEnum.KeyType, ControlManager.EntrySequencedManager.GetKeyControlList());
var result = checkSet.Check();
if (result != null)
{
// エラーのチェック結果がある場合は、メッセージを出力して処理中断
ShowMessage(result.Item2);
result.Item1.Select();
return false;
}

return true;
}

/// <summary>
/// データ部コントロール検証
/// </summary>
/// <returns>検証結果</returns>
protected virtual bool IsDataControlValidate()
{
// データ部コントロール検証を返す。
if (ControlManager.EntrySequencedManager.IsDataControlValidate(this) == false)
{
return false;
}

// 関連チェックを行う
var checkSet = CreateControlCheck(ControlKindEnum.DataType, ControlManager.EntrySequencedManager.GetDataControlLIst());
var result = checkSet.Check();
if (result != null)
{
// エラーのチェック結果がある場合は、メッセージを出力して処理中断
ShowMessage(result.Item2);
result.Item1.Select();
return false;
}

return true;
}

/// <summary>
/// キー部でのメイン実行処理(個別)
/// </summary>
/// <returns>処理成功の場合true</returns>
protected virtual bool UDC_ActionKeyControl()
{
//実時間セット
DateTime dt = DateTime.Now;
lblTimer.Text = dt.ToString("yyyy / MM / dd - HH:mm: ss");
return true;
}

/// <summary>
/// データ部でのメイン実行処理(個別)
/// </summary>
protected virtual bool UDC_ActionDataControl()
{
return true;
}

/// <summary>
/// データ部コントロールでのメイン実行処理
/// </summary>
protected bool DataControlAction()
{
//定義書に記載なし
// データ部の場合
if (ControlManager.EntrySequencedManager.IsKeyControl == false)
{
// データ部のデータ検証
bool result = this.IsDataControlValidate();
if (result == false)
{
return false;
}
else
{
// データ部処理実行
result = UDC_ActionDataControl();
if (result == true)
{
this.Refresh();
}
return result;
}
}
return true;
}

/// <summary>
/// コントロールチェッククラスの作成
/// </summary>
/// <param name="ctrlKind">コントロール種別</param>
/// <param name="list">チェック対象のコントロール</param>
/// <returns>生成結果</returns>
protected virtual ControlCheckSet CreateControlCheck(ControlKindEnum ctrlKind, List<Control> list)
{
return new ControlCheckSet(ctrlKind, list);
}

/// <summary>
/// キー部のアクティブ時処理
/// </summary>
/// <param name="sender">イベント発生オブジェクト</param>
/// <param name="e">イベント引数</param>
protected void ActiveKeyControl(object sender, EventArgs e)
{
if (ControlManager.EntrySequencedManager.IsKeyControl == false)
{
// 入力順制御にキー部がアクティブになったことを通知
ControlManager.EntrySequencedManager.EnableKeyControl();
UOC_ActiveKeyControl();
}
}

/// <summary>
/// キー部のアクティブ時処理(個別)
/// </summary>
protected virtual void UOC_ActiveKeyControl() { }

/// <summary>
/// データ部の非活性機能
/// </summary>
protected void DisableDataControl()
{
ControlManager.EntrySequencedManager.DisableDataControl(this);
}

/// <summary>
/// データ部の活性機能
/// </summary>
protected void EnableDataControl()
{
ControlManager.EntrySequencedManager.EnableDataControl(this);
}

/// <summary>
/// キー部先頭コントロールにフォーカス
/// </summary>
protected void SetFirstKeyControlFocused()
{
ControlManager.EntrySequencedManager.FocusFirstKeyControl(this);
}

/// <summary>
/// データ部先頭コントロールにフォーカス
/// </summary>
protected void SetFirstDataControlFocused()
{
// 次データコントロールにフォーカスを設定
ControlManager.EntrySequencedManager.FocusDataControl(this, this.MoveReadonlyControl);
}

/// <summary>
/// データ部の変更有無
/// </summary>
/// <returns>True:変更あり、False:変更なし</returns>
protected virtual bool IsDataControlsChanged()
{
return false;
}

/// <summary>
/// データ部をクリアする前の保存確認
/// </summary>
/// <returns>True:処理続行、False:処理中断</returns>
protected virtual bool UOC_CehckBeforeClearData()
{
// 編集モードではない場合
if (this.FormMode != FormMode.Edit || this.IsKeyControl == true)
{
// 処理続行
return true;
}

// 変更チェック
if (this.IsDataControlsChanged() == true)
{
// 確認ダイアログを表示する
DialogResult dialogRes = DialogResult.Yes;
//dialogRes = this.SetMessage();
switch (dialogRes)
{
case DialogResult.Yes:
// 保存処理
return this.DataControlAction();
case DialogResult.No:
// 何も処理しない
break;
case DialogResult.Cancel:
// 処理中断
return false;
default:
// 処理中断する
return false;
}
}

return true;
}

#endregion

#region ControlStatus

/// <summary>
/// データ部ステータスクリア
/// </summary>
protected void InitControlStatusOfDataControls()
{
// 描画処理を一時中断
this.SuspendLayout();
// データ部コントロールのコントロールステータス初期化
ControlStatusManager.InitializeControlStatus(ControlManager.EntrySequencedManager.GetDataControlLIst());
// 描画処理再開
this.ResumeLayout();
}

#endregion

#region メッセージ表示

/// <summary>
/// メッセージ表示
/// </summary>
/// <param name="messageId">メッセージID</param>
/// <param name="param">メッセージパラメータ</param>
/// <returns>出力結果</returns>
public DialogResult ShowMessage(string messageId, params string param)
{
return ShowMessage(new MessageKey(messageId, param));
}

/// <summary>
/// メッセージ表示
/// </summary>
/// <param name="message">メッセージ情報</param>
/// <returns>出力結果</returns>
public DialogResult ShowMessage(MessageKey message)
{
// 定義書になし、interfaceあり。
return FormMessageManager.ShowMessage(this, this.KinoID, message);
}

/// <summary>
/// メッセージラベル表示
/// </summary>
/// <param name="msgParam">メッセージパラメータ</param>
public void SetMessage(MessageParameter msgParam)
{
lblMessage.Text = msgParam.Message + "メッセージコード:" + msgParam.MessageID;
switch (msgParam.MessageType)
{
case MessageBoxIcon.Error:
case MessageBoxIcon.Warning:
lblMessage.BackColor = MESSAGE_BACKCOLOR_ERROR;
lblUserInfo.BackColor = MESSAGE_BACKCOLOR_ERROR;
break;
default:
lblMessage.BackColor = MESSAGE_BACKCOLOR_NORMAL;
lblUserInfo.BackColor = MESSAGE_BACKCOLOR_NORMAL;
break;
}
}

/// <summary>
/// メッセージラベルクリア
/// </summary>
public void ClearMessage()
{
// エラーメッセージ出力処理
this.lblMessage.Text = "";
this.lblMessage.BackColor = MESSAGE_BACKCOLOR_NORMAL;
this.lblUserInfo.BackColor = MESSAGE_BACKCOLOR_NORMAL;
}

#endregion

#region ログ出力
// ↓定義書に記載がなく、エラーが出るため、コメントアウトしています。

/// <summary>
/// 標準のClientLogDataを作成する
/// </summary>
/// <param name="procName">表示内容</param>
/// <param name="message">変数などの補足情報</param>
/// <returns></returns>
//public ClientLogData CreateLog(string procName, string message)
//{

// return new ClientLogData( procName, message);
//}

#endregion

#region 前回値
/// <summary>
/// 前回値取り込み
/// </summary>
protected void LoadLastValue()
{
if (this.DesignMode == false)
{
ControlManager.LastValueManager.LoadLastValue(this.GamenID);
}
}

/// <summary>
/// 前回値取り込み(コントロール個別)
/// </summary>
/// <param name="controls">コントロールリスト</param>
protected void LoadLastValueByControl(Control controls)
{
LastValueManager.LoadLastValue(this.GamenID, controls);
}

/// <summary>
/// 前回値保存
/// </summary>
protected void SaveLastValue()
{
ControlManager.LastValueManager.SaveLastValue(this.GamenID);
}

/// <summary>
/// 前回値保存(コントロール指定)
/// </summary>
/// <param name="controls">コントロールリスト</param>
protected void SaveLastValueByControl(Control[] controls)
{
LastValueManager.SaveLastValue(this.GamenID, controls);
}

#endregion

#region DataGridView列幅

/// <summary>
/// 前回グリッド列幅読み込み
/// </summary>
protected void LoadLastGridColumnWidth()
{
//各グリッドコントロールに対して
//前回値制御マネーシャーを利用して、前回グリッド列幅読み込みを行う。
ControlManager.LastValueManager.LoadGridColumnWidth();
}

#endregion
}