みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
タブ順で次のフィールドに移動は、タブ順を使っているので変更はだめとのことでした。
結局フィールド移動を計算式ですることはできないわけですか。
Offline
専用のレイアウトを作り、
目的のレコードへ行ったら元のレイアウトに戻る。
レイアウトメニューに挙げなければ誰もその存在が分かりません。
> Exit Loop if(Get(アクティブフィールド名)=”製品30”)
これが動かない理由は分かりませんが、、
”製品30”
余分なスペースが入っている
全角半角の違い
ぐらいか?
Offline
既存のタブ順に含まれてるなら、全部移動してみればいいですが...含まれてないならだめですね。
めんどくさいけどオブジェクト名を付ければいいのでは。
それか、既に書かれてるようにフィールドへカーソルを移動しないでスクリプトでデータを直接入力する。
NTTのなんたら、は多分RPAでしょうから、スクリプト実行の引数で設定したい値を渡す、とかでできるんじゃないかな。
Exit Loop if(Get(アクティブフィールド名)=”製品30”)の式であってますよね。
タブ順でとぶフィールドは空白もあるので使えません。
空きフィールドを見つけるだけなので、ここにデータをスクリプトでいれるということはありません。
もちろん、空きフィールドに手作業でデータを入れるのです。
画面をみれば空きフィールドは一目でわかるわけですから、NTTのなんちゃらを使わなければ全く必要のないことなんです。
Offline
Get(アクティブフィールド名)
これでどこかのフィールドに入力、それをコピーとか、
フィールドラベルをコピーとか、
してみたらいかがでしょう。
移動の方法は
タブ順か、
オブジェクト名
どちらかしかないんじゃないかな。。
Offline
>タブ順でとぶフィールドは空白もあるので使えません。
全フィールドをループして、フィールド名を見て最初のフィールドと同じになるか、製品xxでしかもフィールド値が空白だったら終了、でいいのでは。
製品xxのタブ順が番号順になってなかったら、だめか。。。それはさすがにないと思うけど。。。
この際、繰り返し30に変えたほうがいいかも...
フィールドへの移動のオブジェクト名でというのはどうするのでしょうか?
現在使っているタブ順は製品XXの横のフィールドに移動するのでちょっとつかえないです。
Offline
レイアウトモードのインスペクタかオブジェクトリストでオブジェクト名を付けられます。
「オブジェクトへ移動」のスクリプトステップは移動先の名前を計算式で指定できます。
タブ順で横のフィールドに移動しても判定でスキップするので、それは問題ないですよ。肝心なのは製品xx同士でのタブ順だけです。
オブジェクト名はわかりました。しかしこれで計算式で指定できるとしても、すべてのフィールドにオブジェクト名をつけないといけないのですね。うーん。タブ順はフィールドの判定をして次にいくわけですが、フィールドにデータがあるかないかだけなので、製品XX以外のフィールドもひっかかってしまいます。
Offline
タブ順については、、
現在のレイアウトでタブ順を変えたくない。
と条件を付けられたので、
前にも書いた通り、
スクリプト実行だけで使うレイアウトを作ればいいでしょう。
スクリプトで
専用のレイアウトに移動
空白のフィールドに行く
元のレイアウトに戻る
この手順でいいのでは。
オブジェクト名は、
例えば、
1,2,3,・・・
でも大丈夫ですよ。
Offline
Get(アクティブフィールド名)の判定がうまく行ってないのを解決しないとだめですね。
データビューアなどで値を見れば何がまずいのかわかるはずですけど
レイアウトを切り替えるとレコード確定してフィールドがアクティブでなくなります。
色々とやり方はありますが、フィールドをアクティブにしようとしなければ簡単ですよね。
専用のレイアウトをつくれば、タブ順でいけますね。オブジェクト名もつけなくていいですね。
フィールドをアクティブにするとはどういうことですか
Offline
あああ、、ごめんなさい。。。
全くの思い違いをしていました。
himadaneeさんのご指摘の通り,
フィールドを選択して、レイアウト切り替えすると、
そのフィールドからカーソルが外れます。
私の方法は全くダメですね。
無駄な時間を取らせてしまいました、
申し訳ありません。
現状のタブ順で出来るのか、
できないなら、オブジェクト名を付けるしかないか。。
空きフィールドを選択した次に何をしたいのか、
それによっては違う方法もあるのでは。
Offline
専用のレイアウトを作ったら空のフィールドは見つけられ、そこで入力するのでしたらいいですが、元のレイアウトに戻って入力するのでしたら、フィールドへ移動させないとできないので、無理ですよ。
Offline
別レイアウトはだめですかぁ。
空きフィールドを選択したあとは、オペレータがデータを入力します。通常は、画面を見ればどこが空きフィールドかがわかるのでなんの問題もないわけです。
Offline
Loop関数が使えないとなる、だらだらとスクリプトを書くだけですね。このスクリプトを現場で書くのではなくコピー、ペーストしたいと思っています。コピーしたファイルをべつに作って、ここにスクリプトを書いておき、これからコピー、ペーストすれば短時間でおわるかなと思っています。
Offline
「オペレータがデータを入力」だったら前もって空きフィールドを選択する必要ないので、それは今までやってる作業であって、今後実際にやりたいのはそうじゃないですよね。
#29で言ってる「NTTのなんちゃら」が本当に必要とするのは何なのかを調べないと...
他の方法はいくらでも提示されてるので、それを決めないと何が最善なのか決めようがないですね。
ユーザー操作の自動化なら
https://www.ntt-at.co.jp/
にあるWinActorのことじゃないでしょうか。
行き違いになってしまった...
そもそも「空きフィールドを選択」が目的ではなくて、そこにユーザが入力するのだから「ユーザが入力したデータを空きフィールドに設定する」が最終目的ですよね。
であれば、「フィールドを名前で設定」はフィールド名を計算式で指定できますから、適当な(グローバル)フィールドとかカスタムダイアログ(変数でも可)とかで入力させて、それをフィールドに設定すれば完了です。スクリプトは1つで済みます。
実際の「最終目的」は1つのフィールドに値を入れるだけでなく次のフィールドもあるような感じでしたが
自動化するなら複数フィールドへの入力も一括してフィールド設定とかも可能でしょうし...
いや、空きフィールドにデータを入力するということが最終目的とはいえないのです。データを入力するのは、フィールドを飛ばしていれることもあるのです。また、別のフィールドにデータを入れてボタンを押すというようなことは、手間が増えることになります。
WinActorかどうかは知らないのですが、プログラムが次の作業を指示するということだと思います。
Offline
次の作業はともかく、
空欄のフィールドを選択したい。
これなら、今のレイアウトで、
オブジェクト名
か
タブ順
でフィールドを順に選択
では。
Offline
>#46
現状を変えずにやるとしたら、そのどっちかですよね。それは最初のころから提示されてます。
んで、タブ順の方は、なぜかGet関数がうまく取得できてないみたいな話が出て未解決だと思います。
オブジェクト名を付けるのは、レイアウトモードの左にパネルがあって「オブジェクト」を選択すると一覧が出てきてダブルクリックで編集できるので、インスペクタしかなかった頃よりはだいぶ楽なようです。
ただ、現状は目視で入力で何も問題ないということなので、業務効率化のために何かのソフトを新規導入予定でその対応のための処理なので、そっちの要求をはっきりしないとしょうがないと思います。
「ユーザが入力」するデータがどこかにあるから、それを自動化するとかじゃないんでしょうかね??手入力のままだったらミスは減らないしあんまり効率化にならないでしょう。
それに#45「データを入力するのは、フィールドを飛ばしていれることもある」だとしたら最初の空欄を選択してもあんまり意味がないような...
みなさんありがとうございました。最初にshinさんがおっしゃっていた。
フィールドへ移動 では、動的にフィールドを指定することはできない。フィールドの数だけステップが必要。オブジェクト名だと動的に指定できる。
でしたね。
タブ順でできるというのも勉強になりました。
ほんと勉強になりました。結局フィールドの数だけステップを書きました。
Offline
[ Generated in 0.008 seconds, 7 queries executed - Memory usage: 567.53 KiB (Peak: 588.44 KiB) ]