クラス GanttHeaderTag

すべての実装されたインタフェース:
BodyTag, IterationTag, JspTag, Tag, TryCatchFinally, Serializable

public class GanttHeaderTag extends CommonTagSupport
ガントチャート用のヘッダー情報(日付け等)を出力するタグです。 スライドバー式ガントチャートの表示時に、スライドバーの長さと日付とを関連付けるための ヘッダー情報(日付け等)を出力します。スライドバーと日付間隔は、zoom 属性によって、 CSSファイルのフォントサイズと、JavaScript の内部配列に依存しています。 また、このヘッダーでは、日付の休日情報を、カレンダテーブルを参照することで取得しています。 calDB 属性への指定は、CalendarFactory で生成されるテーブル名(CalendarDataの実装クラス) を指定します。
関連項目:
変更履歴:
3.5.4.8 (2004/02/23) 新規作成
機能分類
画面部品
形式サンプル:
●形式:<og:ganttHeader startDate="…" endDate="…" zoom="[…]" /> ●body:なし ●Tag定義: <og:ganttHeader startDate 【TAG】表示開始日付けを設定します(yyyyMMdd または、yyyyMMddHHmm 形式) endDate 【TAG】表示最終日を設定します(yyyyMMdd または、yyyyMMddHHmm 形式) zoom 【TAG】ズーム変数(0~13,20~31,40~49)を設定します(初期値:2) calDB 【TAG】DB検索するDBを指定します arg1 【TAG】DB検索する場合の第1のキーを指定します arg2 【TAG】DB検索する場合の第2のキーを指定します arg3 【TAG】DB検索する場合の第3のキーを指定します arg4 【TAG】DB検索する場合の第4のキーを指定します daySpan 【TAG】1日の開始終了時間を24時間形式(HHmm-HHmm)で設定します(初期値:0700-2000) breakTimes 【TAG】時間軸での休憩時間の開始-終了時刻をCSV形式で複数指定します(HHmm-HHmm形式、または、yyyyMMddHHmm-HHmm形式、または、yyyyMMddHHmm-yyyyMMddHHmm形式) breakTimeStyle 【TAG】時間軸での休憩時間の表示スタイルを設定します(初期値:top:20px;background-color:yellow;filter:alpha(opacity=60);opacity:0.60;) baseTimes 【TAG】時間軸でのベース時刻の開始時刻をCSV形式で複数指定します(HHmm形式、または、yyyyMMddHHmm形式) baseTimeStyle 【TAG】時間軸でのベース時刻の表示スタイルを設定します(初期値:top:20px;background-color:transparent;border-left:2px dashed red;) skipHoliday 【TAG】時間ガントで休日を表示する/しないを設定します (初期値:USE_GANTTHEADER_SKIP_HOLIDAY[=true]) useMultiClm 【TAG】時間ヘッダーの上段に日付を、下段の時間を表示します (初期値:USE_GANTTHEADER_MULTIPLE_COLUMN[=false]) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) /> ●使用例 参照:jsp/GANTT06 フォルダ <og:ganttHeader startDate = "{@VIEW_DATE}" endDate = "{@DYMAX}" zoom = "{@VIEW_ZOOM}" calDB = "GF13" arg1 = "{@CDJGS}" arg2 = "" /og:ganttHeader> <og:ganttHeader startDate = "{@VIEW_DATE}" endDate = "{@DYMAX}" daySpan = "0700-2000" HHmm-HHmm 形式で1日の時間範囲を指定 breakTimes = "1200-1245,1645-1650,200508200700-1200;" 休憩時間は、HHmm-HHmm形式、または、yyyyMMddHHmm-HHmm形式、または、yyyyMMddHHmm-yyyyMMddHHmm形式です。 breakTimeStyle = "top:20px;background-color:yellow;" 休憩時間のスタイルに追加します。 zoom = "20" /og:ganttHeader> ●定義・解説 PL/SQL の VIEW_ZOOM メソッドを用いて、実際の日付けから画面表示ピクセルへ 変換する割合を求めます。これと、jsp\GANTT\image の ganttBGx.gif(x は ZOOM変数) を対応付けて、日付けのヘッダーを求めます。 jsp\custom\custom.css の th.zoomx(x は ZOOM変数) により、日付けヘッダー文字の 表示間隔を制御していますので、これらの関係を正確に把握しておいて下さい。 日付けヘッダーは、イメージ変数を用いている関係上、固定の日数を加算して、 求めます。(週:7日, 半月:15日, 月:30日, 4半期:90日, 年:360日) ヘッダー部のカレンダに、calDB で指定された カレンダテーブルを使用出来ます。 使用する場合は、arg1(事業所コード等)~arg4(WCコード等) の属性を指定する事ができます。 zoom="10"(週単位) を使用の週数の計算は、年初の最初の7日間が含まれる週を、第1週と数えます。 zoom="20"(時)間 では、1日の時間範囲をdaySpanでHHmm-HHmm形式で指定します。 開始時刻は、内部で1時間単位に変換されます。8時30分~は、8時~になります。 終了時間は、その時間を「含みません」 開始終了は、startDate、endDateで指定しますが、yyyyMMdd または、yyyyMMddHHmm 形式とします。 calDB で指定された カレンダテーブルを見て、休日の場合は、表示をスキップします。 休憩時間は、breakTimes で指定します。(HHmm-HHmm形式、または、yyyyMMddHHmm-HHmm、 または、yyyyMMddHHmm-yyyyMMddHHmm形式) CSV形式で複数指定できます。日付指定がない場合は、毎日、日付指定がある場合は、 その日のみ有効です。休憩時間は、日をまたぐ事は可能です。 breakTimeStyle として、休憩時間の指定に追加するスタイル属性を追加します。 通常は、バックカラーと上からの位置です。ヘッダー表示は、1時間単位です。 初期値は、"top:20px;background-color:yellow;filter:alpha(opacity=60);opacity:0.60;" です。 ベース時刻(baseTimes)は、HHmm形式、または、yyyyMMddHHmm形式で指定した箇所に、線を引きます。 例えば、検索した時刻を指定すると、現在時刻の箇所を示す線になります。 また、業務自体の開始時刻や終了時刻の箇所を表すことも可能です。 baseTimeStyle は、このベース時刻のスタイルを決めます。breakTimeStyle との違いは、 帯の幅を、このスタイルシートで指定していることです。 初期値は、top:20px;background-color:transparent;border-left:2px dashed red; です。 zoom="21"(時)間 では、一時間のピクセルを"20"(時)の半分に変更します。 useMultiClm パラメータを設定すると、ガントヘッダーにおいて、2段組を使用するかどうかを、 指定できます。時間ヘッダーの上段に日付を、下段の時間軸の(h)の削除を行います。 日付は、表示開始時刻の上と、それの6時間ごとに表示します。 初期値は、システムリソースの USE_GANTTHEADER_MULTIPLE_COLUMN で指定します。 システムリソースに USE_GANTTHEADER_MONTH_DATE パラメータを設定すると、 ガントヘッダーにおいて、30日、90日、180日のヘッダー表示で、日付まで 表示するか、月のみ表示するかを指定します。 ガントヘッダーの繰返し表示でバックグラウンドイメージは固定日なので、一月表示を 30日単位で表示していますが、先頭日付が 1日でないため、判りにくいと苦情がありました。 そこで、30日、90日、180日のヘッダー表示時に、日付を表示しないようにするフラグです。 月表示は、その月が 20日以降の場合、翌月を表示します。 初期値は、互換性の為、false です。 zoom 40(DAY),41(WEEK),42(MONTH) は、積み上げガント用のヘッダー処理を行います。 積み上げガントは、固定日処理ではなく、月単位に加算します。
導入されたバージョン:
JDK5.0,
  • コンストラクタの詳細

    • GanttHeaderTag

      public GanttHeaderTag()
      デフォルトコンストラクター
      変更履歴:
      8.5.3.2 (2023/10/13) JDK21対応。警告: デフォルトのコンストラクタの使用で、コメントが指定されていません
  • メソッドの詳細

    • doEndTag

      public int doEndTag()
      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
      doEndTag インタフェース内 Tag
      オーバーライド:
      doEndTag クラス内 CommonTagSupport
      戻り値:
      後続処理の指示
      変更履歴:
      3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。, 3.6.0.0 (2004/09/17) zoom 3 の時の計算値を変更, 3.7.1.0 (2005/04/15) zoom 10 の追加, 3.8.1.6 (2006/04/25) zoom 21 の追加, 3.8.5.2 (2006/06/09) makeZoom メソッドの USE_MONTH_DATE パラメータ追加, 3.8.9.2 (2007/07/28) makeZoomTime メソッドの 時間間隔パラメータ追加, 5.5.4.0 (2012/07/02) ヘッダー属性情報の出力追加, 5.6.3.2 (2013/04/12) 曜日を出力する場合の段組みでは、全角スペースを使う(firefox対応), 8.5.5.1 (2024/02/29) switch式の使用
    • release2

      protected void release2()
      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
      release2 クラス内 CommonTagSupport
      変更履歴:
      3.6.0.0 (2004/09/17) 事業所コード cdjgs 属性を追加, 3.8.0.2 (2005/07/11) startTime,timePeriod,breakTimes 属性を追加, 3.8.0.5 (2005/08/26) daySpan,breakTimes,breakTimeStyle 属性を追加, 5.5.4.0 (2012/07/02) calStr追加, 5.6.1.2 (2013/02/22) baseTimes、baseTimeStyle追加,useMultiClm追加
    • setStartDate

      public void setStartDate(String val)
      【TAG】表示開始日付けを設定します(yyyyMMdd または、yyyyMMddHHmm 形式)。
      パラメータ:
      val - 表示開始日付 (yyyyMMdd または、yyyyMMddHHmm形式)
      説明:
      この値は、ヘッダーの先頭に表示する日付けを指定します。 通常の日付ヘッダーの場合は、 yyyyMMdd 形式ですが、時間ヘッダーの場合は、 yyyyMMddHHmm 形式で指定します。
    • setEndDate

      public void setEndDate(String val)
      【TAG】表示最終日を設定します(yyyyMMdd または、yyyyMMddHHmm 形式)。
      パラメータ:
      val - 表示最終日 (yyyyMMdd または、yyyyMMddHHmm形式)
      説明:
      表示開始日から終了日までを、zoom 変数の値に応じてヘッダーラベルを 作成します。 通常の日付ヘッダーの場合は、 yyyyMMdd 形式ですが、時間ヘッダーの場合は、 yyyyMMddHHmm 形式で指定します。
    • setDaySpan

      public void setDaySpan(String val)
      【TAG】1日の開始終了時間を24時間形式(HHmm-HHmm または HH-HH)で設定します(初期値:0700-2000)。
      パラメータ:
      val - 開始終了時間(HHmm-HHmm)形式
      変更履歴:
      3.8.0.5 (2005/08/26) 本日は、青色で示します。, 5.6.1.2 (2013/02/22) daySpan(時刻表示範囲)は、内部では1時間単位, 6.0.2.4 (2014/10/17) 開始-終了が逆転している場合の処理をここで行う。
      説明:
      この値は、1日の開始終了時間を指定します。 開始時刻は、内部で1時間単位に変換されます。8時30分~は、8時~になります。 終了時間は、その時間を「含みません」 開始時刻より終了時刻が小さい場合は、翌日への日またぎとして計算します。 たとえば、夜勤等で、17:00-07:00 という指定が可能です。 初期値は、朝の7:00から夜の20:00までです。(0700-2000)です。
    • setZoom

      public void setZoom(String val)
      【TAG】ズーム変数(0~9,10,11,12,20~31,40~42)を設定します(初期値:2)。
      パラメータ:
      val - ズーム変数(0~9,10,11,12,20~31,40~42)
      変更履歴:
      5.7.6.2 (2014/05/16) stackHeaderタグの互換機能として、DAY⇒40,WEEK⇒41,MONTH⇒42 対応する。
      説明:
      CSSファイルでの定義と、背景画像との関係で、作成します。 ズーム変数は、CSSファイルや、JavaScript、PL/SQLと連動して、日付間隔 あたりのピクセルを計算して、ヘッダーを作成しています。 また、現在の標準的なクライアントでの換算になる為、高解像度のディスプレイや 特殊設定された環境では、表示間隔にずれが発生する可能性があります。 ZOOM ラベル 日数ピクセル変換率 ヘッダ上 ヘッダ下 1文字(CSS) ======================================================================================== 0 : 1週間 日数 * 8 * 6 48 48px = 1日 [02/ ] [23(EE)] 8px 1 : 2週間 日数 * 8 * 3 24 24px = 1日 [02/] [23 ] 8px 2 : 1ヶ月 日数 * 12* 1 12 12px = 1日 [2] [3] 12px 3 : 2ヶ月 日数 * 8 * 7 / 7 8 56px = 7日 [2004/ ] [02/03 ] 8px 4 : 3ヶ月 日数 * 8 * 7 / 14 4 56px = 14日 [2004/ ] [02/03 ] 8px 5 : 4ヶ月 日数 * 9 * 10 / 30 3 90px = 30日 [2004/ ] [02/03 ] 9px 6 : 6ヶ月 日数 * 10 / 6 / 30 2 60px = 30日 [2004/ ] [02/03 ] 10px 7 : 1年 日数 * 9 / 10 / 90 1 90px = 90日 [2004/ ] [02/03 ] 9px 8 : 2年 日数 * 9 / 10 /180 0.5 90px =180日 [2004/ ] [02/03 ] 9px 9 : 3年 日数 * 10 / 6 /180 0.33 60px =180日 [2004/ ] [02/03 ] 10px 10 : 週単位 日数 * 8 / 3 / 7 3.43 24px = 7日 [19W] [12 ] 8px 11 : 予約済み(他物10件使用済み) 12 : 予約済み(他物 8件使用済み) 13 : 日(週) 日数 * 8 * 2 16 16px = 1日 [23] [EE] 8px ======================================================================================== 20 : 1時間 時間 * 12 * 4 48 48px = 1時間 [02EE] [07h ] 12px 21 : 1時間2 時間 * 12 * 2 24 24px = 1時間 [02] [07] 12px 22 : 2時間 時間 * 12 * 4 / 2 24 48px = 2時間 [02EE] [07h ] 12px 23 : 2時間2 時間 * 12 * 2 / 2 12 24px = 2時間 [02] [07] 12px 24 : 4時間 時間 * 12 * 4 / 4 12 48px = 4時間 [02EE] [07h ] 12px 25 : 4時間2 時間 * 12 * 2 / 4 6 24px = 4時間 [02] [07] 12px 26 : 6時間 時間 * 12 * 4 / 6 8 48px = 6時間 [02EE] [07h ] 12px 27 : 6時間2 時間 * 12 * 2 / 6 4 24px = 6時間 [02] [07] 12px 28 : 8時間 時間 * 12 * 4 / 8 6 48px = 8時間 [02EE] [07h ] 12px 29 : 8時間2 時間 * 12 * 2 / 8 3 24px = 8時間 [02] [07] 12px 30 : 12時間 時間 * 12 * 4 / 12 4 48px =12時間 [02EE] [07h ] 12px 31 : 12時間2 時間 * 12 * 2 / 12 2 24px =12時間 [02] [07] 12px ======================================================================================== 40 : 積上(日) 48 48px = 1日 [02/ ] [23(EE)] 8px 41 : 積上(週) 3.43 48px = 7日 [19W] [12 ] 8px 42 : 積上(月) 月数 * 1 1 90px = 30日 [2004/ ] [02/03 ] 9px 43 : 日単位ヘッダー予約済み ~ 49 : 日単位ヘッダー予約済み
    • setCalDB

      public void setCalDB(String db)
      【TAG】DB検索するDBを指定します。
      パラメータ:
      db - DB検索するデータベースID
      変更履歴:
      3.6.0.0 (2004/09/17) DB検索するDBのキー
      説明:
      カレンダデータは、システムパラメータ の CalendarQuery_**** で 指定する、CalendarQuery クラスの QUERY 文で、実際に取得します。 上記の **** 部分に、ここで指定するキーワードを設定して置きます。 通常は、データベースID (GE13, ZY01 など)を指定します。 このキーワードに対する実装クラスを、先のシステムパラメータ の キーワード以下に記述しておきます。
    • setBreakTimes

      public void setBreakTimes(String times)
      【TAG】時間軸での休憩時間の開始-終了時刻をCSV形式で複数指定します。
      パラメータ:
      times - 休憩時間の開始-終了時刻(CSV形式)
      変更履歴:
      3.8.0.5 (2005/08/26) 新規追加, 3.8.0.7 (2005/09/20) 日付またがり追加追加
      説明:
      休憩時間は、HHmm-HHmm形式、または、yyyyMMddHHmm-HHmm、または、 yyyyMMddHHmm-yyyyMMddHHmm形式で複数指定できます。 これは、開始-終了というハイフン形式でつなげます。 このセットを、カンマで複数指定できます。 例えば、200508201200-1245,200508201300-1315 という感じです。 - の前後が、4桁の場合は、HHmm-HHmm 形式として、日付に関係なく、常にこの時分 で休憩が入るという認識をします。つまり、開始は、12桁か、4桁の日付形式、 終了も、12桁か、4桁の日付形式になります。
    • setBreakTimeStyle

      public void setBreakTimeStyle(String style)
      【TAG】時間軸での休憩時間の表示スタイルを設定します (初期値:top:20px;background-color:yellow;filter:alpha(opacity=60);opacity:0.60;)。
      パラメータ:
      style - 休憩時間の表示スタイル
      変更履歴:
      3.8.0.5 (2005/08/26) 新規追加
      説明:
      通常は、ヘッダーのトップからの位置と、色です。 それ以外にも、スタイルシート属性(キー:値;) というセットを指定できます。 class="breakTime" を出力していますので、そちらを使用したい場合は、breakTimeStyleを無効化してください。 そうしないと、こちらは、直接 style属性で設定しているので、強いです。 初期値は、top:20px;background-color:yellow;filter:alpha(opacity=60);opacity:0.60; です。 IE8以下のために、filter:alpha(opacity=60); しています。 設定の後ろに、; を付ける様にしてください。
    • setBaseTimes

      public void setBaseTimes(String times)
      【TAG】時間軸でのベース時刻の開始時刻をCSV形式で複数指定します。
      パラメータ:
      times - ベース時刻の開始時刻(CSV形式)
      変更履歴:
      5.6.1.2 (2013/02/22) 新規追加
      説明:
      ベース時刻は、HHmm形式、または、yyyyMMddHHmm形式で複数指定できます。 このセットを、カンマで複数指定できます。 例えば、1700,200508201300 という感じです。
    • setBaseTimeStyle

      public void setBaseTimeStyle(String style)
      【TAG】時間軸でのベース時刻の表示スタイルを設定します。
      パラメータ:
      style - ベース時刻の表示スタイル
      変更履歴:
      5.6.1.2 (2013/02/22) 新規追加
      説明:
      通常は、ベース時刻の幅と、ヘッダーのトップからの位置と、色です。 それ以外にも、スタイルシート属性(キー:値;) というセットを指定できます。 初期値は、top:20px;background-color:transparent;border-left:2px dashed red; です。 設定の後ろに、; を付ける様にしてください。
    • setArg1

      public void setArg1(String arg)
      【TAG】DB検索する場合の第1のキーを指定します。
      パラメータ:
      arg - DB検索の第1キー(事業所コードなど)
      変更履歴:
      3.6.0.0 (2004/09/17) DB検索の第1キー(事業所コードなど)を追加
      説明:
      例えば、GE13, ZY01 では、事業所コード(CDJGS)を設定します。 この値は、システムパラメータ の CalendarQuery_**** で 指定する、CalendarQuery クラスの QUERY 文に依存します。 データベース定義の統一を望むところです。
    • setArg2

      public void setArg2(String arg)
      【TAG】DB検索する場合の第2のキーを指定します。
      パラメータ:
      arg - DB検索の第2キー(WCコードなど)
      変更履歴:
      3.6.0.0 (2004/09/17) DB検索の第2キー(WCコードなど)を追加
      説明:
      例えば、TP652 では、事業部コード(CDJGS) と 物件工程コード(CDKTEI)の2つの キーで、カレンダを取得します。(+年月で、行を決定) 引数が、2つまで対応しています この値は、システムパラメータ の CalendarQuery_**** で 指定する、CalendarQuery クラスの QUERY 文に依存します。 データベース定義の統一を望むところです。
    • setArg3

      public void setArg3(String arg)
      【TAG】DB検索する場合の第3のキーを指定します。
      パラメータ:
      arg - DB検索の第3キー
      変更履歴:
      3.6.0.0 (2004/09/17) DB検索の第3キーを追加
      説明:
      この値は、システムパラメータ の CalendarQuery_**** で 指定する、CalendarQuery クラスの QUERY 文に依存します。 データベース定義の統一を望むところです。
    • setArg4

      public void setArg4(String arg)
      【TAG】DB検索する場合の第4のキーを指定します。
      パラメータ:
      arg - DB検索の第4キー
      変更履歴:
      3.6.0.0 (2004/09/17) DB検索の第4キーを追加
      説明:
      この値は、システムパラメータ の CalendarQuery_**** で 指定する、CalendarQuery クラスの QUERY 文に依存します。 データベース定義の統一を望むところです。
    • setSkipHoliday

      public void setSkipHoliday(String skipHol)
      【TAG】時間ガントで休日をスキップするかどうかを設定します (初期値:USE_GANTTHEADER_SKIP_HOLIDAY[=])。
      パラメータ:
      skipHol - 休日をスキップするかどうか [true:スキップ(=非表示)/false:休日の赤色表示]
      関連項目:
      変更履歴:
      4.0.0.0 (2007/09/07) 新規作成
      説明:
      この値をfalseにすると、時間ガントでも休日が赤色で表示 されるようになります。trueにした場合は、休日は表示されません。 (初期値:システム定数のUSE_GANTTHEADER_SKIP_HOLIDAY[=])。
    • setUseMultiClm

      public void setUseMultiClm(String multiClm)
      【TAG】時間ガントで2段組を使用[true:する/false:しない]を設定します (初期値:USE_GANTTHEADER_MULTIPLE_COLUMN[=])。
      パラメータ:
      multiClm - 2段組使用 [true:する/false:しない]
      関連項目:
      変更履歴:
      5.6.1.2 (2013/02/22) 新規作成
      説明:
      ガントヘッダーにおいて、時間ヘッダーの上段に日付を、下段の時間軸の(h)の削除を行います。 日付は、表示開始時刻の上と、それの6時間ごとに表示します。 (初期値:システム定数のUSE_GANTTHEADER_MULTIPLE_COLUMN[=])。
    • toString

      public String toString()
      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
      toString クラス内 CommonTagSupport
      戻り値:
      このクラスの文字列表現
      このメソッドは、nullを返しません