エクセル連携導入(派遣管理)-2のガントチャート表示について

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 エクセル連携導入(派遣管理)-2のガントチャート表示について

8 件の投稿を閲覧中 - 1 ~ 8 件(全 8 件)
  • 著者
    投稿
  • #4929
    伊予研究会
    一般参加者

     アプリケーションビルダーを新たに立ち
    上げ、ガントチャート化のボタンを押すと表示期間が範囲から外れてしまい(初期の状態のまま)、エクセルデータに入力した日時まで移動するのに手間がかかります。ガントチャート化のボタンを押した時点で、現在の日時をチャートの真ん中にして表示することはできないでしょうか。よろしくお願いします。

    #4931
    MZPlatformユーザー会
    サイト管理者

    ガントチャートの「時間軸の表示開始日時を設定する(Date)」メソッドを使うことで、表示開始日時を設定できます。この引数に対して、システム情報コンポーネントの「現在時刻を取得する()」メソッドで得た現在時刻を指定することにより、表示開始日時が現在の日時に設定されます。

    現在の日時をチャートの真ん中にして表示するためには、さらに以下の処理が必要になります。
    (1) ガントチャートの表示期間を取得する。
    (2) 現在日時から、表示期間の半分だけ前に遡った日時を計算する。
    (3) ガントチャートの表示開始日時を、(2)で計算した日時に設定する。

    (2)の処理の作成は少々煩雑になりますので、まずは現在日時を表示開始日時(ガントチャートの左端)に設定することをお試し頂けないでしょうか。

    #4939
    伊予研究会
    一般参加者

    現在日時を表示開始日時(ガントチャートの左端)に設定することはできました。
    (1)のガントチャートの表示期間を取得するは、メソッド「時間軸の表示期間の値を取得する()」でよろしいのでしょうか?

    よろしくお願いします。

    #4940
    MZPlatformユーザー会
    サイト管理者

    メソッド「時間軸の表示期間の値を取得する()」で表示期間の数値を取得し、さらに「時間軸の表示期間の単位を取得する()」で取得した単位(年、月、週など)と組み合わせることで、表示期間を取得することができます。

    (2)の処理は、単位が何かによって場合分けをする必要があるため、作成が少々煩雑になります。

    #5264
    伊予研究会
    一般参加者

     ありがとうございました。できました。
     現在の日付けをチャートの真ん中にと思っていましたが、実際表示してみるともう少し左側にある方が便利でしたので、表示期間の3分の1を現在の日付けにしました。
     表示単位が、年、月、週、日などと限定されていることから、添付ファイルの表を作り、検索したIDを返して分岐処理しています。その時、例えば、年の単位であればその3分の1の120を、月なら10を表示期間と掛け合わせれば処理できました。
     ところで、120とか10と言った数値を直接プログラムに記載しているので、ユーザが表示期間を4分の1に設定したい場合、添付ファイルに1列を追加して入れた数値をプログラムに呼び出すこと(この数値を変数に入れたい)は可能でしょうか。適当なサンプルがありましたら、ご教示ください。
     よろしくお願いします。

    #5266
    MZPlatformユーザー会
    サイト管理者

    テーブルに記入した数値を取り出して計算に使うことは可能です。以下の方法が比較的簡単かと存じます。

    (1) 表からIDを検索したタイミングで数値を取得
    (2) 取得した数値を整数格納変数あるいは実数格納変数へ設定
    (3) 現在は固定値で数字を書き込んでいる引数を、メソッド戻り値に変更し、(2)で使った格納変数の「数値を取得する」を指定

    今回の件と直接関係するものではありませんが、任意の数式に数値を代入して計算するためのコンポーネントとして「関数電卓」がございます。サンプルを収録しておりますので、ご参考までにご覧いただければと存じます。

    #5267
    伊予研究会
    一般参加者

    ありがとうございました。
    ご指示のとおりで、できました。

    もう一点、教えて下さい。
     ガントチャートのバー(添付ファイル)を右端(又は左端)にマウスでドラッグしたとき、グラフを自動でスクロールさせたいのですが、マウスのX,Y座標を求めてグラフの右端からはみ出したという判断をするには、どのようなコンポーネントを使えばよろしいのでしょうか。
     自動スクロールのサンプルがございましたら、ご教示ください。

    よろしくお願いします。

    #5269
    MZPlatformユーザー会
    サイト管理者

    以下の手順でスクロールさせることが可能です。

    (1) ガントチャートのバー(タスク)をマウス操作したときに、ガントチャートの「getTaskStart(int,int)」、「getTaskEnd(int,int)」により、操作したタスク(選択したタスク)の開始日時、終了日時を取得。
    (2) タスク開始日時<ガントチャート表示開始日時であれば、ガントチャートの表示開始日時をタスク開始日時に設定。
    (3) ガントチャート表示終了日時(表示開始日時+表示期間)<タスク終了日時であれば、ガントチャートの表示開始日時を(タスク終了日時-表示期間)に設定。

    ご参考までにサンプルを用意しましたので、ご覧ください。なお、サンプルでは、(3)での計算回数を減らすため、「表示開始日時<(タスク終了日時-表示期間)」の判定を行っています。

    添付ファイル:
8 件の投稿を閲覧中 - 1 ~ 8 件(全 8 件)
  • このトピックに返信するには、ログインしてください。