プロジェクト管理 > ガントチャート表示時にタスク一覧の表示順を引き継ぐ

やったこと

  • プロジェクト管理ポートレットで、リスト表示した時に項目名をクリックするとソートできる。ガントチャート表示に切り替えた時にこのソートが引き継がれるようにする。
  • clearSessionData を消した

詳しく

  • 何かの役に立つかもしれないので残しておきます
  • プロジェクトタスクの一覧表示とガントチャートリスト表示はタブで切り替えられるようになっていて、 ProjectGanttChartScreen と ProjectTaskListScreen を見ると、いずれも ProjectTaskSelectData を呼び出している。
  • ProjectTaskSelectData ではソートや絞り込みの条件に合わせてSQL文を作り読み込んでいる。
    • ソートの条件として、項目名をクリックすると sort と sorttype がパラメータとしてPOSTされ、セッションに保存される。
      • ProjectTaskSelectData は ALAbstractMultiFilterSelectData を継承しており、ALAbstractMultiFilterSelectData は ALAbstractSelectData を継承している。ALAbstractSelectData.init() でセッションに保存する。
  • doViewList 内で selectList が呼ばれ、ここで条件のデータを取り出している。詳しく見ると、
    sqltemp =
      Database.sql(EipTProjectTask.class, getFetchQuery(rundata, context));

でSQL文をセット(?)して →214行目

     List<DataRow> result = sqltemp.fetchListAsDataRow();

でSQL文を実行してデータを取り出しているらしい →223行目

  • SQL文は、ProjectTaskSelectData.getFetchQuery で書かれており、ソートの条件はこの関数の中で getOrderBy を呼び出して書いている。ここでセッションに保存された sort と sorttype を呼び出している。
  • という訳で、ProjectGanttChartScreen.doOutput内で clearSessionData を呼び出して、保存されていた sort と sorttype を消しているので、ガントチャートリスト表示にした時にソートが引き継がれなかったので、この関数を消せばよい。