2016-12-05 12 views
0

FileMaker Proバージョン11レコードの2つのフィールド:start_valueおよびend_valueとしましょう。FileMaker:前のレコードの別のフィールドの値を新しいレコードのフィールドに自動入力する方法

新しいレコードを作成する場合、前のレコードのend_value(テーブルの中で最も高いend_valueにする必要があります)からstart_valueを自動入力します。

私は旧式のCコーダーですが、これは私の最初のFileMakerの試行です。だから私に優しくしてください。 :-)

+0

なぜデータを複製する必要がありますか? –

+0

新しいレコードのstart_valueは、前のレコードのend_valueである必要があります。これはデータを複製するのではなく、前のレコードの別のフィールドのデータで新しいレコードのフィールドを自動入力します。 –

+0

値はすでに前のレコードに記録されています。それを次のレコード**にコピーするのは**複製です。場合によっては(パフォーマンス上の理由などで)必要な場合もありますが、ほとんどの場合、問題が発生するだけです(特にデータが編集された場合)。 –

答えて

0

カーテシアンの自己関係を使用し、start_valueフィールド定義に自動入力計算をMax(end_value)に追加することができます。 Max(end_value)は、関連するフィールドを参照する必要があり、ローカルフィールドは参照しません。

===

は、いくつかの命令を追加しました:

オープンデータベースを定義し、フィールドがSTART_VALUEとEND_VALUEあるテーブルのテーブルオカレンスを選択します。このテーブルの別のテーブルオカレンスを計算に追加することもできます。それをMyTableと呼んでみましょう。

MyTableを複製し、名前を付けます(例: MyTable_self

MyTableとMyTable_selfの関係を作成するには、任意のフィールドを使用しますが、好ましくは主キーです。

「リレーションシップの編集」を開き、リレーションシップの種類を結合(=)からデカルト(x)に変更します。

MyTableにstart_valueのファイル定義を開きます。

変更計算の「計算値」にオプションを自動入力して、式

Max(MyTable_self::end_value) 

を追加するコンテキストが私の最後の答えは非常識だった「MyTableという」に

+0

これは私が取るべき道にあるように見えます。しかし、私はFileMakerが初めてです。これを達成する方法の詳細を教えてください。 –

0

を持っています。私はあなたの問題を解決し、解決策を見つけました。

  1. 新しいフィールドmaxvalue(フィールドタイプ=サマリー)を作成します。
  2. .Aプロンプト
  3. クリックは「MAXVALUE」を指定して書き込み、その後END_VALUEフィールドを選択し
  4. 後藤START_VALUEフィールド - >フィールドオプション - >自動入力
  5. チェック計算値のチェックボックスの最大介して、最大値を見つけることを示します見積もりなし
+1

要約フィールドアプローチの問題は、見つかったセットで動作することです。最後のレコードが省略された場合、新しいレコードはstart_valueに正しくない値が設定されます。 –

+0

@NicolaiKantこれを指摘してくれてありがとう。 BDW私は仕事の解決策を提供したばかりのことを想定しませんでした。 – sam

+0

完全に見つかったセットがない場合は、うまくいきません。私はあなたの返信を批判しなかった、私はちょうど潜在的な問題を指摘した。 –

関連する問題