みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも助けていただき、ありがとうございます。下記の内容でつなずいてしまっているので助けていただけると嬉しいです。
現在------
テーブル:メニュー一覧
レイアウトA・・・資料1、資料2、資料3といったPDFを保管するオブジェクトフィールド
レイアウトB・・・部署Bが使用するファイルへリンクするボタンとオブジェクトフィールドが3つ
レイアウトC・・・部署Cが使用するファイルへリンクするボタンとオブジェクトフィールドが3つ
(オブジェクトフィールドには、レイアウトAの資料1、2、3が反映されます。また、資料を表示したタイミングでカウントが
される設定です)
問題点----
部署Bが資料1を表示しているタイミングで、部署Cが資料1を表示すると、「********が使用しているので。。。。」といった
メッセージが表示されます。メッセージを閉じると、資料は表示されるのですが、カウントが取れない状態です。
同一レコードの編集になるので、エラーになるのは仕方ないのですが、閲覧したかのカウントは取得したいんです。
なにかいい方法がありましたら、教えてください。
取り急ぎ...
閲覧のみで、手動の編集がないのであれば、
カウントアップ時に
スクリプト:レコード/検索条件確定
を入れれば、同時編集の問題は大丈夫そうな...
レコード/検索条件確定 | Claris Pro および FileMaker Pro ヘルプ
https://help.claris.com/ja/pro-help/con … A%E5%AE%9A
Offline
qb_dp様
回答ありがとうございます。
スクリプト:レコード/検索条件確定 を設定して入力値の制限を無視としてみたのですが、とくに変化がありませんでした。(涙)
ちなみにカウントに使用しているスクリプトは以下の通りです。。。
フィールド設定(メニュー一覧::資料1;メニュー一覧::資料1+1)
フィールド設定(メニュー一覧::資料拡大;Get(スクリプト引数))
新規ウィンドウ(スタイル:ドキュメント;使用するレイアウト<現在のレイアウト>;上:100;左200)
レイアウトの切り替え「資料拡大」(メニュー一覧);アニメーション:なし)
宜しくお願い致します。
回答ではありませんが、、
> フィールド設定(メニュー一覧::資料1;メニュー一覧::資料1+1)
資料1はオブジェクトフィールドですよね。
これは?
Offline
チポ様
入力間違えてしまいました。正しくは
フィールド設定(メニュー一覧::カウント_資料1;メニュー一覧::カウント_資料1+1)です。
資料1のオブジェクトフィールドをクリックすると、カウント_資料1に数字が入るようになっています。
ご指摘ありがとうございました!
エラー処理 オン
を入れたらどうなりますか?
いま、検証できないので。。
Offline
チポ様
回答ありがとうございます。
エラー処理 オン をいれたところ、「********が使用しているので。。。。」といったメッセージがでなくなりました。
ありがとうございます。
ただ、カウントは使用できない状態です。。。。。(涙)
状況が理解できていません。
> テーブル:メニュー一覧
このテーブルだけの話ですよね。
> レイアウトB・・・部署Bが使用するファイルへリンクするボタン
使用するファイルとは?
リンクするとは?
Offline
チポ様
お世話になります。
背景ですが。。。(ファイル名:メニュー一覧.fmp12 テーブル名:メニュー一覧 レイアウトA 〜C)
1. ファイルメーカーにて作成したファイル(勤務管理.fmp12、顧客情報.fmp12など)がたくさんあります。
それを使いやすいように、一つのレイアウトにまとめてボタンを作り、単一ステップ(ファイルを開く)にて
表示できるようになっています。
2. 部署Bと部署Cでは使うファイルは違うのですが、資料や社内文書はほぼ同じな為、それぞれのレイアウトに
オブジェクトフィールドを設け、レイアウトAにて保管している資料等が閲覧できるようになっています。
3. 部署同士が離れている為、資料等を確認しているのか判断ができないので、資料を表示したらカウントされる
といった設定を組み込もうとして躓いている状態です。。。。。
わかりづらい説明でごめんなさい。なので、テーブル:メニュー一覧
だけの話です。(涙)
質問者さんが「閲覧」と言われているのは具体的に何をされているのでしょう?
例えば実行しているスクリプトの中身やリレーション構造など。
上記のやり取りからはカウントするためにフィールドの値を設定しようとした際、レコードロックが起こり設定できていないと読み取れます。
エラー処理はダイアログを非表示にするだけなので解決には繋がりません。(逆に妨げになるかも)
レコードの確定をしても同じエラーが出るのなら、処理のどこかでレコードロックが起こるのでしょう。
(グローバル格納のフィールドを用いたリレーション越しにカウントフィールドを弄ろうとしていると
対象となるレコードが違っていても参照側のレコードが一緒ならレコードロックされます)
要は閲覧という行為を行う際にレコードを開いてしまっているのが問題なのでそれに対処し
同時にカウントしようとしたときのロックを(エラーコード301)回避できるようにすれば良いのではと。
単純に確定待ちになるのでループで数秒待つだけで良いと思いますし。
Last edited by Moz (2023-08-31 11:28:53)
Offline
オブジェクトフィールドに「参照のみ」でファイルを挿入してて、そのファイルを開くことでレコードが編集中になってしまってる、というように読めましたが、
そういうことって起こりますかね。ちょっと今テストできないんですが
拡大用レイアウトをわざわざ使ってるから、そうではなくPDFをアプリで開かずFMのウィンドウ内で見てるだけにも見えますね...
PDFをスクロールするためにオブジェクトフィールドに入ってレコードを開いた状態でないと閲覧できないのかな。
もしそうなら、FMウィンドウ内の表示はやめて、「フィールド内容のエクスポート」で各自が複製を開くようにすればいいかも?
ここでの話ではテーブルは
メニュー一覧
一つですよね。
とすれば、
レイアウトA,B,Cといくら変えても選択されているレコードは同じものですよ。
そのレコードについて書かれていないのでそこらへんが全く分かりません。。
閲覧のカウントを別テーブルにすれば、
レコードのロックから逃げられるのでは。
Offline
Moz様
回答ありがとうございます。
「閲覧」ですが、拡大して表示しているだけです。(オブジェクトフィールド:資料1をクリックすると、資料拡大のレイアウトにて表示されるようになっています)
フィールド設定(メニュー一覧::資料1;メニュー一覧::資料1+1)
フィールド設定(メニュー一覧::資料拡大;Get(スクリプト引数))
新規ウィンドウ(スタイル:ドキュメント;使用するレイアウト<現在のレイアウト>;上:100;左200)
レイアウトの切り替え「資料拡大」(メニュー一覧);アニメーション:なし)
himadanee様
回答ありがとうございます。
「フィールド内容のエクスポート」という手段もあったのですね。。。
オブジェクトフィールドの使い方を調べた時に、拡大して表示というのが一緒に検索でヒットして。。。
この方法以外、頭から抜け落ちてました。。。(汗)
チポ様
回答ありがとうございます。
メニュー一覧ひとつです。
同一レコードの編集になるので、仕方がないのかなぁ。。。。と思っているのですが、どうしてもカウントを取得したくて(涙)
テーブル:メニュー一覧 意外にも、オブジェクトフィールド専用のテーブル を作成しようとしたのですが、
根本的なところで、部署ごとに設定しているオブジェクトフィールドの設定が変なので、テーブルを分ける事ができなかったんです。(涙)
本当に申し訳ないのですが、ファイルメーカー初心者で。。。。 設定するのに必要な事だけを、本やネットで検索して。。。
前任者が作成したデータを解体して、必要な部分をとって。。。 と、つぎはぎしながらの状態なんです(涙)
今回、作成しているものの簡略版をUPします。 (アカウント:admin パスワード:なし)
https://www.dropbox.com/scl/fi/sk3jorn6 … m0bcl&dl=0
おかしな箇所が多いと思うので、カウントを取得できそうな方法を教えていただければ嬉しいです。
自虐ネタになりますが。。。。確認していただいて、呆れてもらえれば幸いです。。。。(涙)
スクリプトの作りや構造、運用には目を瞑るとして。
拡大のスクリプトでフィールド設定を行ったあとで[レコード/検索条件確定]を入れたら良いでしょう。
現在は元のウインドウでカウントをフィールド設定したとき、
レコードを開いたままになっているので他の部署(他のユーザ)がカウントしようとしたときレコードロックになります。
「新規ウインドウを開く」では現在のレコードは確定になりません。
その前にカウントを足したレコードを確定させておけば良いでしょう。
Offline
閲覧履歴テーブルを作ってカウントアップの代わりに履歴レコード作成するのも一つの手ですね。
ロックは問題にならないし、閲覧者や閲覧日時も取れますし。
Offline
Moz様
回答ありがとうございます。
[レコード/検索条件確定]を追加してみたのですが・・・反応は変わらず、カウントは入りませんでした。。。
多分、私の設定でどこかがおかしいんだと思います。
いろいろと考えていただいたのにすみません。ありがとうございます。
mic様
回答ありがとうございます。
閲覧履歴。。。 そうゆう方法もあるんですね! 履歴数を集計すれば、カウントもとれそうですし
試してみたいと思います。ありがとうございます。
Pages: 1
[ Generated in 0.034 seconds, 9 queries executed - Memory usage: 565.05 KiB (Peak: 585.96 KiB) ]