サポート > PC-MAPPING ヒント集 > データベース > 【計算フィールド】 使用例(1) 様々な使用例
【計算フィールド】使用例(1) 様々な使用例
計算フィールドの基本的な設定方法については、ヒント集【計算フィールド】設定方法 を参照して下さい。
例-1
<A>+<B>*10+<C>*100+<D>*1000

[D]フィールドを1000倍し、[C]フィールドを100倍、[B]フィールドを10倍したものを加算し、さらに[A]フィールドを加算します。

例-2
<A>&<B>

[A]フィールドと[B]フィールドを文字列として結合します。

例-3
<ID>+(1-$IsForeground)*100

[ID]フィールドをこのDBのレイヤーが前景の時はそのまま、背景の時は100を加えた値にします。

例-4
$DbFolder&"\\"&<写真イメージ>

このDBのフォルダーと[写真イメージ]フィールドの属性を文字列として結合します。

例-5
cond($IsSelectedVec,<A>+1000,<A>)

レコードが選択状態の時($IsSelectVec=1)、このフィールドの値を<A>+1000とし、選択されていない時($IsSelectVec=0)、このフィールドの値を<A>とする事ができます。
よって、選択状態のベクターの描画を通常表示時の描画と異なる色で表示する事ができます(背景レイヤーでも影響します)。

例-6
cond(lt($DispScaleDenomi,2500), <A>+1000,<A>)

表示縮尺が1/2500以上(lt($DispScaleDenomi,2500)=0。つまり、$DispScaleDenomi<=2500)の場合、このフィールドの値を<A>+1000とします。
1/2500より小さい(lt($DispScaleDenomi,2500)=1。つまり、$DispScaleDenomi<2500)場合、このフィールドの値を<A>とします。
よって、表示縮尺によって異なる描画パラメータで表示する事ができます。

例-7
DateTimeDiff(<作業開始日>,<作業終了日>,2)

日付時刻型のフィールド[作業開始日]と[作業終了日]から、その期間の日数を表示します。
計算フィールドを表示するフィールドの型は整数型にします(「日間」と入れたい場合は、接尾語の設定を行って下さい)。

例-8
cond(lt(<地積>,10),<地積>,left(<地積>,len(<地積>)-3))

面積が入力されているフィールド[地積]の値で、10u以下の場合、実数小数点第2位まで表示し、10uより大きい場合、整数値で表示します。

例-9
cond(<枝番>,(<親番>&"-"&<枝番>),<親番>)

地番が[親番]と[枝番]のフィールド(整数型)に分かれています。
[枝番]フィールドに値があれば[親番]と[枝番]を"-"(ハイフン)でつないで表示し、[枝番]に値が入っていない(=0)の場合は[親番]のみをそのまま表示します。

例-10
cond(<Lng>,<Lng>,"-")

整数型のフィールド[Lng]があるとします。
「Lng」フィールドにゼロ以外の値があれば[Lng]の内容をそのまま表示しますが、ゼロの場合は文字型として計算結果のフィールド[Str]に"-(ハイフン)"で表示します(※画面上にはゼロを表示したくない場合)。
フィールド[Lng]:整数型
検索用
フィールド[Str]:文字型
表示用として利用。計算式はcond(<Lng>,<Lng>,"-")
["0"は表示しない]チェックボックスを使う事もできます。ただし、この場合は"-"は返しません。

例-11
RenderCaption(<ID>)

該当DBが内部属性の場合、<ID>フィールドの値で、パラメーターを検索し、その"キャプション"を返します。

▼ ポリゴンで参照している描画パラメーターセット

ポリゴンの内部属性フィールドに計算フィールド[種別:RenderCaption(<種別ID>)]を設定します。

<種別ID>フィールドの値に該当する描画パラメーターの"キャプション"が返されます。

例-12
cond(eq(<弁種>,101),<回転角度>+$ViewRot,<回転角度>)

以下のプロジェクトで、青いベクターシンボル(=仕切弁)は管に平行になるように、回転角度型で表示しています。
ここで回転をかけると、ベクターシンボルが回転してしまいます。
また、[プロジェクトエキスパート]-[環境-2]で「シンボルも合わせて回転する」のチェックをONにすると、今度は回転してほしくない仕切弁のシンボル以外(=メーターのシンボル)も回転してしまいます。
・弁種が仕切弁(整数型で101)であれば「回転角度」+「ウィンドウ回転角度($ViewRot)を表示。
・それ以外(メーター等)なら「回転角度」を表示。

と場合分けをしてベクターシンボルを表示します。

[プロジェクトエキスパート]-[環境-2]で「シンボルも合わせて回転する」のチェックをOFFにします。
表示用の回転角度を計算するフィールド「表示角度」を設定します。

計算フィールドに「cond(eq(<弁種>,101),<回転角度>+$ViewRot,<回転角度>)」と設定します。

[弁種]フィールド(整数型)が「101(=仕切弁)」の場合→「回転角度」+「ウィンドウ回転角度($ViewRot)でシンボルを表示。
[弁種]フィールド(整数型)が「101(=仕切弁)」以外の場合→「回転角度」フィールドの角度でシンボルを表示。

例-13
Round({面積}*100)/100、あるいは、currency({面積},2)

[面積]フィールド(実数型・表示小数桁数3桁)の小数部分3桁目を四捨五入します。
「currency」関数を使う場合は、計算結果は「文字型」になるので注意して下さい。
[面積表示1]フィールド(文字型)の計算式
→currency({面積},2)
[面積表示2]フィールド(実数型:表示小数桁数=2)の計算式
→Round({面積}*100)/100
【補足】
6桁目を四捨五入して5桁にする場合は、
  • Round({面積}*100000)/100000
  • currency({面積},5)
となります。

例-14
cond(eq({地目},1),"RGB(255,0,0)","RGB(255,255,255)")あるいはcond(comp({地目},"田"),"RGB(255,255,255)","RGB(0,0,255)")

[地目]フィールド(整数型)が1の場合、カラー型にRGB(255,0,0):赤色を設定します。
あるいは、[地目]フィールド(文字型)が田の場合、カラー型にRGB(255,0,0):赤色を設定します。

例-15
Rept("★",({総合危険度ランク}-1))

Rept(a,b)で文字列aをb回繰り返し結合した文字列にします。
データベース表示上で文字を使った簡易バーグラフができます。
下図では「総合危険度ランク」の値(半角整数で表示されている値)の数、★印を表示しています。

例-16
cond(comp({完成年号},"明治"),cond(comp({完成年号},"大正"),cond(comp({完成年号},"昭和"),cond(comp({完成年号},"平成"),0,4),3),2),1)

数値型であればeq()で比較を行う事ができますが、文字型の場合はcomp()を用いて比較を行ないます。
[年号判定]フィールド(計算フィールド:整数型)では、[完成年号]フィールド(文字型)が
  • "明治"であれば1を
  • "大正"であれば2を
  • "昭和"であれば3を
  • "平成"であれば4を
  • "それ以外"であれば0を
返します。