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

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

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

You are not logged in.

Announcement

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


#1 2022-09-08 14:34:52

ひな
Member

注文データで、同一顧客で複数商品あるものと、単品注文に識別フラグを付けたい

よろしくお願いいたします。

テーブル :注文データ①
フィールド:注文No(自動生成 001・・)、顧客情報等

テーブル :注文データ②
フィールド:注文No、商品コード、数量、金額等

①のテーブルレイアウトに、ポータルで②を入れて、
1回の注文で複数の商品を登録できるようにしています。

そして、②のレイアウトでは、
例えば、注文No順にデータが並んでいます。

そこで、注文Noが一つしかない場合は、識別用フィールドを作成して、「単独」。
同じ注文Noが2つあるときは、それぞれに「開始」、「終了」。
3つ以上あるときは、「開始」「継続」「終了」。と入れたい。
  ※発注システムにインポートするためにどうしても必要な項目なのです。

いい方法はないでしょうか?

従来は、Excelのマクロでそういう動作をさせていたのですが、
メンテできる人がいなく、ファイルメーカーで作り変えたいと考えています。

よろしくお願いいたします。

Offline

#2 2022-09-08 16:34:51

ひな
Member

Re: 注文データで、同一顧客で複数商品あるものと、単品注文に識別フラグを付けたい

とりあえず、自己解決?

過去の投稿から、
シリアル番号を作り、さらに一つ前のシリアル番号、一つ後のシリアル番号の計算フィールドを作って、
自己リレーションかけて、前後の注文Noを表示させることができたので、
if関数で、開始、継続、終了 と表示させることが可能になりました。

一つ難点が・・
シリアル番号は、注文No順に振っているのですが、同じ注文Noの中で
商品の追加や削除があると、シリアル番号が飛んだり欠番になったりします。

この場合、注文入力を終えた都度スクリプトを走らせ、
シリアル番号をExcelのオートフィルみたいに、1から連番を自動付与しなおすことって
できるんでしょうか?

Offline

#3 2022-09-08 16:42:19

チポ
Member

Re: 注文データで、同一顧客で複数商品あるものと、単品注文に識別フラグを付けたい

注文データ② で注文Noで自己リレーション

識別用フィールドの計算式
Case ( Count ( 注文データ② 2::注文No = 1 ) ; "単独" ;
          注文データ② 2::レコードID = レコードID ; "開始" ;
          Last ( 注文データ② 2::レコードID ) = レコードID ; "終了" ;
          "継続" )

リレーション照合順になります。
(リレーションでソート設定しなければ、レコード作製順ですね)


> 1から連番を自動付与しなおす
フィールド内容の全置換
でシリアル番号を振れます。

Offline

#4 2022-09-08 17:05:58

ひな
Member

Re: 注文データで、同一顧客で複数商品あるものと、単品注文に識別フラグを付けたい

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

ここでいう、レコードID とは、新たにフィールドを作って、Get(レコードID)とするのでしょうか?


> 1から連番を自動付与しなおす
フィールド内容の全置換
でシリアル番号を振れます。

→ おお! なんと初歩的な質問をしてしまいました!
  ありがとうございました。

Offline

#5 2022-09-09 14:32:02

チポ
Member

Re: 注文データで、同一顧客で複数商品あるものと、単品注文に識別フラグを付けたい

レコードIDと書きましたが、
シリアル番号等ユニークな値なら何でも可です。

もちろん、Get ( レコードID ) でもいいんですよ。

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, 8 queries executed - Memory usage: 509.19 KiB (Peak: 513.73 KiB) ]