みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
計算式マスタに
個数*100
というレコードを作成しておきIDでリレーションして呼び出し
スクリプトでEvaluateを使い、ポータル上のフィールドに計算結果を保存します
このとき、
計算式マスタ::個数*100 という形になっていないと?となってしまいます
テーブル名を変更したときのことを考慮して
スクリプトに変数で変数を定義して
$テーブル名 = Get (アクティブフィールドテーブル名) & "::"
として、計算式マスタには
( $テーブル名 & 個数*100)
としましたが計算されません
デバックでみると変数には
計算式マスタ::
が入っていますが
計算式は代入されておらず
( $テーブル名 & 個数*100) のままです
どのようにしたらよいのでしょうか?
Offline
同じテーブル内で計算するのでしたら、テーブル名は気にしなくていいですよ。
Evaluate() の引数は、$テーブル名 & ”個数*100” になっていますか。
Offline
詳細を書いておりませんでしたので、再度質問させていただきます
親テーブル
子テーブル
計算式テーブルがあります
子テーブルをポータル表示していて、そのレコードの計算式ID(子テーブルに入力)に対応した計算式を
計算式テーブルから呼び出します
子ID 計算式ID 個数 金額(計算フィールド)
1 001 5 500
といったかたちです
子テーブルの金額フィールドに
Evaluate( 計算式テーブル::計算式 )
とすると、計算式テーブルに保存してある
個数 * 100
というものがとりだされ
上記のように金額が計算されます
ところが
スクリプトのフィールド設定で金額フィールドに
Evaluate( 計算式テーブル::計算式 )
としても計算されません
どうやったらいいのでしょうか?
Last edited by LZZY (2018-01-05 18:50:05)
Offline
未検証、机上の推論ですが、
恐らく、スクリプト内のフィールド指定だから、完全修飾形式での指名が必要かと?
個数 * 100 → 子テーブル::個数 * 100
Offline
そうだと思います
その
子テーブル::
というところを使いまわしができるように
変数にするにはどうやったらいいですか?
$変数::個数*100
としてEvaluateで計算させたいですがうまくいきません
Offline
こんな感じかな?試してみて下さい。
Evaluate($変数 & "::" & 計算式テーブル::計算式)
前提として、
・$変数に "子テーブル" が入っていて、
・計算式テーブル::計算式に "個数*100" が返される
ことを確認できていること。
Offline
計算式テーブルのレコードを
子テーブル::個数*100
にして
Evaluate( 計算式テーブル::計算式 )
とすると計算されました
計算式を
個数*100 に戻して
Evaluate($変数 & "::" & 計算式テーブル::計算式)
ですと、やはり?になってしまします
Offline
子テーブルのコンテキストで計算しないと計算式テーブル::計算式の値が得られないのでは。
Offline
フィールド名を完全修飾にしなくても入力されましたよ。
何か他の原因では?
フィールドが「個数」で固定なら、
計算式テーブルを単価だけにして、個数に掛けてやればいいのでは。
Offline
Pages: 1
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 517.29 KiB (Peak: 521.83 KiB) ]