みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
式が長ったらしいので、短くしたいのですが、わからなくなってしまいました。
ポイント計算のフィールドです。
------------------------------------------------------------
If ( 受注フラグ ≠ "注取NG" ;
If ((not IsEmpty ( 新規::エントリー日 ) and Left ( 新規::申込回線 ; 1 ) = "O" or Left ( 新規::申込回線 ; 1 ) = "S") or not IsEmpty ( 新規::工事予定日 ) and Left ( 新規::申込回線 ; 1 ) = "U";
Round (
施策ポイント 201502 ①::ポイント + 施策ポイント 201502 ②::ポイント +
ポイント 201502::ISPポイント +
ポイント 201507::ISPポイント +
ポイント 201604::ISPポイント +
ポイント 201606::ISPポイント +
ポイント 201607::ISPポイント +
ポイント 201701::ISPポイント +
Case ( 新規::マルチパック = "有" ; .2
) -
( GetAsNumber ( 新規申込施策::申込施策 ① ) + GetAsNumber ( 新規申込施策::申込施策 ② ) ) / 10000
; 2
); 0
); 0
)
+
If ( 新規::進捗 = "取得後取消" and 新規::申込ISP = "OCN 新規 東" ;
Case ( Date ( 1 ; 1 ; 2017 ) ≤ 新規::エントリー日 ; -.3 )
; 0
)
+
If ( 新規::進捗 = "取得後取消" and 新規::申込ISP = "OCN 新規 西" ;
Case ( Date ( 1 ; 1 ; 2017 ) ≤ 新規::エントリー日 ; -.3 )
; 0
)
+
If ( 新規::進捗 = "取得後取消" and 新規::申込ISP = "OCN 自不他" ;
Case ( Date ( 1 ; 1 ; 2017 ) ≤ 新規::エントリー日 ; -.2 )
; 0
)
------------------------------------------------------------
よろしくお願い致します。
OS:[win10]
FileMaker Ver:[Pro11]
FileMaker Server 11も利用
現在 コールシステムでファイルメーカーを利用してます。
Offline
余り短く成りそうもありませんが、
If(受注フラグ≠"注取NG";
If((IsEmpty(新規::エントリー日)=0 and Filter("OS";Left(新規::申込回線;1))≠"") or (IsEmpty(新規::工事予定日)=0 and Left(新規::申込回線;1)="U");
Round(
施策ポイント 201502 ①::ポイント+
施策ポイント 201502 ②::ポイント+
ポイント 201502::ISPポイント+
ポイント 201507::ISPポイント+
ポイント 201604::ISPポイント+
ポイント 201606::ISPポイント+
ポイント 201607::ISPポイント+
ポイント 201701::ISPポイント+
Case(新規::マルチパック="有";2/10) -
((新規申込施策::申込施策 ①)*1+(新規申込施策::申込施策 ②)*1)/10^4
;2) // Round
;0) // If
;0) // If+
//----------------------------------------------------------
If(新規::進捗="取得後取消" and 新規::申込ISP="OCN 新規 東";
Case(Date(1;1;2017)≤新規::エントリー日;-3/10)
;0) // If+
If(新規::進捗="取得後取消" and 新規::申込ISP="OCN 新規 西";
Case(Date(1;1;2017)≤新規::エントリー日;-3/10)
;0) // If
//----------------------------------------------------------もし "OCN 新規 東" と "OCN 新規 西" は同時に有ることが無ければ、
後尾2つの If() 式は1つの式に併合出来ます。If(新規::進捗="取得後取消" and Filter("OCN 新規 東西";新規::申込ISP)=新規::申込ISP;
Case(Date(1;1;2017)≤新規::エントリー日;-3/10)
;0) // If
【お詫び】 2017/1/9 12:19
上記式は最後の If() 式部が抜けてましたのでお詫びいたし、以下へ訂正いたします。
If(受注フラグ≠"注取NG";
If((IsEmpty(新規::エントリー日)=0 and Filter("OS";Left(新規::申込回線;1))≠"") or (IsEmpty(新規::工事予定日)=0 and Left(新規::申込回線;1)="U");
Round(
施策ポイント 201502 ①::ポイント+
施策ポイント 201502 ②::ポイント+
ポイント 201502::ISPポイント+
ポイント 201507::ISPポイント+
ポイント 201604::ISPポイント+
ポイント 201606::ISPポイント+
ポイント 201607::ISPポイント+
ポイント 201701::ISPポイント+
Case(新規::マルチパック="有";2/10) -
((新規申込施策::申込施策 ①)*1+(新規申込施策::申込施策 ②)*1)/10^4
;2) // Round
;0) // If
;0) // If
- // 減点(マイナス)
If(新規::進捗="取得後取消" and Date(1;1;2017)≤新規::エントリー日;
Case(
新規::申込ISP="OCN 新規 東";3/10;
新規::申込ISP="OCN 新規 西";3/10;
新規::申込ISP="OCN 自不他";2/10
;0) // Case
;0) // If
Last edited by Hiro (2017-01-09 13:10:29)
Offline
後半の3項をまとめる。
If ( 新規::進捗 = "取得後取消" and Date ( 1 ; 1 ; 2017 ) ≤ 新規::エントリー日 ;
Case (
新規::申込ISP = "OCN 新規 東" ; -.3 ;
新規::申込ISP = "OCN 新規 西" ; -.3 ;
新規::申込ISP = "OCN 自不他" ; -.2
)
)
ややこしい計算式は
内部計算の目的別に
計算フィールドに分解して
それおを最終的にまとめるようにすると
結構わかりやすくなるのはと思います。
フィールドが増えるというリスクはありますが
計算のチェックもしやすくなるのではないかと思います
Offline
ありがとうございます。
かなり短縮できたと思います。
質問
1.((新規申込施策::申込施策 ①)*1+(新規申込施策::申込施策 ②)*1)/10^4 ←「10^4」どういう意味ですか?
2. 新規::申込ISP="OCN 新規 東";3/10; ← 「/10」はどういう意味ですか?
よろしくお願いします。
OS:[win10]
FileMaker Ver:[Pro11]
FileMaker Server 11も利用
現在 コールシステムでファイルメーカーを利用してます。
Offline
> 1.((新規申込施策::申込施策 ①)*1+(新規申込施策::申込施策 ②)*1)/10^4 ←「10^4」どういう意味ですか
「10^4」は「10の4乗」の意味で、10000 の事です。
> 2. 新規::申込ISP="OCN 新規 東";3/10; ← 「/10」はどういう意味ですか?
「3/10」は「3割る10」の意味で、0.3 の事です。
Offline
すいません。初歩的な質問で。
ありがとうございます!
OS:[win10]
FileMaker Ver:[Pro11]
FileMaker Server 11も利用
現在 コールシステムでファイルメーカーを利用してます。
Offline
Pages: 1
[ Generated in 0.017 seconds, 10 queries executed - Memory usage: 521.98 KiB (Peak: 526.57 KiB) ]