ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

画面再表示について

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-31 0:20
kyoike  一人前 居住地: M2C  投稿数: 80
画面再表示の仕組みについてご教授下さい。

V10ではうまくいってた画面再表示が、
Unipaasではうまくいきません。

具体的には、
・親子の伝票入力画面
・子タスクはサブフォーム
・子タスクの行のリナンバー後に再表示している(子タスク自身を)
・子タスクで登録中に、親タスクにマウスで移動

という場面にて、画面再表示が、子タスクではなく、
親タスクで実行されてしまい、不都合が発生しています。

V10とUnipassにて、画面再表示のタイミングが異なっていると
想定しておりますが、どなたかご存じありませんでしょうか?

ちなみに、ビュー再表示では、行リナンバ等で、画面がパラパラ
してしまい、画面再表示でどうにか処理したいと思っています。

開発環境は、
UnipaasV1 + Oracle11g
となっています。
投票数:0 平均点:0.00
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-31 9:02
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
マウスで移動しないとうまくいくのですか?
画面再表示のタイミングはどこで行っているのでしょうか?
投票数:0 平均点:0.00
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-31 9:20
kyoike  一人前 居住地: M2C  投稿数: 80
伝票ヘッダ
  |
伝票明細
  |
リナンバ(タスク後で画面再表示)

という構造になっています。

明細タスク内での移動(マウスも行移動も)はOKです。
伝票明細を書込み、行を動かす前に、マウスでヘッダに移動すると
うまく動きません。
この場合、ヘッダで画面再表示が起動し、レコード後処理を通過し
てしまいます。この画面再表示を何とか明細タスクで起動させたい
のです。
投票数:0 平均点:0.00
depth:
3
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-31 12:04
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
伝票明細のどこでリナンバを呼んでいるのでしょうか?
レコード後処理?
投票数:0 平均点:0.00
depth:
4
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-31 12:44
kyoike  一人前 居住地: M2C  投稿数: 80
伝票明細のレコード後にて、リナンバータスクを呼んでいます。
リナンバータスクのタスク後にて、画面再表示を記述してます。
投票数:0 平均点:0.00
depth:
5
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-31 13:44
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
画面再表示を伝票明細のレコード後に持っていったらどうなりますか?
投票数:0 平均点:0.00

なし Re: 画面再表示について

msg# 1.1.1.1.1.1.1
depth:
6
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2009-7-31 14:04
kyoike  一人前 居住地: M2C  投稿数: 80
全く同じ動きになります。

伝票明細にて、入力後に行を動かさず、
伝票ヘッダにマウス移動すると、伝票ヘッダで画面再表示が発行
されます。しかも、伝票明細は、リナンバされません。
投票数:0 平均点:0.00

なし Re: 画面再表示について

msg# 1.1.1.1.1.1.1.1
depth:
7
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-31 16:18
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
リナンバーがされないということはリナンバーの処理自身を行っていないということでしょうか?(レコード後処理は通っていますよね?)
投票数:0 平均点:0.00

なし Re: 画面再表示について

msg# 1.1.1.1.1.1.1.1.1
depth:
8
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-31 16:40
kyoike  一人前 居住地: M2C  投稿数: 80
リナンバー処理自体はうまくいっています。
再表示さえされれば、問題はないのです。

リナンバータスクのタスク後に、画面再表示を発行してますが、
V10では、リナンバータスクの親タスク(伝票明細)が再表示されます。
が、UniPaaSでは、カーソルがパークしているタスクが再表示されます。
つまり、ユーザの操作により再表示されるタスクが異ってしまいます。

Magicのバージョンの違いにより、イベントの発行タイミングが異なるのだと思います。
投票数:0 平均点:0.00

なし Re: 画面再表示について

msg# 1.1.1.1.1.1.1.1.1.1
depth:
9
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-7-31 16:51
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
ウエイトをYESにするとうまくいきませんか?(レコード後でテストしました。)
投票数:0 平均点:0.00

なし Re: 画面再表示について

msg# 1.1.1.1.1.1.1.2
depth:
7
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-31 16:43
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
現象はこちらでも確認できました。(バグなのか仕様なのか・・・)
最終的にいる場所での画面再表示になっているみたいですね
サブフォーム再表示ではどうなりますか?
投票数:0 平均点:0.00

なし Re: 画面再表示について

msg# 1.1.1.1.1.1.1.2.1
depth:
8
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-31 17:03
kyoike  一人前 居住地: M2C  投稿数: 80
伝票ヘッダに戻る時には、サブフォーム再表示を発行すれば、
伝票明細は再表示されます。
しいて問題点といえば、伝票明細のカーソルが先頭行に戻って
しまうことです。

そして、根本的な問題としては、画面再表示がどちらのタスクで
発行されるかわからないので、サブフォームの再表示をすべきか
否かを判断できません。
ちなみに、明細タスクのタスク後処理にサブフォーム再表示を記述
しています。

戻ったタスクが伝票ヘッダの時は、
伝票明細のタスク後処理のサブフォーム再表示

戻ったタスクが伝票明細の時は、
リナンバタスクのタスク後処理の画面再表示

と使いわけられれば、処理のほどこしようがあるのですが...

でも、V10と同じ画面再表示の動きにしてもらうのが、
一番良いのですが。
投票数:0 平均点:0.00

なし Re: 画面再表示について

msg# 1.1.1.1.1.1.1.2.1.1
depth:
9
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-31 18:59
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
ウエイトをYESにするとうまくいきませんか?(レコード後でテストしました。)
投票数:0 平均点:0.00

なし Re: 画面再表示について

msg# 1.1.1.1.1.1.1.2.1.1.1
depth:
10
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-8-3 8:41
kyoike  一人前 居住地: M2C  投稿数: 80
お返事ありがとうございます。

伝票明細タスクのレコード後にある画面再表示の
ウエイトをYESにするのでしょうか?

ちなみに、やってみましたが、駄目でした。
投票数:0 平均点:0.00

なし Re: 画面再表示について

msg# 1.1.1.1.1.1.1.2.1.1.1.1
depth:
11
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-8-3 9:42
ISHIJIMA  長老 居住地: 静岡県  投稿数: 1827
駄目でしたか
私の検証方法としてヘッドで画面再表示が起こった場合と明細で画面再表示が起こった場合でメッセージを出力して確認したら明細のレコード後処理での画面再表示のウエイトをYESに変更した場合はヘッドの画面再表示のメッセージが出なかったものですからできるかなと思いました。
何かちがうのですね
投票数:0 平均点:0.00

なし Re: 画面再表示について

msg# 1.1.1.1.1.1.1.2.1.1.1.1.1
depth:
12
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-8-3 11:22
kyoike  一人前 居住地: M2C  投稿数: 80
UniPaasの仕様(バグ)の変更により、V10と全く同じ動きには
できませんが、様々な試行錯誤を重ねた結果、以下の方法で
処理を実現させました。

1.伝票明細のタスクに、変数を追加(再表示をするか否かのフラグ)
2.伝票明細のレコード後に、上記の変数を'TRUE'に
3.伝票明細のレコード前に、変数が'TRUE'だった場合に限り、
  一旦変数を'FALSE'に戻してから、画面再表示を発行
4.伝票明細のタスク後に、変数が'TRUE'だった場合に限り、
  サブフォーム再表示(パラメタ='伝票明細')を発行

この方法なら、画面再表示は伝票ヘッダのタスクに戻った時は、
実行されず、伝票明細の時だけ発行されます。

また、伝票ヘッダに戻った場合のサブフォーム再表示を発行する
と、伝票明細タスクの明細行が常に先頭行に戻ってしまいます。

伝票ヘッダに戻る際に、いつでもサブフォーム再表示を発行する
と、最後にいじっていた明細行から動いてしまいます。

よって、伝票明細にて明細行を登録前に、伝票ヘッダに戻った
場合のみ、サブフォーム再表示を発行するようにしました。

V10時代との異なる点は、伝票明細の確定前に伝票ヘッダに戻った
場合だけとなり、その他は同じ動きにすることができませい。

ISHIJIMA様、ご相談にのって頂き誠にありがとうございました。

取り急ぎ、ご報告までに...
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約