日程管理で大苦戦

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

1週間かかりましたが、なんとか方向性は定まりました。

まずDBのテーブルですが、工事情報と独立して日程情報のテーブルを作りました。 紐付けは工事管理番号で行なっています。

レコードは1対1なので、本当は工事情報のテーブルに日程情報も入れた方がいいのかもしれません。
でも日程情報は基本計画(着手前に立てる日程)、目標日程(着手後の実行段階の期日)、実績日程(結果の日程)と3つあって、それぞれ各工程の開始/終了の日付が記録されます。
これを工事情報テーブルに統合すると、見通しが悪くなってしまいます。
本格的なWBSなんかだと、タスクの粒度的にもタイムスケール的にももっと細かくなるので大変ですね。 とても素人には手が出せません。


次はガントチャートの方です。
これはいろいろなやり方があるのですが、画面に表示させるだけなら grahamsprague.com で紹介されている方法がよさげに思いました。

前月から翌々月までのスパンで見たいので、最初は4ヶ月分の横長のテーブルを作って、div 要素の中で横スクロールさせようとしたんですが、IE6/IE7 が position:relative; overflow: hidden; を正しく処理してくれなくて、チャートがスクロールされず固定的に表示されてしまいます。
仕方ないので、各月ごとにタブページに表示させることにしました。

それでも工事件数が多いと、こんどは日付部分は固定して縦スクロールが必要になります。 これは仕方ないので、IE6/IE7だけはdiv 要素のheight を解除して表をそのまま見せるようにしました。

チャートをマウスでドラッグして日程変更できるのが一番いいのですが、今は日付入力のページに飛ぶリンクを貼ってお茶を濁しています。 そのうち、jQuery UIResizableDraggable を使って、インタラクティブに変更できるようにしたいですね。


あと日程を扱うと、当然ながら日付を入力してもらうことが多くなるので、 Datepicker を導入しました。
標準ではちょっと大きすぎるので、jquery-ui-1.8.4.custom.css の以下の部分に追記しました。

.ui-datepicker { width: 17em; padding: .2em .2em 0; font-size:12px;}

なかなかいい感じです。