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

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

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

You are not logged in.

Announcement

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


#1 Re: 初心者のFileMaker pro Q&A » カスタム照合リレーションのサンプル » 2021-12-30 00:16:01

お待たせしました。

【新ダウンロード先リンクです】

公開サービス終了でリンク切れしたホルダーファイル「特殊照合リレーション(全6サンプル一覧)」の移動先です。

https://1drv.ms/u/s!AlaCGhTKTWEOgZpdlS9 … g?e=xT1Bu5

#2 Re: 初心者のFileMaker pro Q&A » ★★「前方一致・部分一致・重複除去」など 便利なカスタム照合リレーション 全5+1種を公開★★ » 2021-12-29 23:51:47

【新ダウンロード先リンクです】

公開サービス終了でリンク切れした(全6サンプル一覧)ホルダーファイルの移動先です。

https://1drv.ms/u/s!AlaCGhTKTWEOgZpdlS9 … g?e=xT1Bu5

#3 Re: 初心者のFileMaker pro Q&A » 検索後のデータを値一覧に登録 » 2021-12-23 20:41:26

意図するものは、所謂「動的値一覧」ではないかしら?
だとすると、設定方法は過去ログに色々あります。

#4 Re: 初心者のFileMaker pro Q&A » if構文で特定の文字列を含む抽出 » 2021-11-21 23:26:12

>『の「果物」の部分が、たとえば「いちご」だったり「りんご」だったり「みかん」だったりして、絶対変換ではないのです・・・』

実際に式を試してみましたか? 質問事項は織り込み済ですよ。
式は前から順に精査判定してゆきます。その前半部で、「いちご」「りんご」「みかん」は「果物」に変換されていますよ!

#5 Re: 初心者のFileMaker pro Q&A » if構文で特定の文字列を含む抽出 » 2021-11-21 22:23:27

#3で具体的に例示されている5種項目についてのみ絶対変換するだけで良いのなら、
式は、

Substitute( Aフィールド
   ; ["いちご";"果物"]
   ; ["りんご";"果物"]
   ; ["みかん";"果物"]
   ; ["果物春赤";"春赤"]
   ; ["果物春";"春"]
)

#6 Re: 初心者のFileMaker pro Q&A » 範囲内数値のレコード数のカウント » 2021-11-19 02:06:30

生徒別の集計結果を繰り返し[12回]SQL計算フィールドに一発取得する案です。
その計算式に以下のSQL関数式を設定します。(他に必要な設定は一切ありません)

ExecuteSQL(
   "
      SELECT COUNT(*)
      FROM ""このテーブル名""
      WHERE ""生徒""=? AND ""平均点"">? AND ""平均点""<=?
   "
   ; ""
   ; ""
   ; 生徒[1] & Left(平均点[1]; 0)
   ; Case(
         Get(計算式繰り返し位置番号)=1; -.01;
         Get(計算式繰り返し位置番号)=12; 99.99;
         (Get(計算式繰り返し位置番号)-2)*10
      )
   ; Case(
         Get(計算式繰り返し位置番号)=11; 99.99;
         Get(計算式繰り返し位置番号)=12; 100;
         (Get(計算式繰り返し位置番号)-1)*10
      )
)

#7 Re: 初心者のFileMaker pro Q&A » くり返しフィールドの重複を検出して削除したい » 2021-11-01 02:44:21

|りんご|りんご|ばなな|めろん|ばなな| ➡ |りんご|ばなな|めろん|空白|空白|

目的が例示通り、順序を維持した一意配列化に在るなら、
UniqueValues関数はソート処理が基準の機能のため、今回は使えないでしょう。

地道に前から1項づつ重複精査しながらループ回しする作案です。

【値一覧化スクリプト】サンプル

  • 変数を設定[ $UniqueValues ;
    値 :
          Let(
          [
             $val=List(フィールド1);
             $i=0;
             $n=0;
             $res="";
             $LOOP="Case($i=5; $res;
                Let([
                   $i=$i+1;
                   $itm=GetValue($val;$i);
                   $res=List($res; Case(IsEmpty(FilterValues($res;$itm)); $itm))
                ]; Evaluate($LOOP))
             )"
          ];
             Evaluate($LOOP)
          )

  • Loop

  • Exit Loop If [ Let($n=$n+1; $n>5) ]

  • フィールド設定 [ フィールド1[$n] ; GetValue($UniqueValues; $n) ]

  • End Loop

#8 Re: 初心者のFileMaker pro Q&A » ルックアップについて » 2021-10-23 14:59:28

Lookup関数を使えば、その条件計算式に組み込めば、目的のことを実装出来ます。

#10 Re: 初心者のFileMaker pro Q&A » 経過日数の計算を同じフィールドから行う場合について » 2021-09-28 04:55:37

担当者をキーに自己リレーションを組み、
その担当者の関連入力日付の最大値と最小値から日数を算出します。
その式は、

      Max(自己リレーション::入力日) - Min(自己リレーション::入力日)

#11 Re: 初心者のFileMaker pro Q&A » 後学のために計算式が適切か教えていただきたいです。 » 2021-09-01 05:27:43

ベタベタと書くと
   ・Ceiling((小計+小計*0.1+(小計+小計*0.1)*0.1)/100)*100
要約すると
   ●Ceiling((小計*1.1^2)/100)*100

#12 Re: 初心者のFileMaker pro Q&A » List関数で繰り返しフィールドを使用した際、すべての繰り返しフィールドに半角スペースを挿入したい » 2021-08-29 05:07:55


Substitute(
   Choose(IsEmpty(List(繰り返しフィールド)); Char(32)&List(繰り返しフィールド))
   ; [Char(13);Char(13)&Char(32)]
)

#13 Re: 初心者のFileMaker pro Q&A » スクリプト IF に関して » 2021-08-18 05:38:38

・If (IsEmpty(Filter(A&B; "〇")) * Not(IsEmpty(A)) * Not(IsEmpty(B)))
・   YESの時の処理
・Else
・   NGの時の処理
・End If

#14 Re: 初心者のFileMaker pro Q&A » 繰り返しフィールドとリレーションについて » 2021-08-16 15:56:42

終わっていますが、
>#8『ExecuteSQL関数式を使ったことはありませんが、・・・これから勉強してみます。』

今回のようにFMでは難解なケースでも、
SQLを利用するといとも簡単に実装できることもあるので、
一度勉強しておくと非常に便利な機能です。

●ExecuteSQL関数式の作例サンプルを残しておきます。
※ただこの式指定だけですべて完了、超簡単ですネ!!
(テーブルAの「氏名」繰り返し[42回]計算フィールドの設定式)
ExecuteSQL(
  "
    SELECT ""氏名""
    FROM ""テーブルB""
    WHERE ""検査日""=?
  "
  ; ""
  ; "¶"
  ; 日付
)


●ついでに、「日付」繰り返し[42回]計算フィールドの式例も記して置くと、
(一般的な日曜日始まり6週次の月間カレンダー表示向けとしています)
Let([
  #日=Get(計算式繰り返し位置番号) - DayOfWeek(Date(月;1;年))
];
  Date(月;#日+1;年)
)

#15 Re: 初心者のFileMaker pro Q&A » 繰り返しフィールドとリレーションについて » 2021-08-14 04:54:17

氏名[42]にExecuteSQL関数式を適用して一発計算するのが、一番楽でしょう。
他の設定は一切必要ありません。
また、カレンダー表示するなら6週分の42回の日付枠が必要ですよ。

#16 Re: 初心者のFileMaker pro Q&A » 過去のトピックのサンプルファイルについて » 2021-07-24 00:56:50

移動先の新リンクです。
●サンプル「日次価格情報ダウンロード.fmp12」 → h ttps://yahoo.jp/box/wKE5Uq   → https://1drv.ms/u/s!AlaCGhTKTWEOgZpc1LN … A?e=EpQa4L

#17 Re: 初心者のFileMaker pro Q&A » 似た名称が複数ある場合のリレーションを特定させる方法を教えてください » 2021-06-16 22:06:30

リレーションの照合条件は「フィールド内容の完全一致」照合で、
「部分一致」照合ではありません。ですから、質問内容は全く杞憂ですネ。
ご自身で動作試験をして貰えれば、即確認できると......。

#18 Re: 初心者のFileMaker pro Q&A » 繰り返しフィールドの空白を含んだ結合をしたいのですが » 2021-06-12 03:09:07

「30行の固定行リスト」を得るものとして、その関数を生成してEvaluateで実行して求める方法です。

定義関数#fnc: "品名[1]&¶&品名[2]&¶&品名[3]&¶&・・・・・&¶&品名[30]&¶" & "&""|"""

Let([
   #fnc=Evaluate(Substitute(10^30-1; [9; "Let([$i=$i+1];""品名[""&$i&""]&""&Quote(""\¶"")&""&"")& " ]) &Quote("""|"""));    //定義関数を生成
   #res=Evaluate(#fnc);   //定義関数#fncを実行
   #res=Substitute(#res;["¶|";""])   //余分な末尾改行を除去
];
   #res
)

#19 Re: 初心者のFileMaker pro Q&A » 最頻値を求めるためのパフォーマンスの向上について » 2021-05-18 15:25:46

非効率と思われる「集計フィールド」や「リーレーション集計」の代わりに、ソート下を前提にした全置換式です。
結果はどうでしょうか?

Let(
[
   #flg=test::item<>$val;
   #cnt=Case(#flg; $num);
   $num=Case(#flg;1;$num+1);
   $val=test::item;
   $itm=Case(#flg; Case(#cnt=$cnt;List($itm;$val); #cnt>$cnt;$val; $itm); $itm);
   $cnt=Max($cnt; #cnt)
];
   Case(Get(レコード番号)=Get(対象レコード数); List($cnt; $itm))
)

#20 Re: 初心者のFileMaker pro Q&A » 最頻値を求めるためのパフォーマンスの向上について » 2021-05-18 04:47:35

#1>>『他にfilemakerだけでもっとパフォーマンスが上がる方法ないかご教授お願いいたします。』

ExecuteSQLやループスクリプトなど100万レコードで色々試した中で、最もパフォーマンスが良かった方法です。
「フィールド内容の全置換」をグローバルフィールドに適用するだけの至って簡便な方法です。

【設定手順】

  • itemフィールドは索引済であること

  • itemフィールドで照合する自己リレーション「テーブル 2」を設定しておく

  • 結果を格納するグローバルフィールド「result」を用意する

  • 「result」に計算値による全置換を掛けて結果を代入します
    その式は、

    Let(
    [
       #cnt=Count(テーブル 2::item);
       $itm=Case(
          $cnt=#cnt; List($itm; Case(FilterValues(テーブル::item;$itm)=Char(0); テーブル::item));
          $cnt<#cnt; テーブル::item;
          $itm);
       $cnt=Max($cnt; #cnt)
    ];
       Case(Get(レコード番号)=Get(対象レコード数); List($cnt;$itm))   //最後のレコードになったら最終結果を書き出す。
    )

#21 Re: 初心者のFileMaker pro Q&A » webビューアのjavascriptでの計算結果の取得について » 2021-05-17 11:40:47

パフォーマンス問題が主題なら、FM内解法での高速化をもう一度検討し直してみても良いかも?

#22 Re: 初心者のFileMaker pro Q&A » webビューアのjavascriptでの計算結果の取得について » 2021-05-16 23:43:53

解決済ですが、
もしWindows環境であるなら、 最新「webビューア+javascript関数」手法を使わない方法もあります。

「mshta javascript: ~JS構文~ 」でjsを外部実行して、その結果はクリップボード経由で返す方法です。
この方法は、最新v19版でなくとも有効な手法となります。

#23 Re: 初心者のFileMaker pro Q&A » レイアウト切り替えのスクリプトで、選択した商品のまま、カテゴリ分けをしたいです。 » 2021-05-16 22:46:16

面倒に考え過ぎているようです。

  • >#1『この商品番号の在庫状況を確認したいので、在庫状況レイアウトに飛ぶのですが』
    ポータル内の移動先商品番号のレコードを選択指定した状態で、「関連レコードへ移動」で在庫状況レイアウトに移動するだけです。
       

  • >#1『類似商品の在庫も一緒に見れればとと思っております。』
    移動した在庫状況レイアウトに類似商品を表示するポータルを設置します。

#24 Re: 初心者のFileMaker pro Q&A » タイル状の一覧画面 » 2021-05-16 12:14:07

>#1『ポータルを使わないタイル表示の方法?』
関連の過去ログは → ココ にあります。
過去ログは「画像」のタイル表示を目的としていますが、説明文も併記したいのであれば、
「テキスト」タイル表示用の繰り返しフィールドを追加、レイアウトに併記配置すればよいでしょう。

#25 Re: 初心者のFileMaker pro Q&A » UTF-8形式で書出し » 2021-05-15 17:06:27

あぁ、タイトル付MERで標準書き出して、Powershell でUTF-8へ単純一括変換するのが安全確実ですネ!

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.024 seconds, 8 queries executed - Memory usage: 643.8 KiB (Peak: 874.43 KiB) ]