6.1 プライマリリファレンスポイントIDのチェック

目的

プライマリリファレンスポイントIDが命名規則に則っているかをチェックします。

  • 命名規則:プライマリリファレンスポイントIDはプランIDと同一であること

必要な情報

プライマリリファレンスポイントID、プランID

与えられている引数

PlanSetupクラスのインスタンスplan

必要な情報へのアクセス方法

現在開いているプランからプライマリリファレンスポイント情報へアクセスするには、以下のようにします。

1
2
3
4
5
6
7
8
//ReferencePointクラスのインスタンスprimaryRefPtを取得
var primaryRefPt = plan.PrimaryReferencePoint;

//プライマリリファレンスポイントIDの取得
var primaryRefPtId = primaryRefPt.Id;

//プランIDの取得
var planId = plan.Id;

必要な情報の表示

Exercise_PlanCheck_Ex1.3.csを開き、関数 CheckRPFunc 内にコードを記述してみましょう。

1
MessageBox.Show(string.Format("primary ref. point ID: {0}", plan.PrimaryReferencePoint.Id));

実装

論理演算子でIDが同一であるか判定し、if文で条件分岐させて処理(表示させる文章)を切り替えます。

1
2
3
4
5
6
7
8
if (plan.PrimaryReferencePoint.Id == plan.Id)
{
    ~~ 一致した場合の処理 ~~
}
else
{
    ~~ 一致しなかった場合の処理 ~~
}

Exercise_PlanCheck_Ex1.3.csを開き、関数 CheckRPFunc 内の次の2行のコメントを解除します。

1
//string checkName = "";
1
//checkName = "Check primary ref. point ID";

関数 CheckRPFunc 内の下記部分にコードを記述しましょう。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
static string CheckRPFunc(PlanSetup plan)
{
    string oText = "";
    string checkName = "";

    ///////////////////////////////////////////////////////////////////
    // Check primary reference point ID
    // Primary reference point ID and plan ID must be the same
    checkName = "Check primary ref. point ID";

 ~~以下にコドを記述~~

記述するコードは以下の通りです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
if (plan.PrimaryReferencePoint.Id == plan.Id)
{
    // If true, add text[O] to the string 
    oText += MakeFormatText(true, checkName, "");
}
else
{
    //If false, add the parameters and text[X] to the string 
    oText += MakeFormatText(false, checkName, "primary ref. point ID:" +
             plan.PrimaryReferencePoint.Id + ",plan ID:" + plan.Id);
}