初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2016-05-16 20:22:04

Horicchii
Member

Hiro 様 ---再度ご指導を

先般はご指導頂きありがとうございました。(https://fm-aid.com/bbs2/viewtopic.php?id=4517の内で、2016-05-03 02:09:18の分です)

実DBに適用させて頂いていますが、新たに「機器数」専用(表示用)フイールドを設けた方が良いとなり、
上記の計算式から$no1分の計算式をこの「機器数」フイールドに入れたのですが

Let(  [
   $no1=List($no1; Case(FilterValues($no1;テーブル::機器名)=""; テーブル::機器名));];
   Case(Get(レコード番号)=Get(対象レコード数);
List(   ValueCount($no1); ))

”この計算式では一覧を使用できません” とのエラーです。
※機器名Fでの検索条件数(二重分除去)を「機器数」Fで表示させたい。

どの様に修正したらよいでしょう?。

尚、本件https://fm-aid.com/bbs2/viewtopic.php?id=4574で、
Shin様から現在ご指導受けている、(連続)3段スクリプトステップに組み込みたいと考えています。

Offline

#2 2016-05-16 22:40:32

Hiro
Member

Re: Hiro 様 ---再度ご指導を

Let(  [
   $no1=List($no1; Case(FilterValues($no1;テーブル::機器名)=""; テーブル::機器名));];
   Case(Get(レコード番号)=Get(対象レコード数);
List(   ValueCount($no1); ))

↓ (内容はよく分かりませんが、式の整合性だけで判断すると)

Let([
   $no1=List($no1; Case(FilterValues($no1;テーブル::機器名)=""; テーブル::機器名))
];
   Case(Get(レコード番号)=Get(対象レコード数); ValueCount($no1))
)

Last edited by Hiro (2016-05-16 22:55:18)

Offline

#3 2016-05-17 18:57:56

Horicchii
Member

Re: Hiro 様 ---再度ご指導を

Hiro 様

ありがとうございます。
Let(  [   $no1=List($no1; Case(FilterValues($no1;テーブル::機器名)=""; テーブル::機器名))];
   Case(Get(レコード番号)=Get(対象レコード数); ValueCount($no1)))

設定してみました。検索機器数が「3」となるはずが、28と表示されます。←Filterされていない。
ご教示頂いた、スクリプト横一行を実行すると「3]と表示されます。←正常。
また、他の検索条件でも機器数=1のはずが「3」と表示されます。

この違いはどこに有るのでしょう?。

Offline

#4 2016-05-17 20:08:50

Hiro
Member

Re: Hiro 様 ---再度ご指導を

内容が分かっていないので回答は難しいかな。
どんなデータがあって、それにどんな式を適用すると、どんな答えが返って、その正誤評価は?
もう少し具体的で詳しい説明を願いますか?

Offline

#5 2016-05-17 23:23:43

Horicchii
Member

Re: Hiro 様 ---再度ご指導を

Hiro 様

説明不足で、お手数、ご迷惑をお掛けします。Dataとしては以前ご指導頂いた
器具名   使用者名        日付
ある機器    D     2016/02/01
ない機器    A    2016/02/02
ある機器    A    2016/02/03
ある機器    B    2016/02/27
ない機器    A    2016/02/27
ない機器    B    2016/03/01
ある機器    B    2016/03/02
ある機器    A    2016/03/03
どうで機器    C    2016/03/23
どうで機器    A    2016/03/28
ある機器    A    2016/03/29
ある機器    B    2016/03/30
ある機器    B    2016/03/31
ない機器    D    2016/04/01
ない機器    A    2016/04/02
ある機器    B    2016/04/03
どうで機器    C    2016/04/04
ある機器    A    2016/04/05
ない機器    A    2016/04/06
ある機器    C    2016/04/07

です。前回は、(https://fm-aid.com/bbs2/viewtopic.php?id=4517)
1).使用者数:" & ValueCount($no1) ;   "2).延べ使用者数:" & $no2 ;   "3).使用日数:" & ValueCount($no3) ;   "4).延べ使用日数:" & $no4_max - $no4_min  + 1)
でしたが、これとは別に「機器種数」についてのスクリプト作成です。
そこで、前回の式から、1)の使用者数を「機器数」置き換えた
Let(  [   $no1=List($no1; Case(FilterValues($no1;テーブル::機器名)=""; テーブル::機器名))];
   Case(Get(レコード番号)=Get(対象レコード数); ValueCount($no1)))

を設定してみましが、上記Dataから検索機器数が「3」となるはずが、28と表示されます。←Filterされていない。
※ご教示頂いた、スクリプト横一行を実行すると「3]と表示されます。←正常。
また、他の検索条件でも機器数=1のはずが「3」と表示されれるのです。
何処を修正すればいいでしょうか?。

Offline

#6 2016-05-18 04:36:08

Hiro
Member

Re: Hiro 様 ---再度ご指導を

Let(
[$no1=List($no1; Case(FilterValues($no1;テーブル::器具名)=""; テーブル::器具名))];
Case(Get(レコード番号)=Get(対象レコード数); ValueCount($no1))
)
この式での検証では正しく[3]が返ります。

まだよく分からないけど、少なくとも、#5レスで掲示された式中のフィールド名は明らかに違っています。
   ::機器名 → ::器具名
また、[28]が表示されるとすれば、2箇所のフィールド入換が必要の所、何れか一方が元式の「::使用者名」のままになっている、とかでは?

Last edited by Hiro (2016-05-18 04:47:40)

Offline

#7 2016-05-20 13:10:37

Horicchii
Member

Re: Hiro 様 ---再度ご指導を

Hiro 様

遠方へ出かけていた為、ご返事遅くなり誠に申し訳ありません。

Hiro wrote:

Let(
[$no1=List($no1; Case(FilterValues($no1;テーブル::器具名)=""; テーブル::器具名))];
Case(Get(レコード番号)=Get(対象レコード数); ValueCount($no1))
)
この式での検証では正しく[3]が返ります。

スミマセン!、::器具名/::機器名、実DBのフイールド名とごっちゃになり申し訳ありません。

ご指示の計算式(#6)にしているつもりですが、検索条件など変えると、正しく計算してくれません。
何処で違っているのか?、管理=データベース画面/スクリプトの管理画面の編集でも見ているのですが違いはない様に思うのですが?‥‥。(#5とHiro様の#6)

ただ、スクリプト実行ボタンを押すと「フイールド内容の全置換画面」が突然現れ
上部にある「置換(R)」は白丸にもかかわらず"28"とか"3"になっています。←検索条件を変えた時。
下部の「計算結果で置き換える」は黒丸となっています。

レイアウトモードでの設定時はフイールド内容の全置換画面の「置換(R)」は”現在の内容”なのに‥‥?。

フイールド内容の全置換画面で”計算結果で置き換える”は黒丸で指定の計算式もご指導の#6になっております。

ボタンの設定にミスがあるのでしょうか?。自分ではどこで違っているのか分からないのです。
ご教示の程を願います。

なお、最終的には検索条件(下記)の設定とこれらスクリフ゜ト(#6 及び 前回のhttps://fm-aid.com/bbs2/viewtopic.php?id=4517  #17)を連続一貫のスクリフ゜トにしたいのです。
併せてご教示のほど願います。

tp1:全レコード表示
Stp2:レコート゛のsort
Stp3:検索モード切替[一時停止]
Stp4:新規レコード/検索条件
Stp5:スクリプト一時停止/続行[時間制限なし]
Stp6:新規レコード/検索条件
Stp7:スクリプト一時停止/続行[時間制限なし]
Stp8:スクリプトの実行[↑の各スクリフ゜トを挿入]
Stp9:現在のスクリプト終了

Offline

#8 2016-05-21 06:30:47

Horicchii
Member

Re: Hiro 様 ---再度ご指導を

Hiro 様

度々ご迷惑をお掛けし申し訳ありません。
>ご指示の計算式(#6)にしているつもりですが、検索条件など変えると、正しく計算してくれません。
何処で違っているのか?、管理=データベース画面/スクリプトの管理画面の編集でも見ているのですが違いはない様に思うのですが?‥‥。(#5とHiro様の#6)

原因が分かりました。機器名(実DB)に○○-1△の処が一部のdataで○○-1△となって居るのがあり、この為機器種数が"1"の処”2”と集計されてしまっていました。これまで見た目で小文字、大文字の見分けがつかなく10899件の中を昨夜から今朝にかけて調べていてたどり着けました。Hiro様には大変ご迷惑をお掛けしました。

>ただ、スクリプト実行ボタンを押すと「フイールド内容の全置換画面」が突然現れ‥‥
原因は、やはりボタン設定の間違いでした。

>併せてご教示のほど願います。
Stp1:全レコード表示
Stp2:フイールドへ移動[日付期間]
Stp3:検索モード切替[一時停止]
Stp4:新規レコード/検索条件
Stp5:フイールドへ移動[日付期間]
Stp6:スクリプト一時停止/続行[時間制限なし]
Stp7:新規レコード/検索条件
Stp8:フイールドへ移動[日付期間]
Stp9:レコードのソート
Stp10:スクリプトの実行[登録済みスクリプトA]
Stp11:スクリプトの実行[登録済みスクリプトB]
Stp12:現在のスクリプト終了

のステップに於いて、Stp10、同11が行われないのですが‥‥?、スクリプト命令が違っているのでしょうか?。
ご教授願えませんでしょうか。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 593.8 KiB (Peak: 610.34 KiB) ]