式にラベルを付けて、null値をフィーチャクラスにないテキストで置き換えます


9

いくつかの消火栓(ポイント)にラベルを付ける必要があります-これらのいくつかは消防隊に属していて番号が割り当てられています。次のような表現を書きたいと思います。

'消火栓に' WO 'のnull値ラベルがある場合は、数値が存在する場合は数値で消火栓にラベルを付けます。

私はそれを理解することができません。

これを行う最も簡単な方法は、null値をWOに変更することですが、データは私のものではないため、変更したくありません。コピーを作成して値をコピーに入れることができると思いますが、理想的には式が欲しいです。

ありがとう!


:おかげで、これは私がやっているものです私はまだ何かが欠けていると思う1目盛りラベル機能を層に2.選択「機能のクラスを定義し、各クラスにラベルを付け、異なる3.追加ラベルクラスナンバー4 WO追加ラベルクラス5 。各<br/>の[このクラスのラベル機能]にチェックマークを付けます。6. [番号]で[SQLクエリ]をクリックします( "SYMBOLCODE" = 3)AND( "FIREAUTHOR" <> "")7.ラベルフィールドはFIREAUTHORに設定されます8. WO SQLの場合、( "SYMBOLCODE" = 3)AND( "FIREAUTHOR" = "") 9.式は "WO" 10.エラーが発生する '機能が見つかりません。
jorp

回答:


9

このような簡単なスクリプトを使用して、フィーチャにNull値のラベルを付けることができます。

Function FindLabel ( [yourfield] )
  if isnull( [yourfield]) then
    FindLabel = "WO"
  else
    FindLabel = [yourfield]
  end if
End Function

1
gis.seでお会いできて光栄です。ESRIフォーラムでのあなたの回答は、私を含む多くの人々の役に立っています。
Devdatta Tengshe、2011年

ありがとう-このスクリプトは確かにきちんとしていますが、null値はWOとしてラベル付けされていません。
11

1
属性テーブルで<Null>または空白として表示される値を処理していますか?
kenbuja

3

これがあなたができることです。

  1. [方法:フィーチャのクラスを定義し、各クラスに異なるラベルを付ける]の[ラベリング]タブで、2つのラベリングクラスを設定します。
  2. 数字のある消火栓クラスと数字のない消火栓クラスを作成します(例:Number、&WO)。
  3. 数値クラスの場合、SQLクエリを次のように定義します: "MyLabelField" <> ""
  4. 数値クラスを正しいラベルフィールドにポイントします。
  5. WOクラスの場合、SQLクエリを "MyLabelField" = ""として定義します
  6. 式オプションタイプの「WO」のWOクラスの場合
  7. ラベル付けをオンにします。

2

正しい答えである@kenbuja sriptに加えて; nullと0の長さの文字列または文字のないスペースの組み合わせがある場合、次のようにすることができます。

Function FindLabel ( [LABELFIELD] )
  if  isnull([LABELFIELD]) then
    FindLabel = "WO"
  elseif trim([LABELFIELD]) = "" then
    FindLabel = "WO"
  else
    FindLabel = ucase([LABELFIELD])
  end if
End Function
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.