लेबल मानों को फीचर क्लास में पाठ के साथ अशक्त मानों को बदलने के लिए


9

मुझे कुछ हाइड्रेट्स (अंक) को लेबल करने की आवश्यकता है - इनमें से कुछ फायर ब्रिगेड के हैं और उनके पास एक नंबर सौंपा गया है, कुछ नहीं है और इस तरह एक संख्या नहीं है। मैं इसकी तर्ज पर एक अभिव्यक्ति लिखना चाहूंगा:

यदि नंबर विद्यमान है, तो हाइड्रेंट का लेबल 'WO' के साथ अशक्त मान लेबल है।

मैं अभी इसका पता नहीं लगा सकता।

मेरे लिए ऐसा करने का सबसे सरल तरीका शून्य मानों को WO में बदलना होगा, लेकिन डेटा मेरा नहीं है, और मैं इसमें बदलाव नहीं करना चाहता। मुझे लगता है कि मैं एक कॉपी बना सकता था और कॉपी में मान डाल सकता था, लेकिन आदर्श रूप से मैं एक अभिव्यक्ति चाहूंगा।

धन्यवाद!


धन्यवाद, मुझे लगता है कि मुझे अभी भी कुछ याद आ रहा है कि मैं क्या कर रहा हूं: 1. परत में टिक लेबल विशेषताएँ 2. सुविधाओं के वर्ग को परिभाषित करें और प्रत्येक वर्ग को अलग-अलग लेबल करें 3. लेबल वर्ग संख्या जोड़ें 4. लेबल वर्ग WO 5 जोड़ें टिकटिक प्रत्येक <br/> 6. के तहत 'नंबर' के लिए 'लेबल इस वर्ग में सुविधाओं' पर क्लिक करें एसक्यूएल क्वेरी का उपयोग करें ( "SYMBOLCODE" = 3) और ( "FIREAUTHOR" <> "") 7. लेबल फ़ील्ड FIREAUTHOR पर सेट है 8. WO के लिए SQL है ("SYMBOLCODE" = 3) और ("FIREAUTHOR" = "") 9. अभिव्यक्ति "WO" है 10. त्रुटि प्राप्त करें 'कोई सुविधाएँ नहीं मिलीं।
जोर्प

जवाबों:


9

नल मानों के साथ सुविधाओं को लेबल करने के लिए आप इस तरह एक सरल स्क्रिप्ट का उपयोग कर सकते हैं।

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

1
यह आपको gis.se पर देखने के लिए बहुत अच्छा है। ईएसआरआई मंचों पर आपके जवाबों ने मुझे सहित कई लोगों की मदद की है।
देवदत्त तेंगशे

धन्यवाद - यह स्क्रिप्ट निश्चित रूप से साफ-सुथरी है, लेकिन शून्य मानों को WO के रूप में लेबल नहीं किया जा रहा है।
jorp

1
क्या आप उन मानों के साथ काम कर रहे हैं जो <Null> या विशेषता तालिका में रिक्त स्थान के रूप में दिखाई दे रहे हैं?
केंबुजा

3

यहाँ आप क्या कर सकते हैं।

  1. विधि के तहत लेबलिंग टैब के तहत दो लेबलिंग कक्षाएं सेट करें: सुविधाओं के आधारों को परिभाषित करें और प्रत्येक वर्ग को अलग-अलग लेबल करें।
  2. एक हाइड्रेंट वर्ग बनाएँ जिसमें संख्याएँ हों और एक जो न हो (जैसे संख्या, और WO)।
  3. संख्या वर्ग के लिए SQL क्वेरी को "MyLabelField" <> "" के रूप में परिभाषित करें
  4. नंबर वर्ग को सही लेबल फ़ील्ड पर इंगित करें।
  5. WO वर्ग के लिए SQL क्वेरी को "MyLabelField" = "" के रूप में परिभाषित करें
  6. अभिव्यक्ति विकल्प प्रकार के तहत WO वर्ग के लिए, "WO"
  7. लेबलिंग चालू करें।

2

इसके अलावा @kenbuja sript जो सही उत्तर है; यदि आपके पास अशक्त और 0 लंबाई के तार या रिक्त स्थान का संयोजन है जिसमें कोई वर्ण नहीं है तो आप ऐसा कुछ कर सकते हैं:

Function FindLabel ( [LABELFIELD] )
  if  isnull([LABELFIELD]) then
    FindLabel = "WO"
  elseif trim([LABELFIELD]) = "" then
    FindLabel = "WO"
  else
    FindLabel = ucase([LABELFIELD])
  end if
End Function
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.