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

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

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

You are not logged in.

Announcement

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


#26 2013-12-20 11:34:54

引栗
Guest

Re: 同一テーブル内で種別のナンバリングをふりたい

ああ、リレーションも違うんだった。しかし、「初出でも自身と照合します」のは、レコードを保存した後だけです。
新規レコードで初出の値を入れた場合は関連レコードなし(MAXは空欄。SerialIncrementの増分=数字としては0)です。

つまり、grp codeに同じ値を入れ直すと連番が増えてしまうのであった。普通はしないか。

前のバージョンでテキストフィールドのMAXが計算できないような話をみた気がするんですが、みつからない...
4桁揃えのフィールドは数字でなくテキストにするのが本当です。その場合連結時にGetAsTextは不要です。

#27 2013-12-20 12:36:13

おはりこ
Member

Re: 同一テーブル内で種別のナンバリングをふりたい

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

> not IsValid ( テーブル2::grp code ) ; 1 ;
> は、元々はgrp_codeが初出の場合の計算なので、Maxで処理されてる(関連レコードがなければ空)ので不要

私の前レスのリレーションでは、
初出の grp code の場合関連レコードが有りませんので、その場合の対処です。
引栗さんのリレーションでは、
初出でも自身と照合しますからこれが不要ということです。

チポ様の場合は、リレーションに  vol no > vol no も追加になっていて、というのもあって、ですよね。
…じゃないか。 Max だから、でしょうか。 Maxが 0 じゃなくて、該当無し、となっておかしくなってしまうふう…かな?
と想像してみました。

> グループコード(grp code)はすべて半角英数字3文字

この制限をかけることもできますよ。
上記の計算式に入れて「だめだよ」と表示とか、
別フィールドでアラート表示とか、
入力値の制限でとか、、

をを~…一応規則性のある3文字並びなので、半角英数字3文字だけれども
組み合わせ間違ってるよ、といったこともエラーチェックには必要になってくるので複雑になりそうです…
おそらく、先に追加されるコード名も照会先を用意しておいて…みたいな?…
すみません、今はこれ以上ノーミソがついていけません…が、
いろいろなお知恵をご検討くださり、感謝です。本当にありがとうございました。
またなにかとお世話になるかと思いますが、宜しくお願い致します。

Offline

#28 2014-01-29 00:50:14

おはりこ
Member

Re: 同一テーブル内で種別のナンバリングをふりたい

[ 解決 ] となっておりますが、後日 同内容の質問と思って おさらいしてみようとうっかり参加したところ
さらなる発展型で太刀打ちできず玉砕しましたが、 覚え書きにここに記させていただきます。

◆ 「同じIDの人を数える」  (ほぼ同条件)
http://www.russ.jp/stepbbs/step.cgi?mode=view&no=4276https://fm-aid.com/bbs2/viewtopic.php?id=860

◆ 「とある条件下でレコードに管理番号を自動入力したい」 (条件上乗せ)
https://fm-aid.com/bbs2/viewtopic.php?id=845   #12 ・ #13 ・ #14

引栗様、 解説をありがとうございました。
チポ様、 裏ワザのさらなる発展型、スマートで美しすぎます!

→ 「左右交換」できるのはシリアル値に数字部分が1か所しかないからです。複数あるとMAX値を加工する必要があって面倒になる。 @#12

→ 初出の場合のみ手入力すれば  SerialIncrement ( テーブル2::フィールドB ; Max ( テーブル2::フィールドB ) )で済み、
    追加メンテもいらなくなります @#13

→ 既存値から加算するんだから、データ自体がマスタのようになるのですねえ。 @#14

Offline

#29 2014-01-29 03:51:40

Hiro
Member

Re: 同一テーブル内で種別のナンバリングをふりたい

計算値自動入力、既存値置換、常に評価する→評価しない、にして
    SerialIncrement("0001";Max(テーブル2::grp_vol)) & Left(grp code;0)
とかも、あり?
(新規作成時などgrp codeが空欄は空欄を返し、入力/編集時は計算結果を返す。)

Last edited by Hiro (2014-01-29 04:18:41)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 15 queries executed - Memory usage: 510.78 KiB (Peak: 515.69 KiB) ]