メインコンテンツへスキップ

同一のデータを2台のPCで扱う

コメント

15件のコメント

  • Pu

    こんにちはPuです
    タイマーイベントで定期的にリフレッシュするなど
    入力時排他制御は考えないといけませんが...

    工場内の生産状況などの表示(終日表示させている)などにタイマーイベントで
    最新の生産実績状況などを大型スクリーンに表示させたりしました

    他に方法があれば自分も勉強の為知りたいです
    webのchatアプリなどはそのような事を簡単に実現できるんですが
    でわ~でわ~

  • nkmt

    砕石出荷管理システム
     車両別 配車画面を表示
      イベント 式=Idle()>=50
        表示すべきデータがある?タスクを実行
        ビュー再表示  条件=True
    みたいな事は実現しております。

  • Tanda

    daiさん、

    今まで1台のPCで利用していた業務アプリを2台のPCで利用したいというご要望でしたら、2台のPCをLANで接続するか、あるいはWi-Fiで同一のネットワークに入るようにするだけで実現できますよ。

    データベースはどちらか1台のPCで稼働させて、別のPCからはそのデータベーステーブルを見に行くような設定にすればOKです。

  • dai

    皆様ご回答ありがとうございます。

    もう少し詳しく説明しますと、まずその日に配車可能なトラック台数をマスタ登録し
    受注入力を行います。
    下図の配車画面を開いたときに行先等で受注データを振分して
    決められたルールで自動配車をシステム側で行ってます。
    その後ドラッグ&ドロップでレコードを移動して別のトラックに配車したり調整をするという流れです。
    実際にはイベント発生時に車輛NOを書き換えて再表示して移動されたように見せているだけですが。

    この画面を2台のPCで同時に配車作業を行いたいということです。
    PC-Aでドラッグ&ドロップされた時にPC-Bでもその結果を表示したいです。

    サブフォームは最大16個、登録されたトラックの台数に応じて縦サイズが変動する仕組みです。

  • dai

    Puさん
    タイマーイベントも考えましたがいつドラッグアンドドロップされるかわからないので
    タイムラグが生じてしまうのが難点です。
    ホントにchatアプリのようなことですからね。

    nkmtさん
    Idle()>=50
     表示すべきデータがある?タスクを実行
       ビュー再表示  条件=True
    この関数は初めて知りました。操作がマウスになるのでマウス操作を判断してくれるか
    が問題ですね。検証してみたいと思います。

    Tandaさん
    現在同じネットワークに入っており同じデータは参照できる状態です。
    イベント発生時に別PCで画面を再表示するのが目的となります。

  • nkmt

    素晴らしい事例画面を見させて頂きありがとうございます。

    私の場合は、
    他のPC、あるいは自PC
    で並行実行で動いている受注入力画面で出荷を入力すると
    並行実行で動いている配車画面に表示されるという風にしております。


    その配車画面で「この出荷はやっぱりこの車両にしよう」とドラッグドロップで操作しております。
    配車画面でIdle時に、新情報が存在しないかな?
    他端末で変更が生じていないかな?とデータを見て
    必要ならビュー再表示をしております。

  • nkmt

    自動配車いいですね。
    配車変更が生じたという事を他端末でもわかるよう、それをデータで持つのがいいのではないかと思います。

  • nkmt

    その砕石出荷システムは他社が別言語で作った分がありましたが、メンテが難しくなったようで要請を受け動きを真似てMagicで作りました。自分はドラッグ&ドロップの操作を作った事が無かったので、実験等を経て構築が出来ました。稼働して7年経ちます。

  • dai

    nkmtさん

    お忙しいところご返信ありがとうございます。

    大変貴重な情報を出して頂き感謝しております。

    Idleやタイマーで判定を行いビュー再表示。

    なんか道が見えてきました!検証してみたいと思います。ありがとうございます。

    多言語システムを真似て作れるMagic素晴らしいですよね。
    一般的なローコードツールの域を超えたものだといつも感じております。

  • Tanda

    daiさん、

    はい、そういう処理でしたらタイマーイベントで画面更新でいいと思いますよ。

    ちなみに、タイマーイベントは「メインプログラム」で操作するとグローバルなタイマーを設定することができて、おもしろいですよ。いろいろ試してみてください。

  • nkmt

    daiさん、仰る通りMagicは素晴らしいと思います。有難いソフトウェアですよね。
    他のローコードツールの使用経験がないのですが、きっと他よりとても優れているのでしょうね。

  • Tanda

    daiさん、

    ちなみに、今どきのCPUは処理が速いですから、1秒おきにイベントを監視してもほとんど苦にならないくらいの負荷だと思いますよ。Chatでも1秒くらいの遅延なら、体感的にもそれほど苦にならないですね。

  • Tanda

    daiさん、

    補足ですが、「ビュー再表示」と「画面再表示」では、CPUにかかる負荷が結構違います。用途に合わせて使い分けるといいですよ。

    下記はその参考記事です。

    第157回 画面再表示とビュー再表示の違い(2021年3月31日)

     

  • dai

    Tandaさん

    ご教授ありがとうございます。色々試してみたいと思います。

    nkmtさん

    詳しく教えて頂きありがとうございます。八方塞がりだったものが現実味を帯びてきました。

  • dai

    お世話になっております。

    こちらの件おかげさまで何とか形になりました。

    同期対象の端末NOでペアマスタを作り(端末1→端末2)(端末2→端末1)
    それぞれ端末WORKで作業、ドラッグ&ドロップで移動時にサーバーに
    積荷がどの車両NOに移動されたかLogをとり
    2秒毎にLogファイルを参照、ペアマスタで設定された端末のLogがあった場合に
    車両NOを書き換え再表示という形で相互同期できました。

    皆様お忙しいかと思いますので返信不要です。ご報告まで。ありがとうございました!

サインインしてコメントを残してください。