みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FMS19とFMP19でWindows環境、ServerはMACMini(10.14.6)の構成です。
注文書を作りました。
この注文書を印刷したら、フィールドへの入力を禁止にして変更できないようにしたいのです。
印刷したら、チェックボックスにチェックマークをつけるようにして、このチェックマークをはずすと、またフィールドへの入力を可能にしたいです。
よろしくお願いいたします。
Offline
セキュリティーの設定から、アクセス権セットの設定で、そのフラグがあるとレコードの編集不可にするのが一番簡単でしょう。
Last edited by Shin (2022-06-19 17:04:55)
Offline
アクセス権セットを切り替えるということですか?次のレコードにいったときに、印刷済みチェックをみてアクセス権を変えるということはできるのでしょうか?
Offline
画面一杯の塗りつぶし無しの透明な図形を用意します。
その図形を最前面にしてボタン化し、単一ステップでカスタムダイアログ表示などで「ロック中」などにします。
「次の場合にオブジェクトを隠す」にチェックボックスにチェックが無いと隠すといったようにすると
チェックがあるときは図形の裏にあるフィールドはクリックできず、ダイアログで「ロック中」と出ます。
ありがとうございます。
透明なボタンにして、これを押すとしたのフィールドにアクセスできなくなるのはわかりました。
この操作を印刷済みフィールドの内容で切り替えるのはどうすればよいのでしょうか?
次の場合にオブジェクトを隠すというコマンドがどこにあるかわかりません。
Offline
印刷をスクリプトで印刷するようにして、そのステップでチェックボックスにチェックするようにすればいいです。
レイアウト編集のデータの中にあります。
「次の場合にオブジェクトを隠す」がレイアウト編集の中にあることわかりました。印刷済みのフィールドには印刷時に印刷済をいれるようにしました。
印刷済=”印刷済”の条件をいれましたが、オブジェクトを隠すということがどう作動するのかがわかりません。
今は、透明の枠のところをクリックすればボタンとしてうごき、確かに下のフィールドにはアクセスできません。下のフィールドにアクセスしようとしてもボタンとして動いてしまいます。
Offline
「アクセス権セットを切り替える」ではなく、ユーザのアクセス権ではレコードを条件付きで編集許可にするってことでは。
カスタムレコードアクセス権でフィールドへのアクセスは、フィールドごとに制限の設定はしました。ただ、条件式は、フィールドへのアクセスの欄ではできません。編集などのところではできるのですが、この設定をすると、フィールドがアクセス不可になってしまいました。
Offline
印刷済にしたレコードのフィールドを編集できなくしたいのではないですか?
それならカスタムレコードアクセス権でレコードの「編集」の条件を計算式にすれば良いのでは?
あちらこちら手を出さずにアクセス権セットでやるか[次の場合にオブジェクトを隠す]でやるか決めたら良いのでは?
よく分かっていなくて言われたままに実装して、できたできないだのとやっているようでは身に付きませんよ。
[次の場合にオブジェクトを隠す]はその式を満たしたとき、オブジェクトが非表示になります。
透明なボタンでやるとわけが分からないのでまずは不透明度が50%くらいのボタンにするとわかりやすいと思います。
印刷済="印刷済" だと印刷済のときにボタンが非表示になっちゃいますね。
Offline
透明なオブジェクトを使う方法も悪くはないのですが、それが被っているフィールドが多数あるばい、クリックした位置を検出して、その下のオブジェクトへ移動できなければ、使い勝手は極めて悪くなります。FIleMaker の基本機能ではクリックした位置を検出することができないので、この方法は最終的な方法と考えた方がいいでしょうね。
Offline
透明なオブジェクトの場合は、TAB順を設定していると TAB でフィールドへ移動し編集可能状態になります。
透明なオブジェクトを使う は、簡易的な方法で
アクセス権 で設定するのが正攻法なカンジです。
Offline
いずれの方法でも、
FMはプリンタドライバにデータを渡すまでが仕事で、
その先、実際に印刷されたかは分かりません。
ご注意を。
Offline
どうも、期待どおりにうごいてくれません。
完全アクセス権でファイルからセキュリティ詳細設定でアクセス権セットの新規アクセス権を作りました。レコードの欄をカスタムアクセス権このテーブルに対して編集だけを制限にして印刷済="印刷済”そのほかの項目は「はい」
レイアウト、値一覧、スクリプトのところはすべて変更可能。
その他のアクセス権はすべてチェックをいれました。
このアクセス権で入力が制限されたり、OKなのは、この印刷済のフィールドだけなのです。
レコード全部が制限されません。
なにをまちがっているのでしょうか?
よろしく。
期待する動きは、印刷済フィールドにチェックが入っていれば、印刷済フィールド以外が編集できなくなるという動きです。
Offline
「印刷済」が "済" で変更できなくするなら 印刷済 = "印刷済" では真逆になりますよ。
(何を設定しているのか考えながら作業されることをおすすめします)
印刷済 ≠ "済" にすれば "済" でないレコードのフィールドは編集できると思いますが......
また、この状態だと "済" を外すこともできないので、外す必要があるなら何らかの手段を考える必要がありますね。
#13 でチポさんが書かれていますが、
実際印刷されたか否かは分からないのでプリンタ側でエラーで印刷されていなかったときに戻す必要があるかも知れないですし。
Offline
うまく動かないので、この条件式は印刷済=”印刷済”や印刷済≠”印刷済”に変えてどうなるかみています。
≠にするとアクセス権がありませんとなり、フィールド内容がみえません。印刷済のフィールドがチェックなしのときにチェックをつけることができますが、チェックがついたら編集できません。
なにか根本的に理解していないとおもうのですが、なにがなにやら。
Offline
チェックボックスセットで指定している値一覧はどのようになっていますか?
チェックボックスでなく編集エリアにした状態の同じフィールドを用意して、
チェックボックスにチェックしたときにどのような値になっているか確認しましょう。
「編集」のカスタムアクセス権に指定している計算式が成立するとき編集は「できる」「できない」どっちか分かりますか?
闇雲に演算子を変えて意図通りになったからOKという感じでは「理解した」とは言えません。
Offline
ようやくできました。
できなかった理由は、このテーブルは納品書テーブルなのですが、そのフィールドは、別テーブルである納品詳細からリレーションを貼っていました。なのにカスタムアクセス権をこの納品書テーブルに指定してしまっていました。
今回は、印刷済フィールドは入力がいつでもできるわけですが、別テーブルがない場合、印刷済フィールドでオン、オフできるようにするには、この印刷済フィールドを別テーブルに作らなければならないわけですね。
Offline
別テーブルにしなくても、スクリプトをフルアクセスで実行すれば何でも可能です。
それは、スクリプトで印刷済をはずすということですか?
Offline
そうです。
ありがとうございました。すべて解決です。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 562.08 KiB (Peak: 582.62 KiB) ]