コントロール検証ロジックについて
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
コントロール検証ロジックについて
msg# 1
yonex_gogogo
投稿数: 12
UnipaasV1Plusからxpa3.2へマイグレーションを行っています。
現在動作検証を行っているのですが、
テーブルにデータを表示してレコード移動させると、
V1Plusはレコードが更新されたときだけコントロール検証が実行され、
xpaはレコードを更新しなくても常にコントロール検証が実行されてしまいます。
これはxpaから仕様が変更されたということなのでしょうか?
現在動作検証を行っているのですが、
テーブルにデータを表示してレコード移動させると、
V1Plusはレコードが更新されたときだけコントロール検証が実行され、
xpaはレコードを更新しなくても常にコントロール検証が実行されてしまいます。
これはxpaから仕様が変更されたということなのでしょうか?
投票数:0
平均点:0.00
Re: コントロール検証ロジックについて
msg# 1.1
sigeno56
投稿数: 336
当方も実験してみました。同じ結果になりました。
修正モードの一覧画面表示。
uniPaaS V1 Plusは、カーソル上下するだけでは
カーソルが位置付いていた項目のコントロール検証も通らない。
xpa3.2は、カーソルが位置付いていた項目のコントロール検証を通る。
修正モードの一覧画面表示。
uniPaaS V1 Plusは、カーソル上下するだけでは
カーソルが位置付いていた項目のコントロール検証も通らない。
xpa3.2は、カーソルが位置付いていた項目のコントロール検証を通る。
投票数:0
平均点:0.00
Re: Re: コントロール検証ロジックについて
msg# 1.1.1
Tanda
投稿数: 2151
正確に言うと、「カーソルが位置付いていた項目以降のコントロール
検証を通る」ですね。
検証を通る」ですね。
投票数:0
平均点:0.00
Re: コントロール検証ロジックについて
msg# 1.2
sigeno56
投稿数: 336
詳しく書きます。xpa3.2cで新規にPGを作成して実験しました。
タスク:オンラインタスク、修正モード。
画面:テーブルコントロールに3項目配置。
ロジック:3項目それぞれコントロール検証を用意し
それぞれエラー警告を表示(フロー CC)
実験:データを修正せずに、1番目の項目にパーキングしている
状態で上下矢印キーで移動。
結果:1項目目のコントロール検証が実行される。
-----------
uniPaaS V1 Plusで同じ実験を行った。
xpa3.2との違い:1項目目のコントロール検証が実行されない。
タスク:オンラインタスク、修正モード。
画面:テーブルコントロールに3項目配置。
ロジック:3項目それぞれコントロール検証を用意し
それぞれエラー警告を表示(フロー CC)
実験:データを修正せずに、1番目の項目にパーキングしている
状態で上下矢印キーで移動。
結果:1項目目のコントロール検証が実行される。
-----------
uniPaaS V1 Plusで同じ実験を行った。
xpa3.2との違い:1項目目のコントロール検証が実行されない。
投票数:0
平均点:0.00
Re: Re: コントロール検証ロジックについて
msg# 1.2.1
Tanda
投稿数: 2151
正確に言うと、ちょっと違います。
1項目目にカーソルを置いてテストするだけでなく、2項目目とか
3項目目にもカーソルを置いて、下矢印キーを押してみてください。
そうすれば、理屈がよく理解できますよ。
1項目目にカーソルを置いてテストするだけでなく、2項目目とか
3項目目にもカーソルを置いて、下矢印キーを押してみてください。
そうすれば、理屈がよく理解できますよ。
投票数:0
平均点:0.00
Re: コントロール検証ロジックについて
msg# 1.3
Tanda
投稿数: 2151
xpa3.2でテストした結果です。
1. レコードが更新されたときは現在位置以降のコントロール検証と、
次レコードの先頭からカーソルパーキング位置までの全コントール
検証が実行されます。
2. レコードが更新されてないときは、次レコードの先頭からカーソル
パーキング位置までの全コントール検証が実行されます。
1. レコードが更新されたときは現在位置以降のコントロール検証と、
次レコードの先頭からカーソルパーキング位置までの全コントール
検証が実行されます。
2. レコードが更新されてないときは、次レコードの先頭からカーソル
パーキング位置までの全コントール検証が実行されます。
投票数:0
平均点:0.00
Re: コントロール検証ロジックについて
msg# 1.4
sigeno56
投稿数: 336
Tanda様 こんにちは。
APG一覧画面で作ったような画面でも
先頭項目にパーキングしている状態で
レコードを変更させずに
下矢印キーで降りるだけの動作で、
uniPaaS V1 Plus と
xpa3.2で
コントロール検証に違いがあるように思います。
uniPaaS V1 Plusは先頭項目パーキングで
値を変更せずに
下矢印キーで降りて
そのパーキング中の項目(先頭項目)の
コントロール検証が実行されませんでした。
xpa3.2は先頭項目パーキングで
値を変更せずに
下矢印キーで降りて
そのパーキング中の項目(先頭項目)の
コントロール検証が実行されました。
3.2でパッチ当てておりません。
APG一覧画面で作ったような画面でも
先頭項目にパーキングしている状態で
レコードを変更させずに
下矢印キーで降りるだけの動作で、
uniPaaS V1 Plus と
xpa3.2で
コントロール検証に違いがあるように思います。
uniPaaS V1 Plusは先頭項目パーキングで
値を変更せずに
下矢印キーで降りて
そのパーキング中の項目(先頭項目)の
コントロール検証が実行されませんでした。
xpa3.2は先頭項目パーキングで
値を変更せずに
下矢印キーで降りて
そのパーキング中の項目(先頭項目)の
コントロール検証が実行されました。
3.2でパッチ当てておりません。
投票数:0
平均点:0.00
Re: Re: コントロール検証ロジックについて
msg# 1.4.1
ISHIJIMA
居住地: 静岡県
投稿数: 1827
削除
投票数:0
平均点:0.00
Re: Re: コントロール検証ロジックについて
msg# 1.4.2
Tanda
投稿数: 2151
コントロール検証は、そのコントロールに入るときに実行されるの
ではなく、そのコントロールを出るとき、およびそのコントロールの
上空を通過するときに実行されます。
ではなく、そのコントロールを出るとき、およびそのコントロールの
上空を通過するときに実行されます。
投票数:0
平均点:0.00
Re: コントロール検証ロジックについて
msg# 1.5
ISHIJIMA
居住地: 静岡県
投稿数: 1827
テクニカル情報の2001787だと検証されない事が問題で制限事項となっています。
コントロール検証にかかるようになっているのが正常だという事なのでしょうか・・・・・
コントロール検証にかかるようになっているのが正常だという事なのでしょうか・・・・・
投票数:0
平均点:0.00
Re: Re: コントロール検証ロジックについて
msg# 1.5.1
Tanda
投稿数: 2151
そうですね、そのテクニカル情報が正しいですね。
投票数:0
平均点:0.00
Re: コントロール検証ロジックについて
msg# 1.6
sigeno56
投稿数: 336
uniPaaS V1 Plusが
本来実行すべきコントロール検証を実行していなかった!
という事で結論付けていいという事でしょうね。
xpaで動作が変わったといえばその通りで、
xpaが本来あるべき動きをしているという事ですもんね。
本来実行すべきコントロール検証を実行していなかった!
という事で結論付けていいという事でしょうね。
xpaで動作が変わったといえばその通りで、
xpaが本来あるべき動きをしているという事ですもんね。
投票数:0
平均点:0.00
Re: コントロール検証ロジックについて
msg# 1.6.1
yonex_gogogo
投稿数: 12
sigeno56さん、Tanda さん、ISHIJIMAさん
返信ありがとうございます。
ISHIJIMAさんご指摘のテクニカル情報を参照させて頂きました。
まさに今回の事例に当てはまる内容のようですね。
V1Plusでは、更新、未更新レコードに関わらず
カーソル上下で行移動した場合はコントロール検証は実行されませんでしたが、
マウスで行移動した場合は、xpaと同様にコントロール検証が実行されました。
このカーソル上下で行移動の動作がV1Plusの制限事項になっていたということで、
xpaで正しく修正されたんですね。
こちらでは、Magicルールとして「レコード移動時は項目を更新した時だけしか
コントロール検証は通らない」と思い込んでおりました。
現在、検証中の問題として、任意のコードを入力するテーブルを開いて
コントロール検証で未登録コードエラーを表示しているのですが、
元々未登録コードとして既に登録されていたレコードにカーソルが止まると
キャンセルイベント等を発行してもエラーから抜けられなくなってしまうことが
問題になっています。
処置として「未登録コードとして既に登録されていたレコード」を無くしてから
コード入力させればよいのですが、とりあえずViewMod関数でレコード修正時しか
コントロール検証を行わせないことで対応しようと思っています。
返信ありがとうございます。
ISHIJIMAさんご指摘のテクニカル情報を参照させて頂きました。
まさに今回の事例に当てはまる内容のようですね。
V1Plusでは、更新、未更新レコードに関わらず
カーソル上下で行移動した場合はコントロール検証は実行されませんでしたが、
マウスで行移動した場合は、xpaと同様にコントロール検証が実行されました。
このカーソル上下で行移動の動作がV1Plusの制限事項になっていたということで、
xpaで正しく修正されたんですね。
こちらでは、Magicルールとして「レコード移動時は項目を更新した時だけしか
コントロール検証は通らない」と思い込んでおりました。
現在、検証中の問題として、任意のコードを入力するテーブルを開いて
コントロール検証で未登録コードエラーを表示しているのですが、
元々未登録コードとして既に登録されていたレコードにカーソルが止まると
キャンセルイベント等を発行してもエラーから抜けられなくなってしまうことが
問題になっています。
処置として「未登録コードとして既に登録されていたレコード」を無くしてから
コード入力させればよいのですが、とりあえずViewMod関数でレコード修正時しか
コントロール検証を行わせないことで対応しようと思っています。
投票数:0
平均点:0.00
Re: Re: コントロール検証ロジックについて
msg# 1.6.2
Tanda
投稿数: 2151
コントロール検証については、ヘルプ記載の次の説明が一番わかり
やすいですね。
コントロール検証
[コントロール検証]ロジックユニットは以下の状況の場合に実行
されます:
●検証対象のコントロール、またはそれよりも前にあるコントロール
から、他のレコードにスキップする際に実行されます。この場合、
レコードに変更がある場合にのみ実行されます。
●ユーザがコントロールから抜ける場合に、コントロール後の直前
に実行されます。
●ユーザが検証対象のコントロールを超えてスキップした場合に実行
されます。これは同一レコード内で該当するコントロールより前に
あるコントロールから後にあるコントロールへ、あるいはその逆に
スキップが行われた時に実行されます。
●検証対象のハンドラが設定されたコントロールより後ろにある他の
レコードのコントロールへスキップした場合、新しいレコードの該当
コントロールに対してロジックユニットが実行されます。
●[コントロール検証]ロジックユニットは、コントロールを抜ける
場合、新しく入力されたデータが更新され、関連するデータ項目と
それに依存する式の再計算が一度行われた後に、コントロール後の
直前に実行されます。
やすいですね。
コントロール検証
[コントロール検証]ロジックユニットは以下の状況の場合に実行
されます:
●検証対象のコントロール、またはそれよりも前にあるコントロール
から、他のレコードにスキップする際に実行されます。この場合、
レコードに変更がある場合にのみ実行されます。
●ユーザがコントロールから抜ける場合に、コントロール後の直前
に実行されます。
●ユーザが検証対象のコントロールを超えてスキップした場合に実行
されます。これは同一レコード内で該当するコントロールより前に
あるコントロールから後にあるコントロールへ、あるいはその逆に
スキップが行われた時に実行されます。
●検証対象のハンドラが設定されたコントロールより後ろにある他の
レコードのコントロールへスキップした場合、新しいレコードの該当
コントロールに対してロジックユニットが実行されます。
●[コントロール検証]ロジックユニットは、コントロールを抜ける
場合、新しく入力されたデータが更新され、関連するデータ項目と
それに依存する式の再計算が一度行われた後に、コントロール後の
直前に実行されます。
投票数:0
平均点:0.00