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

メインPGに照会リンクを定義、各プログラムで値参照

コメント

7件のコメント

  • nkmt

    ISHJIMA様、レスありがとうございます。

    xpa3.2で実験してみました。

    開発版で、プログラム単体をF7で実行すると、メインPGに定義した照会リンクの値は参照出来ました。

    照会リンクの戻り値にもTrueが入ってくるようです。

     

    しかし(開発版のライセンス MGCSTK)

    MgxpaRuntime.exeでアプリケーション実行すると、

    各PGから、メインPGに定義した照会リンクの値は参照出来ませんでした。

    照会リンクの戻り値はFalseでした。


    今回の実験は、開発PCでの実験なのでMGCSTK3やMGCSTK4での実験でしたが

    実際の客先ではもちろんMGCSRT3とか4で稼働をさせています。

     

  • nkmt

    メインPGのデータビューに照会リンクを定義して、

    その値を各PGから参照するアプリケーションを

    客先で稼働させている方はいらっしゃいますか?

  • nkmt

    多分、解決すると思います。勘違いかもしれません。少しお待ちください。実験します。

  • nkmt

    私の勘違いかもしれないと思いましたが、そうではないかもしれません。

     

    実行版稼働

    → メインPGのタスク前処理が稼働(レコード前処理、レコード後処理も無いので)

      データビューの照会リンクっていつ動くのでしょうか?

    昔のMagicのように INIファイルに /STARTPROGRAM=開始PG番号 の指定が出来ないので

    メインPGのタスク前処理に、起動プログラムを指定する事が多いです。

     

    メインPGのタスク前処理から、メニューPGを起動するから、まだメインPGの照会リンクは

    動いていないのではないか?という予想を立てました。

     

    MgxpaStuudio.exeでPG単体をF7 実行する時は、メインPGの照会リンクも稼働済で

    MgxpaRuntime.exeでメインPGからメニューPGを実行する時は、

    メインPGの照会リンクはまだ稼働していないのですかね?

     

    いずれにしてもMGCSRTでの実験ではないので、半端な実験かもしれません。

  • nkmt

    (私の知識不足かもしれませんが)

    普通のPGは、レコード前、レコード後処理がありますけどもメインPGにはそれがないですよね。
     
    照会リンクが動くのはレコード前の直前だと思います。
     
    よってレコード前、レコード後処理の存在しないメインPGで照会リンクがいつなされるのかよくわかりません。
    なので、今回知人には、前述したようこの問題を解決するには、
    メインPGのタスク前処理からメニューPGを起動する前に
    メインPGの子タスクで必要なデータ取得の照会リンクを行い、
    メインPGに定義した変数に値を格納してあげて、その変数を各PGから
    参照するようにした方がいいかもしれないですね!とアドバイスしておきました。

    私の知識不足、誤った理解があるかもしれない事を先に述べておきます。
  • nkmt

    ISHJIMAさん 実験ありがとうございました。

    メインPGのタスク前から、コールしたPGでは参照出来ないのでしょうね。

    知人もメインPGに照会リンクを定義するのは止める事にしたようでした。

     

     

  • nkmt

    何か問題があるのでしょうね。ありがとうございました。

     

    メインPGのデータビューに照会リンクを定義。

    メインPGのタスク前から、オンラインタスクのPGを実行。(システムのメニュー画面など)

    それらのPGから、メインPGの照会リンクの値を参照。

    ・開発版では照会リンクがされている、

    ・ecf Runtime.exe では、照会リンクがされない。

    何か問題があるのでしょうね。

    まぁいずれにせよ、そのメインPGに照会リンクするのは、いろんな面で

    望ましいと思いませんし、私も実際にそのようにした事もありませんし、

    問合せをしてきた知人もそれは止めるとの事でしたので。

     

    照会リンクのキーも 数値の1 といった固定も試してみました。

     

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