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

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

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

You are not logged in.

Announcement

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


#1 2018-08-13 23:11:51

r_1020
Guest

月単位で通しナンバーを振りたい

FM初心者です。
Windows10 FM8.5proです。

日付フィールドが有り、その月単位で通し番号
振るにはどの様にひたらいいかご教授お願いし
ます。

1件目のレコードが、平成30年8月13日というフィールドけざあり
通し番号フィールドに8-1とされ、
次の平成30年8月13日が8-2とされる
様なフィールドを作成したいです。

出来れば詳しくお願い致します。

#2 2018-08-14 07:28:44

Shin
Member

Re: 月単位で通しナンバーを振りたい

レコードの削除がなく、レコードの作成順で通し番号が打たれればいいのでしたら、
全体にシリアル番号を与えておきます。自動入力を設定したフィールドでいいです。
日付から、年月のフィールドを作ります。例えば、Year ( 日付 ) * 12 + Month ( 日付 )
年月のフィールドで自己リレーションをします。さらに、シリアル番号で自分以下、というリレーションの条件を加えます。
自己リレーション先のレコード数を、Count() を使って求めます。これば、年月ごとの通し番号になります。
これを加工して、月-通し番号 にすればいいでしょう。

Offline

#3 2018-08-14 18:27:07

r_1020
Guest

Re: 月単位で通しナンバーを振りたい

Shin様有難うございます。

私のレベルが低すぎ、以下の操作方法がわかりません。(すいません)

[日付から、年月のフィールドを作ります。例えば、Year ( 日付 ) * 12 + Month ( 日付 )
年月のフィールドで自己リレーションをします。さらに、シリアル番号で自分以下、というリレーションの条件を加えます。
自己リレーション先のレコード数を、Count() を使って求めます。これば、年月ごとの通し番号になります。
これを加工して、月-通し番号 にすればいいでしょう。]

ほかの似たような質問も見たのですが、わからなく。
大変あつかましいのですが、もーっと細かく工程ご教授お願いします。
お恥ずかしいお願いですが、よろしくお願いします。

#4 2018-08-15 00:46:34

Hiro
Member

Re: 月単位で通しナンバーを振りたい

SQL計算式だけで自動取得する、非常に簡潔な提案です。

  • 「レコードID」計算フィールドだけ追加する。
       式: Get(レコード ID)、タイプ:数字、索引:保存

  • 目的の「月次通し番号」計算フィールドを設定する。
       式: ※下式、タイプ:テキスト、索引:自動

  • 以上で設定完了、
       新規レコードで日付にデータ入力して、動作確認する。


ーーーーーーーーーーーーーーーー
※ 計算式
ーーーーーーーーーーーーーーーー
Month(日付)
&
"-"
&
ExecuteSQL(
   "
      SELECT COUNT(""レコードID"")
      FROM ""テーブル""
      WHERE ""日付"">=? AND ""日付""<? AND ""レコードID""<=?
   "
   ; ""
   ; ""
   ; Date(Month(日付);1;Year(日付))
   ; Date(Month(日付)+1;1;Year(日付))
   ; レコードID
)

ココで、
・日付 → 日付フィールド(索引:保存 設定のこと)
・""テーブル""→ ""自分のテーブル名""と入れ替えること。
・その他の ""レコードID""、""日付""、など ”” 囲み文字列はそのままで良い。

Last edited by Hiro (2018-08-15 01:07:20)

Offline

#5 2018-08-15 09:16:07

r_1020
Guest

Re: 月単位で通しナンバーを振りたい

Hiro様 ありがとうございます。

早速試しているのですが、
『レコードID』のフィールドを作り、Get(レコードID)にすると、「この引数はGer関数が無効な引数です」と表示されます。

入りで躓いてしまい、本当低レベルで申し訳ありません。。
再度ご教授お願いします。

#6 2018-08-15 09:44:28

Moz
Member

Re: 月単位で通しナンバーを振りたい

横から失礼。

Get ( レコード ID ) ですね。
分かりづらいのですが「レコード」と「ID」の間に半角スペースが入ります。

Offline

#7 2018-08-15 10:05:24

チポ
Member

Re: 月単位で通しナンバーを振りたい

FM8.5
だからExecuteSQLは使えませんよ。

また、
取得関数を手打ち入力するのは間違いの元ですよ。
関数の一覧から選択しましょう。

Shinさんの方法の何がわかりません?

Offline

#8 2018-08-15 10:21:32

Shin
Member

Re: 月単位で通しナンバーを振りたい

サンプルを見て学習してください。
https://www.dropbox.com/s/l12nz0up98yij … 7.zip?dl=0

Offline

#9 2018-08-15 11:17:59

r_1020
Guest

Re: 月単位で通しナンバーを振りたい

Moz様
ポチ様
ありがとうございます。

Shin様 ありがとうございます。
サンプル添付頂き感謝いたします。
早速試します。
また結果ご報告します。

#10 2018-08-15 13:56:52

r_1020
Guest

Re: 月単位で通しナンバーを振りたい

Shin様

サンプル通りで完成することが出来ました。
大変ありがとうございました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 8 queries executed - Memory usage: 522.06 KiB (Peak: 526.97 KiB) ]