過去の桐井戸端BBS (桐ver.8)
25125 共有参照表のフォームで変数をソースとするテキストオブジェクトを更新モードで開きたい 宮城 2004/02/26-10:44
表を検索するフォームです。
表自身を更新させるつもりはないので共有参照としています。
検索キーとして変数をソースとするテキストを配置しており
当然のことながら即入力したいのです。

ところが、フォーカスを設定し更新モードを2(訂正モード)としても領域全体が黒くなった状態で即入力できません。
(表が共有参照だから?) 
マウスクリックかスペースバーで入力可能な状態になりますが、テンキー部から指を離したくないのです。
キー割り当てを変えるのも最後の手段ということで、なにかいい手はないでしょうか。

共有更新にもしてみましたが、一覧表形式フォームとしており
「レコードはロックされています」とのダイアログがぱかぱか開きよろしくありません。

V8 SP7です。
25133 Re:共有参照表のフォームと更新モード 通りすがり 2004/02/26-17:29
記事番号25125へのコメント
更新モード設定を使わず、フォーカスがあたったら、KEVでコマンドボタン(ダミー)を実行して訂正モードにするとか?

あるいは、同様にフォーカスがあたったらタイマイベントを動かし、
そこで更新モード設定を実行するとか?(迂回技?)。

25140 Re:共有参照表のフォームと更新モード 宮城 2004/02/26-20:14
記事番号25133へのコメント
通りすがりさん、リプライありがとうございます。
やりかたがまずいのかうまくいきません。

1.コマンドボタン案
「ダミー」というボタン配置。機能名は「表示/訂正」
KEVは

手続き定義開始 t検索ID::フォーカス取得(文字列 &喪失オブジェクト名)
 メソッド呼び出し @ダミー.実行()
手続き定義終了

領域は黒のまま。見えるボタンにしましたが押せません。テキストをクリックすると、引っ込む(のがいまいましい!)。

2.タイマー案

手続き定義開始 t検索ID::フォーカス取得(文字列 &喪失オブジェクト名)
 手続き実行 フォーム::タイマー1()
手続き定義終了

手続き定義開始 フォーム::タイマー()
 メソッド呼び出し @フォーム.更新モード設定(2)
手続き定義終了

という KEV。

やはり領域は黒のままです。

(記述・設定にミスがあればご教示ください>)

25155 共有更新ではだめですか 今村 誠 2004/02/26-22:35
記事番号25125へのコメント
宮城さんこんにちは、一括処理から共有参照でフォーム形式編集と
フォーム呼び出しとウィンド会話でテストしましたが、
いずれも訂正モードにはなりませんでした。
共有更新であれば、簡単に訂正モードにも変わるし、
変数をソースとするテキストでソース値更新で表示モードに変更して検索できます。
宮城さんのお書きになっている以下の部分

>共有更新にもしてみましたが、一覧表形式フォームとしており「レコードは
>ロックされています」とのダイアログがぱかぱか開きよろしくありません。

は桐9では再現できません。1台で試験しているからなのかもしれません。
テスト用のサンプルをアップされると解決が早いかもしれません。

こちらで共有更新でうまくいった記述を以下に書きます。

名札 メイン

 object @フォーム.タイマー値1 = "0.30"
 object @フォーム.タイマー1 = "1"


手続き定義開始 フォーム::タイマー1()
 object @フォーム.タイマー1 = "0" /* タイマー1をoffにします */
 method @c訂正.実行()  /* フォームタイマーは半角*/
手続き定義終了
手続き定義開始 t検索ID::ソース値更新()
 method @フォーム.更新モード設定(0) /* ソースは半角*/
 object @フォーム.行訂正 = "0" /* フォームは半角*/
 検索 [検索ID] _&STR, 文字比較方法=自動, 部分一致検索=先頭一致
手続き定義終了

コマンドボタン c訂正
機能  パラメータ
表示  確定する
訂正  "t検索ID"

25158 Re:共有参照表のフォームと更新モード 佐田 守弘 2004/02/27-00:08
記事番号25125へのコメント
宮城さん
たまたま同じ様なものを作っているのですが、テキストオブジェクトに
フォーカスを移動してから、メソッド呼び出しで更新モードを訂正に
変更しようとしても、切り替わらない様ですね。

佐田守弘(KS-00119)
25160 Re:共有参照表のフォームと更新モード 宮城 2004/02/27-01:10
記事番号25158へのコメント
今村さん、佐田さん、どうもです。やっぱり共有参照の表がネックでしょうか。

>>共有更新にもしてみましたが、一覧表形式フォームとしており「レコードは
>>ロックされています」とのダイアログがぱかぱか開きよろしくありません。

>は桐9では再現できません。1台で試験しているからなのかもしれません。
>テスト用のサンプルをアップされると解決が早いかもしれません。

これは説明不十分でした。検索といっているのは実は一覧表を表示させておいて入力したキーで
絞り込みをかけているのです。
確認できたら「絞り込み 解除」 つまり、誰かがとりあえずフォームを開いたり、
「検索」後「OK」って絞り込みを解除すると先頭行でロック。
そこへ誰かがフォームを開くと行位置は当然先頭行へ行きますから
「ロックされてるよ」と桐が教えてくれる。
「そうかい」って Enter押せばいいのですが、そうやってユーザーに押しつける度胸がないもので。

蛇の道。共有「更新」で開き、その都度乱数で適当なレコードに吹っ飛ばす。
一覧表オブジェクトにはフォーカス設定を禁じておいて、
行削除・行挿入等をできないようにしておくとか。

V8 SP7では「ダメよ」って PDFのレファランスにある「更新モード設定(8)(項目訂正モード)」、
V9でもダメだとすると、V10か2005ででは実現してほしいですね。

# もう少し補足。主たる業務は磁気カードリーダー使用を想定してい
# ます。キーボードインターフェースのお手頃なの(実売価格 less
# 5万円)があってそれで使う分には同時に訂正モードだか項目訂正
# モードだかになってくれるようで問題ありません。問題は手入力の
# ときなのです。テンキー「/」「−」のキー割付かえようかなあ。

25161 Re:共有参照表のフォームと更新モード 尾形 2004/02/27-07:11
記事番号25160へのコメント
どうも、こんにちは

既に考え済みかもしれませんが
キー入力コマンドあたりで代用できないでしょうか?
無理ですかね

25162 Re:共有参照表のフォームと更新モード hidetake 2004/02/27-08:38
記事番号25160へのコメント
>V8 SP7では「ダメよ」って PDFのレファランスにある「更新モード
>設定(8)(項目訂正モード)」、V9でもダメだとすると、V10か2005
>ででは実現してほしいですね。

桐ver9 sp1 なら,ちょっと難解な動きをするけど一部可能なようです。

まず,テーブルに連結されたオブジェクトはタブストップ禁止&フォーカス禁止に設定しておく。
あるいは,項目の指定で ([項目]) と編集不可能な状態にしておく。
次に,変数をソースにしたオブジェクトにはフォーカス取得イベントに
メソッド呼び出し @フォーム.更新モード設定( 2 )
なり
メソッド呼び出し @フォーム.更新モード設定( 8 )
を設定しておく。
最後にコマンドボタンとして,「フォーカス移動::該当オブジェクト」
「訂正::該当オブジェクト」の機能を設定しておき,それをフォーム開始時の実行コマンドとして登録する。

以上の操作でフォームを開くと即入力状態になるようです。


ただ,一旦入力モードを外れるとちょっと変?

フォーカス可能なオブジェクトとして,コマンドボタンと変数に連結した
テキストオブジェクトがあったとして,コマンドボタンからのフォーカス移動では更新モードが働かない・・・
あとは,キーダウンイベントに該当オブジェクトへのフォーカス移動と
@フォーム.更新モード設定( 2 ) を設定しても良いけど,そのままでは最初の
1文字が入力されませんね。
あとはタイマー使ったり,いろいろ組み合わせの力業か? ヽ(;´o`)丿
25163 Re:共有参照表のフォームと更新モード hidetake 2004/02/27-08:43
記事番号25162へのコメント
>>V8 SP7では「ダメよ」って PDFのレファランスにある「更新モード
>>設定(8)(項目訂正モード)」、V9でもダメだとすると、V10か2005
>>ででは実現してほしいですね。
>
>桐ver9 sp1 なら,ちょっと難解な動きをするけど一部可能なようです。
>

ちなみに桐ver8 sp7 で似たような事はさせてみたけど,
このようにはならなかった(入力モードにはできなかった)です。
25165 Re:共有参照表のフォームと更新モード 通りすがり 2004/02/27-10:07
記事番号25125へのコメント
発想を変えて・・・

この入力させたい部分(表なし)を「サブフォーム」に持って、それを配置したら?
あたかもテキストボックスのように見せかける!
これなら、「訂正ボタン」が仕様不可の反転をしません。
でも、キー操作だけで「タンタンタン〜」とフォーカスを制御するのが大変?

おそらく、変数で検索条件などと入力させて、参照共有表を操作したいんでしょうから。

ちょっと面倒な方法ですけど。
25166 Re:共有参照表のフォームと更新モード 宮城 2004/02/27-12:23
記事番号25165へのコメント
尾形さん、hidetakeさん、通りすがりさん、どうもです。

「キー入力」はやってませんが、「文字入力」(初めてやってみた)は何も起こらずダメのようです。

V9で更新モード設定(8)が可能になってるのにだめなんですか。うぅん。

やっぱり、「タンタンタン〜」といきたいです。

ということで、やっぱり蛇の道、共有更新で乱数ジャンプとしました。

 &レコード数=#総件数
 &数値ダミー=#切り捨て(&レコード数*#乱数(1),0)+1
 ジャンプ 行番号=&数値ダミー

これをフォーム開始部、2、3行を解除ボタンクリック部に記述。フォームは一覧表オブジェクトをフォーカス設定禁止にし、
表の許可作業の行挿入、行訂正、行削除のチェックを外す。

# 万の単位のレコードがあるので、これで「ロック」表示が出たら「大当たり!」

# 「最初に表示してるレコードは何?」と聞かれたら、「てきと〜」に表示してるか
# ら気にしないでって言うしかないか。
25167 Re:共有参照表のフォームと更新モード 通りすがり 2004/02/27-13:18
記事番号25166へのコメント
>共有更新で

まっ、それはそれで解決できたので、いいとして、本件のテーマは、

「共有参照」で、変数の入ったテキストボックスを「タンタンタン」と「訂正モード」にすることだと思います。

うまく迂回技があれば、重宝すると思うのですが(^^ゞ


25168 Re:共有参照表のフォームと更新モード hidetake 2004/02/27-13:59
記事番号25167へのコメント
>「共有参照」で、変数の入ったテキストボックスを「タンタンタン」と「訂正モード」にする
>ことだと思います。

>うまく迂回技があれば、重宝すると思うのですが(^^ゞ

一番手っ取り早く簡単なのは尾形さんが書いた方法では無いですか?
更新モード設定する代わりにキー入力コマンドで入力させる・・・

もう少し細かい表現や入力位置を希望するなら別のフォーム作って
重ね合わせるとか?


それと,共有更新で開くにしても,既存のレコードで訂正モードに入るのではなく,
終端行でやった方が良いと思う。何でも項目に
データが設定されないようにしておけば,変数に文字列が代入され
確定されても,新規レコードは追加されないのでは?
その場合は行訂正でなく行追加になりますかね?
25169 Re:共有参照表のフォームと更新モード 通りすがり 2004/02/27-14:09
記事番号25168へのコメント
「共有参照」って表に対するアクションの規制ですが、それを変数だけのテキストボックスにまで適用する?ってのがどうも・・・。

まあ、表に対しては、何もさせまい、見せるだけだよ?っていう制限なんだろうけど。

表に訂正などのアクションが生じた時にだけ、「できね〜」ってメッセージを出して欲しかったりします。
(^^ゞ


25170 Re:共有参照表のフォームと更新モード 通りすがり 2004/02/27-14:14
記事番号25169へのコメント
そうか、訂正モードってフォームが出す命令?だから、参照モードでは、フォーム自体が規制をかけるって訳か?
じゃ、マウスクリックとスペースキーによる訂正モードが可能なのは、どういった仕様なんだろう?

25174 Re:共有参照表のフォームと更新モード 宮城 2004/02/28-09:25
記事番号25170へのコメント
ひょっとしてと思って、オブジェクト操作で、背景色とか変数自体(同じ変数)変えてみましたが、
テキストが黒く反転したままでダメ。
スペースバーかクリックで捜査結果は反映されるようですが。


25177 Re:共有参照表のフォームと更新モード 佐田 守弘 2004/02/28-21:42
記事番号25160へのコメント
宮城さん
 >今村さん、佐田さん、どうもです。やっぱり共有参照の表がネックで
 >しょうか。
共有参照に関係ない様ですよ。
私が作っていた同じ様なものは、専有更新で開いています。

佐田守弘(KS-00119)

作成中のものは、不祝儀のためしらばく中断しております。
また解りましたら、コメントします。

戻る