Android テーブルコントロールでのビュー再表示
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
shhashin
投稿数: 64
![常連 常連](../../uploads/rank3dbf8e9e7d88d.gif)
Androidのテーブルコントロールから対象のレコードを更新するプログラムを呼び出し、更新後に親プログラムに戻りビュー再表示のイベントを実行するイベントを行っています。
テーブルコントロールの表示を更新後の結果を表示する為に、ビュー再表示を行っているのですが、必ず先頭レコードに位置づけられてしまいます。
再位置付モードは「0:最後にパークした・・・」にしているのですが先頭レコードに位置付きます。
Androidでは再位置付モード「0:最後にパークした・・・」は無効なのでしょうか?
xpa 2.5b
android 6.0
テーブルコントロールの表示を更新後の結果を表示する為に、ビュー再表示を行っているのですが、必ず先頭レコードに位置づけられてしまいます。
再位置付モードは「0:最後にパークした・・・」にしているのですが先頭レコードに位置付きます。
Androidでは再位置付モード「0:最後にパークした・・・」は無効なのでしょうか?
xpa 2.5b
android 6.0
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
shhashinさん、
「ビュー再表示」イベントは最近、機能が追加されていまして、
下記の3つのオプションから選択できるようになっています。
その影響かもしれませんね。
0 …… 最後にパークしたレコードに再位置付けされます
(デフォルト)。パラメータが渡されなかったり、「1」か「2」
以外の場合、「0」と見なされます。
1 …… タスクの位置付け指定に基づいて再位置付けされます。
2 …… 位置付けされません。新しいビューの先頭のレコードに
位置付けされます。
「ビュー再表示」イベントは最近、機能が追加されていまして、
下記の3つのオプションから選択できるようになっています。
その影響かもしれませんね。
0 …… 最後にパークしたレコードに再位置付けされます
(デフォルト)。パラメータが渡されなかったり、「1」か「2」
以外の場合、「0」と見なされます。
1 …… タスクの位置付け指定に基づいて再位置付けされます。
2 …… 位置付けされません。新しいビューの先頭のレコードに
位置付けされます。
投票数:0
平均点:0.00
nkmt
投稿数: 1668
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
(元のご質問投稿が12月16日なので、既に解決済みかもしれませんがTandaさんがコメントしていらっしゃいますので私もついでに。)
そのサブタスク自身か
あるいはさらに下位のタスクから、そのサブタスクに対してのビュー再表示イベントであれば、パラメータで指定した動きをするような気がします。
(今はテストする環境が無いので検証は出来ていません。)
上位タスクに戻って、またサブタスクに戻る作りでないといけないのであれば、親タスク側に 位置付け用の変数を配置して、位置付け式を設定して、その場所に位置付くようにするのも一つの手段なのかもしれません。(位置付け用の項目が1つであれば位置付けも容易なんでしょうね。)
そのサブタスク自身か
あるいはさらに下位のタスクから、そのサブタスクに対してのビュー再表示イベントであれば、パラメータで指定した動きをするような気がします。
(今はテストする環境が無いので検証は出来ていません。)
上位タスクに戻って、またサブタスクに戻る作りでないといけないのであれば、親タスク側に 位置付け用の変数を配置して、位置付け式を設定して、その場所に位置付くようにするのも一つの手段なのかもしれません。(位置付け用の項目が1つであれば位置付けも容易なんでしょうね。)
投票数:0
平均点:0.00
TKitabayashi
投稿数: 90
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
私も再位置付モードに0を渡しても、先頭レコードに位置付てしまい、困りました。
そこで、LocateAdd関数を使って対応しています。
ビュー再表示を起こす前に、位置付たい場所の値をLocateAddで渡しています。
すると、位置付したいところにカーソルがとまってくれました。
そこで、LocateAdd関数を使って対応しています。
ビュー再表示を起こす前に、位置付たい場所の値をLocateAddで渡しています。
すると、位置付したいところにカーソルがとまってくれました。
投票数:1
平均点:10.00
shhashin
投稿数: 64
![常連 常連](../../uploads/rank3dbf8e9e7d88d.gif)
Tandaさん、nkmtさん、TKitabayashiさん
解決せずに運用で逃げようを思っていましたが、プログラムを見直してみました。
結論をいうと、
テーブル内で照会リンクテーブルを含めたソートを指定していたことが原因でした。(しかも照会テーブルで範囲指定もしていた)
TKitabayashiさんから教えていただいたLocateAdd関数も試してみたのですが、うまくいきませんでした。
そこで、ワークテーブルを作成し、インデックスを希望のソートに指定して実行したところ、ビュー再表示のみで位置付けできることを確認しました。
ありがとうございます。
解決せずに運用で逃げようを思っていましたが、プログラムを見直してみました。
結論をいうと、
テーブル内で照会リンクテーブルを含めたソートを指定していたことが原因でした。(しかも照会テーブルで範囲指定もしていた)
TKitabayashiさんから教えていただいたLocateAdd関数も試してみたのですが、うまくいきませんでした。
そこで、ワークテーブルを作成し、インデックスを希望のソートに指定して実行したところ、ビュー再表示のみで位置付けできることを確認しました。
ありがとうございます。
投票数:1
平均点:10.00