テーブルコンポーネントの選択と更新イベントについて

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 テーブルコンポーネントの選択と更新イベントについて

2 件の投稿を閲覧中 - 1 ~ 2 件(全 2 件)
  • 著者
    投稿
  • #6362
    アイエステクノ株
    一般参加者

    テーブルコンポーネントでセルが更新されて行が変更になった際に
    更新されたセルを含む行のデータの有無の確認を行う処理を行いたいのですが、
    うまくいきません。

    現状、テーブルコンポーネントでデータ選択イベント時に選択行を整数格納変数に保存し、
    データ更新イベント時にテーブルの選択行と保存していた選択行を比較するようにしました。
    デバッグ画面を開いている状態では
      ・更新イベント時の選択行は移った先の行数
      ・保存していた行数は更新されたセルの行数
    デバッグ画面を閉じた状態では
      ・更新イベント時の選択行は更新されたセルの行数
      ・保存していた行数は更新されたセルの行数
    上記の状態となりデバッグ画面をを開いているときは狙い通りの動作をするのですが、
    閉じた状態では動作しません。

    上記の状態を改善する方法、または、他にいい方法があれば教えていただければと思います。

    テストで作成したファイルを添付します。
    更新イベント時に選択行をテキストフィールドに行にするようにしています。
    デバッグ画面を開いているときと閉じているときで
    テキストフィールドに表示される行数が違います。

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

    初めに、MZ側のテーブルの挙動について整理させてください。「セルを更新して選択行が変わる」という動きに限定したご質問ですが、添付していただいたMZアプリのテーブル上でセルをダブルクリックして編集状態にしてから値を変更してEnterキーを押すと、セルの値は更新されますが選択行は変わりません。一方、選択中のセルをF1キーで編集状態にするかBackSpaceキーで値を削除してから値を変更してEnterキーを押すと、セルの値が更新されて選択行が変わります。こちらの動きに限定した話でよろしいでしょうか。もしユーザの操作方法で動きが変わって問題が生じるようであれば、そちらについてもご検討ください。

    次に、MZプラットフォームのデバッグ機能にはいくつか制限事項がありまして、その一つがイベント発生の順番が実際の実行時と変わってしまうことです。デバッグ実行中のイベント発生順序は正しくありませんので、それを前提とした処理を定義するのは避けてください。また、イベント発生の順番が変わるということは、後述のようにご要望の機能を実現することは可能と思いますが、その機能はデバッグ実行時に正常に動作しないことをご承知おきください。

    以上を踏まえまして、実現方法の案を説明します。

    通常実行時は、データ更新イベント処理中は元の行位置が取得されます。更新処理が完了してから選択行が変わったときに、データ選択イベントが発生して新しい行位置が取得可能となります。更新した行のデータと新たに選択された行のデータを比較するには、更新イベントで必要なデータを変数等に格納しておき、選択イベントで比較処理を実行します。更新後の選択イベント発生時のみ処理を実行するためには、論理値格納変数等を用いた分岐処理が考えられます。

    元のテスト用アプリを修正して上記の処理を説明するサンプルを作成しましたので、ZIPファイルにして添付します。展開してビルダーでご確認いただき、ご不明な点があれば再度お問い合わせいただけますでしょうか。

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