MZPlatformユーザー会

作成した返信

10 件の投稿を閲覧中 - 481 ~ 490 件(全 756 件)
  • 著者
    投稿
  • 返信先: データの整理の方法 #5467
    MZPlatformユーザー会
    サイト管理者

    削除の条件についてのご質問にお答えする前に、後半の繰り返し制御について、というよりMZの処理実行順序について理解していただく必要がありそうです。

    基本的な処理の順序は、下記の3つです。
    1)イベント処理(赤丸につながった一連の起動メソッド)は上から順です。
    2)起動メソッドを実行したときにイベントが発生する場合は、そのイベント処理が終わってから次の起動メソッドに移ります。
    3)コンポーネント(左側の四角)の順番は、処理の順番と関係ありません。

    ここでは、サブルーチンと繰返し制御の実行の両方で必要なテーブルを作成しています。

    サブルーチンの方では、アクションイベント処理の中で全体テーブルからフィルタで部分テーブルを取得して、選択テーブルに設定した後で経過時間が入る列を追加します。最後の繰り返し制御の繰り返し処理を呼び出すと、指定した回数アクションイベントが発生します。そのイベント処理の中で、選択テーブルの各行に関してセルを比較して経過時間を計算して、最後にテーブルの経過時間のセルに値を設定します。

    この処理順序が理解できないうちは、適切に処理の追加はできませんので、がんばっていただくしかありません。

    返信先: データの整理の方法 #5464
    MZPlatformユーザー会
    サイト管理者

    画面のテーブルであれば、特定行を削除するメソッドがあります。
    変数内のテーブルデータであれば、行を位置指定で削除するメソッドがあります。

    複数行の削除はないので、テーブルの各行に対して繰り返し処理の中で削除してください。ただし、繰り返し処理で前方から削除していくと後方の行位置がずれてしまうので、後方からの繰り返し制御にして後方から削除する必要があります。

    返信先: データの整理の方法 #5460
    MZPlatformユーザー会
    サイト管理者

    エラーについては、メソッドの選択ミスです。前述のリンク先のFAQを見ていただくとわかりますが、「Calendarオブジェクトによる…」ではなく「Dateオブジェクトによる…」です。テーブルのセルに入っているような日時データまたは文字列は、内部的にはDateオブジェクトと呼ばれるものまたはそれに変換されて扱われます。

    処理についてもいくつか手を入れましたので、添付ファイルをご確認ください。日時比較は選択テーブル側の行に対する処理に変更していて、列を追加してそこに経過時間を入れています。

    繰り返し処理の中で現在の行と直前の行の日時を用いるので、テーブルの行位置指定で計算が必要になります。経過時間はミリ秒単位で取得されるので、それを必要な単位に変換する必要があります。

    返信先: データの整理の方法 #5456
    MZPlatformユーザー会
    サイト管理者

    MZアプリのファイルについては、エラーを再現する部分を切り出したファイルをZIP圧縮して、この掲示板に添付ファイルとして貼り付けていただければ、こちらで内容を確認することは可能です。

    その場合でも、まずはどのような処理をしてどの時点でどのようなエラーが出るのかをご説明ください。エラーメッセージだけでも回避方法がわかる場合があります。

    返信先: データの整理の方法 #5454
    MZPlatformユーザー会
    サイト管理者

    1つ目のご質問は、テーブルサブセットフィルターのメソッドで、列の値で行選択をすることで実現できたということですね。

    2つ目のご質問は、対象とするテーブルがどのようなデータで構成されているかで処理の複雑さが変わってきます。

    基本となる処理としては、ある作業者の作業だけが時系列に並んでいるとして、繰り返し処理で2行分のセルの値を使ってカレンダーで時刻の比較で経過時間を取得します。結果はテーブルに1列追加しておいてそのセルに入力していくと良いでしょう。経過時間の取得部分はFAQに同様の質問があるのでご覧ください。
    https://ssl.monozukuri.org/mzplatform/faq/faq/faq_technical/how_to_realized/how_to_realized_a64.html

    ただし、これだけだと最後の作業の経過時間が計算できない問題がありますし、途中で日付が変わっているとその部分で切らないといけません。対象となるテーブルを事前に整形する処理を入れたりして対処することになります。

    返信先: 進捗ダイアログの使い方について #5453
    MZPlatformユーザー会
    サイト管理者

    下記長文になりますが、解説します。

    スレッドとは、起動メソッドの実行やイベント発生が、一つずつ順番に処理が進むまとまりとお考え下さい。あるスレッドの処理中に、モーダルダイアログの表示が含まれていると、モーダルダイアログが閉じられるまでそのスレッドの処理は止まります。モーダルダイアログの表示のあとに追加されている起動メソッドは、ダイアログが閉じられてから実行されます。

    例えば、ボタンのアクションイベント発生は、画面表示用のメインのスレッドで実行されていて、その処理中にメッセージダイアログの表示が含まれていると、メッセージダイアログが閉じられるまで他の部品に触れなくなります。これがブロックと表現した状態です。ただし、このようにモーダルダイアログを表示すると、同じスレッドの中で時間のかかる処理をしながら画面をブロックしてダイアログを表示することはできません。ダイアログ表示の前に時間のかかる処理を実行すると、それが終わってからダイアログが表示されますし、ダイアログ表示の後に時間のかかる処理を実行すると、ダイアログが閉じてから処理が実行されます。

    進捗ダイアログは属性でモーダルかそうでないかが選べますが、今回の使用例はモーダルで表示しています。重要なのは、時間のかかる処理を別のスレッドで実行開始してから、進捗ダイアログを表示している点です。この順番を逆にすると動きません。別のスレッドで明示的に実行するためには、スレッドアロケータかタイマーを使う必要があります。このようにすると、時間のかかる処理を実行しながら、モーダルダイアログを表示することができます。そして、時間のかかる側で進捗ダイアログの状態を更新していて、その処理が終わったら進捗ダイアログを閉じています。

    進捗ダイアログの取消ボタンは、時間のかかる処理の状況とは独立に、進捗ダイアログを閉じてしまいます。何もしなければ、進捗ダイアログは閉じたけれども時間のかかる処理は別スレッドで終わるまで継続します。

    進捗ダイアログを表示している側のメインのスレッドと、時間のかかる処理を実行しているスレッドは独立に動作しているので、どちらかに戻るという表現は適切ではありません。単にモーダルダイアログを表示しているとメインのスレッドが止まっていて、閉じると動くというのが正しいです。

    今回は省略しましたが、進捗ダイアログの取消ボタンのアクションイベント発生では、時間のかかる処理を途中で止める処理を記述する必要があります。もちろん、進捗ダイアログの表示と時間のかかる処理のスレッドが別なので、取消ボタンを押した瞬間の別スレッドの処理の状態は多少のタイムラグがあるでしょう。それでも、例えば今回の例では繰返し処理を実行しているので、取消ボタンを押したときに繰り返し処理の現在値を取得してそれを繰り返し処理の終了値に設定すると、繰り返し処理を途中で終了することができて、別スレッドの処理を早めに終了することはできます。

    このように、進捗ダイアログを使うためにはスレッドの理解が必要で、スレッドの理解はなかなか難しいので、いろいろ実験して試してみてください。

    返信先: 進捗ダイアログの使い方について #5447
    MZPlatformユーザー会
    サイト管理者

    データベースへの登録方法について、回答が漏れていたので追記します。

    通常は一行ずつのSQL文を作成して実行するのが良いと思います。

    返信先: 進捗ダイアログの使い方について #5445
    MZPlatformユーザー会
    サイト管理者

    時間のかかる処理を実行中のときに、ダイアログを表示して操作をブロックするためには、時間のかかる処理を別のスレッドとして実行して、そのあとでモーダルダイアログを表示します。時間のかかる処理が終了したときにダイアログを閉じれば、画面の操作が再度可能になります。

    進捗ダイアログは、上記のような使い方をしたときに、全体のどの程度まで処理が進んだかを表示することができるコンポーネントです。例えば、繰り返し処理の全体の回数を最大値として、現在値を更新すれば、進捗状況が表示されます。

    つまり、使い方としてはスレッド実行と進捗ダイアログの両方の組み合わせとなりますが、適切なサンプルが配布できていないので、添付していただいたものを改変して使用例のサンプルとしました。添付の内容をご確認いただき、ご不明な点があれば再度お問い合わせください。

    添付ファイル:
    返信先: 稼働日数計算について #5440
    MZPlatformユーザー会
    サイト管理者

    確認ですが、サンプルの「勤務時間計算」についてはご覧いただいているでしょうか。場所は、インストールフォルダのAP_DATA\Sampleに含まれています。簡易的な解説PDFはdocs\Sampleにあります。

    サンプルをご覧いただくとわかりますが、カレンダーを用いた計算では休日分を自分で引く必要があります。まずはご覧いただき、ご不明な点をお問い合わせください。

    なお、日付選択ダイアログの「休日を追加する」は、日付選択ダイアログ上で休日の色で表示するためのものです。

    メソッドの引数に文字列で指定してもうまくいかないので、日付入力フィールド等を用いて日付データを指定していただけますでしょうか。残念ながら、リストで指定するメソッドはないので、繰り返しFORを用いるなどで対応をお願いします。

    返信先: MySQLがうまく接続されません #5439
    MZPlatformユーザー会
    サイト管理者

    おそらくですが、MySQLとの接続に必要なJDBCドライバの不具合が原因と思います。
    お手数ですが、別バージョンのドライバに置き換えて試してみていただけますでしょうか。

    JDBCダウンロードページ(https://dev.mysql.com/downloads/connector/j/)より、以下の手順でバージョン5.1.47を入手してお使いください。

    (1) このページの「Connector/J 8.0.13 」と書かれている部分の右側の「Looking for previous GA versions? 」をクリックします。
    (2) 「Connector/J 5.1.47」に移動しますので、プルダウンメニューから「Platform Independent」を選択し、「Platform Independent (Architecture Independent), ZIP Archive」のDownloadボタンをクリックします。
    (3) 表示されたページ最下部の、「No thanks, just start my download.」をクリックすると、ダウンロードが開始されます。

    以上です。よろしくお願いします。

10 件の投稿を閲覧中 - 481 ~ 490 件(全 756 件)