前回までの概要
前前回まででタスク管理アプリの大枠作成、ブラッシュアップをしました。
今回はWBS項目設定画面の内容見直し、ブラッシュアップを行います。
プロンプト
WBSカラム設定画面へ以下の追加を行いたい
タイトル
一覧へ空欄行追加
項目へ空欄追加
No項目削除
タスクID項目追加
回答
修正方針
WbsColumnSettingForm に以下を追加します。
| 追加内容 | 内容 |
|---|---|
| タイトル | 画面タイトル表示 |
| 空欄行追加 | 新規行追加可能 |
| 項目空欄 | 未設定許可 |
| No項目削除 | 不要項目削除 |
| タスクID追加 | 新規項目 |
修正対象
| ファイル | 内容 |
|---|---|
| WbsColumnSettingForm.Designer.cs | UI追加 |
| WbsColumnSettingForm.cs | 空行追加対応 |
| WbsColumnSettingService.cs | 項目修正 |
| WbsForm.cs | タスクID対応 |
1. WbsColumnSettingForm.Designer.cs 修正
フィールド追加
private Label lblTitle;
private Button btnAddRow;
InitializeComponent() 修正
タイトル追加
lblTitle =
new Label();
lblTitle.Text =
"WBSカラム設定";
lblTitle.Font =
new Font(
"Meiryo UI",
14,
FontStyle.Bold);
lblTitle.Location =
new Point(20, 15);
lblTitle.AutoSize = true;
一覧位置修正
修正前
dgvColumns.Dock =
DockStyle.Top;
修正後
dgvColumns.Location =
new Point(20, 60);
dgvColumns.Size =
new Size(640, 320);
空欄行追加ボタン
btnAddRow =
new Button();
btnAddRow.Text =
"追加";
btnAddRow.Location =
new Point(20, 400);
btnAddRow.Width = 80;
ボタン位置調整
btnUp.Location =
new Point(120, 400);
btnDown.Location =
new Point(200, 400);
btnDelete.Location =
new Point(280, 400);
btnSave.Location =
new Point(380, 400);
btnCancel.Location =
new Point(480, 400);
Controls.Add追加
Controls.Add(lblTitle);
Controls.Add(btnAddRow);
フォームサイズ調整
ClientSize =
new Size(700, 470);
2. 項目リスト修正
修正前
combo.Items.AddRange(
new object[]
{
"No",
"タスク",
...
});
修正後
combo.Items.AddRange(
new object[]
{
"",
"タスクID",
"タスク",
"開始予定",
"終了予定",
"開始実績",
"終了実績",
"進捗",
"担当者",
"予定工数",
"実績工数",
"残工数",
"遅延",
"遅延理由",
"カテゴリ",
"工程"
});
ポイント
| 修正 | 理由 |
|---|---|
| 空文字 | 未設定可能 |
| No削除 | 不要 |
| タスクID追加 | 管理用 |
3. WbsColumnSettingForm.cs 修正
コンストラクタ修正
btnAddRow.Click +=
btnAddRow_Click;
空欄行追加メソッド
private void btnAddRow_Click(
object sender,
EventArgs e)
{
dgvColumns.Rows.Add(
dgvColumns.Rows.Count + 1,
false,
"");
}
4. LoadData() 修正
修正前
dgvColumns.Rows.Add(
s.No,
s.Fixed,
s.ColumnName);
修正後
dgvColumns.Rows.Add(
dgvColumns.Rows.Count + 1,
s.Fixed,
s.ColumnName);
5. Save処理修正
空欄除外追加。
修正前
_settings.Add(
new WbsColumnSetting
修正後
string columnName =
row.Cells["ColumnName"]
.Value?
.ToString()
?? "";
if (string.IsNullOrWhiteSpace(
columnName))
{
continue;
}
_settings.Add(
new WbsColumnSetting
{
No = _settings.Count + 1,
Fixed =
Convert.ToBoolean(
row.Cells["Fixed"]
.Value),
ColumnName =
columnName
});
6. WbsColumnSettingService.cs 修正
CreateDefault() 修正
修正前
"タスク",
修正後
"タスクID",
"タスク",
7. WbsForm.cs 修正
SetCellValue追加
追加
SetCellValue(
gridRow,
"タスクID",
row.Id);
8. GanttRow.cs 修正
追加
public Guid Id
{
get;
set;
}
9. WbsService.cs 修正
Row生成時追加
Id = task.Id,
完成後UI
画面
┌──────────────────────────┐
│ WBSカラム設定 │
├──────────────────────────┤
│No│固定│項目 │
│1 │ON │タスクID │
│2 │ON │タスク │
│3 │OFF│担当者 │
│4 │OFF│ │
├──────────────────────────┤
│追加 ↑ ↓ 削除 更新 取消 │
└──────────────────────────┘
実装、起動確認
まとめ
WBSの実用化も一旦完了かと思います。
次回はAIと相談しつつ機能の追加をしていく予定です。
