みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
こんばんは。いつも助けられております。ありがとうございます。
質問は2つあります。そもそもそんな事が可能か否か、というかなり初歩的な質問ですが
もし可能であれば、方法をぜひ知りたいです。
------------------
[繰り返し[14回]フィールドA]
で「部屋番号」の値を選択できるようにしています。
「部屋番号」の値は
ROOM1
ROOM2
ROOM3
.
.
.
ROOM14
という感じです
--------------------
以下2つの質問です。
質問①
繰返フィールドA[1]で「ROOM1」を選ぶと、
繰返フィールドA[2]以降の値にROOM1が出現しないようにできるのか。
(値の選択は1ページ内では1度だけにしたい)
質問②
繰返フィールドAで選ばれた全ルーム番号を
繰返フィールドBにソートして反映することはできるのか。
例:
繰返フィールドA[1]=ROOM5
繰返フィールドA[2]=値なし
繰返フィールドA[3]=ROOM6
.
.
.
という入力があった場合
フィールドB[14]にソートして
上から
繰返フィールドB[1]=0
繰返フィールドB[2]=0
繰返フィールドB[3]=0
繰返フィールドB[4]=0
繰返フィールドB[5]=1
繰返フィールドB[6]=1
繰返フィールドB[7]=0
.
.
.
.
のように
繰返フィールドAの入力情報を繰返フィールドBにソートして入力判定を反映できたりするものなのか、そういう処理ができるのであれば教えていただきたいですし、繰り返しフィールドでは無理であれば、大元から作り直さなければならいので、だめかどうかだけでも知りたいです。
説明が長くてすいません。どうぞよろしくお願いいたします。
Offline
重複させないためには、
Let (
t = SortValues ( List ( フィールドA ) ) ;
t = UniqueValues ( t )
)
という制限の計算式を設定すればいいでしょう。
フィールドBは、
ValueCount ( FilterValues ( List ( フィールドA ) ; "ROOM" & Get ( 計算式繰り返し位置番号 ) ) )
という式にすればいいです。
ただ、フィールドAは、繰り返しフィールドを使わず、別テーブルのポータルで作る事をお勧めします。
また、入力も、ドロップダウンなどではなく、フィールドBのクリックで入力するようにされたほうが、格段に楽です。
もうひとつ、ROOM14まであるのですから、ROOM01,ROOM02....ROOM14と命名されたほうが、処理は単純です。
Last edited by Shin (2021-01-16 10:25:39)
Offline
Aの方に空欄があって、Bには選択肢のすべてについてAに入力されてるかどうかを入れるんで、ソートとは関係ない案件ですね...
重複させないためには、
Let (
t = SortValues ( List ( フィールドA ) ) ;
t = UniqueValues ( t )
)
という制限の計算式を設定すればいいでしょう。フィールドBは、
ValueCount ( FilterValues ( List ( フィールドA ) ; "ROOM" & Get ( 計算式繰り返し位置番号 ) ) )
という式にすればいいです。ただ、フィールドAは、繰り返しフィールドを使わず、別テーブルのポータルで作る事をお勧めします。
また、入力も、ドロップダウンなどではなく、フィールドBのクリックで入力するようにされたほうが、格段に楽です。
もうひとつ、ROOM14まであるのですから、ROOM01,ROOM02....ROOM14と命名されたほうが、処理は単純です。
Shin様 ご返信ありがとうございます。
①
重複させないための let( t=...という式をフィールドAに入れてみましたが、一度選ばれている部屋が別の列でも選べてしまいました。
ポータルの使い方があまり理解できてないので、もう少し勉強してみます。
②
フィールドBには、ValueCount~の式を入れてみましたが、先頭のフィールドに「0」と入るだけで、連動させることができなかったです。
私のやり方が違うんだとは思うのですが、ちなみに、ROOM1~14というのは例として書いただけで、実際は部屋の名前(日本語も混じる場所もあり「101号」「201号」「食事部屋」等です。)数字で管理されてるわけではないのですが、こちらの"ROOM"の設定は応用が利きますでしょうか?
(テストの段階では、101号とかの値を全部ROOM01などに置き換えて試してみました)
Offline
https://www.dropbox.com/s/jnpe5jdt2xxfp … 2.zip?dl=0
で、実際の動きをみてください。
Offline
https://www.dropbox.com/s/jnpe5jdt2xxfp … 2.zip?dl=0
で、実際の動きをみてください。
Shin様
ファイルありがとうございました。大変よく理解できました。
フィールドAは、同じ値を入れるとFileMakerのエラーがでるようになるのですね。
印象だと値が選択できない(リストから選べない)感じだったので、
最初、このエラーの意味が分かってなかったのですが、ようやく理解できました。ありがとうございます。
フィールドBはまったくその通りにうごいていて感激しておりました。
私はフィールドオプションの最初の「入力値の自動化」タブの「計算値」にチェックを入れて、式を入れてました。
フィールドタイプの計算、から式を入れるのが正解だったのですね。
式を入れる場所、に関係があることに気づかされて大変勉強になりました。
あとひとつ、
よくばりな追加になりますが、
フィールドBの
-----------------------
ValueCount (
FilterValues (
List ( フィールドA ) ;
GetValue ( ValueListItems ( Get ( ファイル名 ) ; "部屋一覧" ) ; Get ( 計算式繰り返し位置番号 ) )
)
)
------------------------
この結果を0か1ではなく
0の場合は ""
1の場合は "入室"
のように、ゼロを0表示せず、空欄に、1を日本語に入れ替えるようにすることはできるでしょうか?
いろいろすいません。
Offline
ややこしいことをすると、すでに入力されているものを省くような値一覧も作れますが。
フィールドB の書式で表現するのが簡単だと思います。
インスペクタの書式で、論理表示を選び、偽は ""、真は "入室" にするといいでしょう。
Offline
ややこしいことをすると、すでに入力されているものを省くような値一覧も作れますが。
フィールドB の書式で表現するのが簡単だと思います。
インスペクタの書式で、論理表示を選び、偽は ""、真は "入室" にするといいでしょう。
Shin様
ありがとうございます。
インスペクタの書式設定の倫理表示の使い方を初めて学びました。
感激中です。
うまくできました。ありがとうございます。
Offline
[ Generated in 0.013 seconds, 10 queries executed - Memory usage: 526.6 KiB (Peak: 547.51 KiB) ]