見出し画像

(改2)コピーはしたいが編集は禁止

以前の記事である。よく見たら丁度一年前だったw

この時、宣言をポップオーバーのトリガーでやってしまってたので、
遅延があっていまいち実装しづらいなと。

ポップアップヘルプだとその場かなと思い。
そこからグダグダとやって。

これが多分お手軽で手堅そうに思うがどうですかって話で。

というかそもそもぱいせんたちはどうしてるんだろう。
(そんな狭い所で作ってないって怒られそうだ?)
とりま書いて、またミンキーで考慮漏れがないかご意見もらおう。

というわけで、こんな感じ

結局のところ、私が防止したいのは、ユーザーが気づかない間にやってしまうドラッグ&ドロップでの入力である。

最初グローバル変数一個でやってたが、複数ウインドウの時もあるよねぇってなって、考え直した。

フィールドの準備

テキストフィールドのフィールド入力 ブラウズモードのチェックを外す
フィールド選択はお好み。検索はそのまま残す。
※やりたいフィールドだけでOK レコード確定とかは入れてない。

画像1

オブジェクト名とポップアップヘルプに仕込み
同じ場所で設定するので、らくちん(と思う)別途方法もあるが、同じ場所でってのがよいのと、段取りよさそうなのでここでやってる。

画像4

入る用のスクリプト準備

スクリプトを作る 2行だよ!!中身を固有のグローバルに入れて退避
(グローバル変数使うけど、複数ウインドウにされた時対策で、
レイアウト名とウインドウ名とオブジェクト名から変数を作成。

なお、前から使ってたが、SetVariableというカスタム関数は、竹内さんが作ったもので、知らないうちにお世話になってたって感動したww
z_chgOutMojiはただたんに、使えない文字消したいなーってさっき作った。

画像4

Let([

~レイアウト名=Right(Get(レイアウト名);25);
~ウインドウ名=Right(Get(ウインドウ名);25);

~dm=SetVariable ( "$$" & z_chgOutMoji ( ~ウインドウ名 & "_" & ~レイアウト名 & "_" & $$sendf ;"_") ;Get(アクティブフィールド内容))
];
"")

//変数に使える文字が100文字までなので適当考える。入るのと取る文字数合わせる。ウインドウは番号つくから後ろから必須。まあ前後とってもいいかもね。
//とりまオブジェクト名48文字あったらいいんじゃね的な。
//exitに仕込んだアクティブレイアウトオブジェクト名は、フィールドからフィールドに移った時も、元のフィールドの設定を返す(20211123現在)
//$$sendf=""; let内いれてたけど、どのみち出るから消すのをやめた。exit側に削除入れるのはNG

出る用のスクリプト

もういっこスクリプトを作る 2行だけ!! ターゲットは入れない。
自分の今いるところから変数名を作って呼び出す。

画像4

上の計算(入れる時は、今のアクティブオブジェクト名を変数名に使う)

Let([
~レイアウト名=Right(Get(レイアウト名);25);
~ウインドウ名=Right(Get(ウインドウ名);25)];

Evaluate ( 
"$$" & z_chgOutMoji ( ~ウインドウ名 & "_" & ~レイアウト名 & "_" & Get(アクティブレイアウトオブジェクト名);"_")
)
)

下の計算(同じく、今のアクティブオブジェクト名の変数を空にする)

Let([
~レイアウト名=Right(Get(レイアウト名);25);
~ウインドウ名=Right(Get(ウインドウ名);25);
~dm=SetVariable ( "$$" & z_chgOutMoji ( ~ウインドウ名 & "_" & ~レイアウト名 & "_" & Get(アクティブレイアウトオブジェクト名);"_") ;"")
];
"")

今回気づいた事

フィールド設定ってずっと、ターゲット入れないとダメだって固定観念で。
入れなきゃ今いるとこで入力するんだなと気付いた。

あと、マージフィールドの表示してあるの取りたいなって
ポップアップヘルプでselfでとったら、表示してあるものが取れた。
そのあとボタンにも設定できるんじゃないかってテストしたらいけた。
この時も、ボタンのselfでとれる。

画像5

画像7

↑押して外れて押してでカウントアップしたりできる。
今回は使う事なかったけど、またなんかに使えそうだな~って思った。

今回のファイル(11/26ポータルもできたのでUPしなおし)

見た方が早いと思うので、UPしておくます。

※繰り返しはボタンの仕様上無理なんで、繰返しをひとつずつ配置するって事に・・・(

ていうか、編集不可だがコピーはって、標準でもできるな?

なんでそんな事に気付かなかったんだろう。

今日投稿してから、お湯割りさんにネイティブにできるようにして!って話を聞いて、まじそれ!ってツイッターで話をした時に、そうか標準にないんか!?って思ったら。

標準機能で編集不可ってあったな!?

「データ入力時の値変更の禁止」

画像7

入力しようとしたら怒られるけど(しかも17はこれ2回でるw)

画像8

ドラッグアンドドロップでも持っていいけないし。

でもコピーはできるし。
それでいいのでは!?

そして、こうなってても、スクリプトとインポートでは上書きできるし他の参照しながら自動入力もできるしな?
てことは入力を別にもってスクリプトで書かせたらいいな。

なんだ・・・簡単な事だったな!こうして私の勤労感謝の日は暮れていった(もう過ぎてるけども)

でもこれを使わないのになんか意味があるかもだし、普段は入力OKで、
確定したあとは~とかもあるだろうし?(それはフラグとかでもたまにやってるな。)

なんでだったのか、また聞いたり考えたりしよ。

そうかでも入力はしたいが、ドラッグアンドドロップを気づかない間にやるのは嫌っていうなら、今回考えた方法が良い気もする。

というかそもそも、ものによっては許可されてる方が少ないなら全部にいれるの面倒臭いから、許可フィールド設定しておいて、変更されたフィールドにそれが入ってたら乱暴だけど復帰しちゃうって手も。ああああるよね

ヘルプを読もう[データ入力時の値変更の禁止]

画像9

特段かいてなすび

とりま自動入力の設定なくても、ただただ禁止できるみたい?な。って事でまた理解を深めよう

11/26もうちょいテスト

禁止のエラーは、Onobjectkeystrokよりも反応が早かった。
このエラー画面に勝てるのは、OnObjectEnterしかなかったw
で。もうそこで検索画面にして、データ入れたげて好きにどうぞって感じもしたが、ポータルの場合、3行あったものが1行になってそこにいれたりしても、なんかドキドキするだろうなーと思って、頓挫した。

この記事が気に入ったらサポートをしてみませんか?