テーブルのカラムソート
こんにちはPuです
テーブルコントロールの列のプロパティでソート=Trueにした時
unipaasの時は並び変わっても違和感なく表示されてるんですが(カレントがtopにある)
xpaになってからカレントが何処にあるのか
どの様に説明したらよいのか...表示件数がまちまちで毎回スクロールUPしないと
ダメなんですが、unipaasと同じような表示にできないんでしょうか
アドバイス頂ければ幸いです。
でわ~でわ~
-
ISHIJIMAさん 早速のRESありがとうございます。
簡単な雑プロ作って実験してみましたがunipaasと同じような表示にはなりませんでした。
Xpa4.6.1 PT3です。
画像は単純にTBL表示のPG作って初期表示した時の画面と
製品の列をクリックしてSORTした時の画面です、何件か上の方に行っていてPageUPしないとTOPにいきません。

-
Puさん、
xpa 4.6.1と4.7.1の両方で試してみましたが、ソート後は元のカレントレコードが先頭行に来た状態で正常に表示されましたよ。
どこか、動作環境設定に違いがあるのではないでしょうか。
-
Puさん、
ひとつ分かったことがあります。
Puさんが言われるように、列のプロパティで「Sort可:True」にした場合の動きと、もうひとつはタスク実行時のプルダウンメニューから「オプション」→「ソート」を選んだ場合とでは動きが異なるようですね。列のプロパティで操作した場合は、正しくカレントが先頭に来るようです。
-
皆さん色々確かめて頂き感謝します。
列のプロパティで「Sort可:True」にした場合です。
列SORTの後先頭のレコードが真ん中に行ってしまったらそこにフォーカスが当たる動作ですね
unipaasも同じでした。私の勘違いでした失礼しました、
列SORTの後先頭にフォーカスが当たれば良いのですが
でわ~でわ~ -
Puさん、私のところではソート実行後に、ちゃんとカレントが先頭行に来て、そこにフォーカスが当たりますよ。
ひょっとして、動作環境テーブルの「動作設定」→「オンラインで画面中央位置付」の欄の設定が「Yes」になっているということはありませんか?ここが「Yes」になっていると、Puさんが指摘されているような動作になると思います。
-
丹田さん、こんにちは
「動作設定」→「オンラインで画面中央位置付」の欄の設定が「No」です。
でわ~でわ~ -
Puさん、私のところでの動作検証は、xpaの各バージョンに添付されているデフォルトの動作環境設定(デフォルトのmgic.ini)のままで確認していますので、Puさんのところで使用されているmagic.iniが旧バージョンからの移植とかで、どこか設定が異なっているとかいうことはありませんでしょうか?
一度、xpa 4.6.1添付のデフォルトmagic.iniで検証されることをお勧めします。
-
あと、もう一点、気になったのは、そのタスクのタスク特性の「動作」→「ウィンドウ再表示」の設定はどうなっていますか?ここの設定如何によっても、画面再表示の動作が異なるようです。
いずれにしても、カレントレコードがテーブルの中央に来るところまでは正常動作が確認できたようですので、解決まであと一息のようですね。頑張ってください。
-
Puさん、さらにもう一点です。
>「動作設定」→「オンラインで画面中央位置付」の欄の設定が「No」です。
ここの設定を明示的に「Yes」に変更して、もう一度「No」に戻してみてはいかがでしょうか?旧資産を受け継いでいるmagic.iniの場合、設定を明示的に再設定することで、直ることもあったと思います。
ついでに、その設定を「Yes」に変えたときに、ちゃんと動作が「Yes」の動きに変わるかどうかも検証してみられるといいと思います。
-
丹田さん、こんにちは
全て試しましたが結果は変わらずでした。
恐らくこの動作が正しいのかと、カラムソート後TOPにカレントが行けば解決なんですが
でわ~でわ~ -
Puさん、私のところでは問題なく正常に表示されていますよ。すべてxpaのデフォルト設定のままです。
●ソート前の画面(カーソルが「ぶどう」にある状態で列名をクリック)

●ソート後の画面(ソートされて「ぶどう」がテーブルの先頭行に表示)

-
Puさん、
> 全て試しましたが結果は変わらずでした。
ということは、「オンラインで画面中央位置付」の欄の設定を「Yes」に変えても「No」に変えても、動作は変わらないということでしょうか?もしそうだとしたら、どこかPuさんのところの環境が変になっているのかと思いますよ。私のところでは「Yes」であるか「No」であるかで、正しく動作が切り替わりますよ。
-
丹田さん、こんにちは
違います、バナナにフォーカスがある状態(常にTOPにフォーカス)で列名クリックで
ぶどうにフォーカスが(常にTOPにフォーカス)あってほしいんです
でわ~でわ~ -
Puさん、確認できるように、画像をもう1枚添付します。
「オンラインで画面中央位置付」の欄の設定を「Yes」にすると、ソート後の画面で「ぶどう」が画面の中央に自動的に配置されます。

-
Puさん、
> バナナにフォーカスがある状態(常にTOPにフォーカス)で列名クリックで
> ぶどうにフォーカスがこれの意味がちょっと分からないのですが、お客様はどういう動きを希望されておられるのでしょうか?ソートしたときに、「バナナ」の並びの前後関係を把握したい、それともソートしたときに「ぶどう」の並びの前後関係を把握したい??
-
丹田さん、こんにちは
単純にtopにフォーカスがある状態を維持いたいだけです
例えば 商品CD=1がリンゴであるなら(リンゴがソートで最終とすると) 最初表示された時リンゴがtopに表示されるはずです
その状態で列をクリックするとフォーカスがリンゴに行き1件しか表示されないと思います
常にtopにフォーカスがあってほしいだけです。
でわ~でわ~ -
Puさん、
そういうことでしたら、一度、プルダウンメニューからのソート実行を試してみてください。タスクを実行した状態で、プルダウンメニューの「オプション」→「ソート」で「商品CD」を指定します。
すると、この場合、ソート結果は単純ソートで表示され、元の位置付けや、元にフォーカスが当たっていたレコードとかはすべて無視されます。
-
もし、Puさんのお望みの動きがPervasiveでしか実現できないとなると、ちょっと残念ですね。列のプロパティの「ソート:可」のオプションに、「フォーカスを維持しない」とかのオプションが追加されるといいですね。
もしくは、別の方法でソートイベントを発動したときに、「ソートダイアログを表示せずに実行」とかのオプションが追加されるといいですね。そうすれば、プログラムがかなり簡素化されると思います。
-
この動作が普通と言う事で納得しました。
ただユーザービリティを考えたらカラムソートの方が良いですね。
わざわざプルダウン=>オプション==>ソートより1クリックで並び変わるので
結構な列に設定してますので。フォーカスをtopにとかのオプションが追加される事を期待します。
jqueryなんかのライブラリーのテーブルなどは、この手のカラムソート機能やページ、次ページなどの
機能など機能が結構豊富なので
皆さんお付き合い頂きありがとうございました。
でわ~でわ~ -
話が逸れてしまいますが、表形式の画面には客も分かり易いよう
▲△▽▼といったボタンを貼り付ける事があります。
それぞれテーブル先頭、前ページ、次ページ、テーブル末尾イベントを設定するといった感じです。 -
Puさん、
ちょっとプログラムを作ってみました。
下記のようにロジックを書けば、Puさんのお望みの動きになりますよ。
-
丹田さん、ありがとうございます。
すごいです。別の意味でプログラムの勉強になりました。
ただもう一度クリックしてもASD,DSCDの切り替えにならないので...
最近言語系ばかりなので改めてMagicの凄さを実感しました。
でわ~でわ~ -
はい、ISHIJIMAさんが言われているように、フラッグで制御すればトグルできると思いますよ。Magicは本当に面白いと思います。やめられないですね(笑
サインインしてコメントを残してください。
コメント
23件のコメント