180 likes | 342 Views
Labeling “ Chemboxes ” in ArcGIS. Automating Sampling D ata L abels. Problem. We needed constantly updated maps of groundwater well sampling results. The n eed for maps showing one year of data or three years of data. Not too many examples of this on the Internet. Solution.
E N D
Labeling “Chemboxes” in ArcGIS Automating SamplingData Labels
Problem • We needed constantly updated maps of groundwater well sampling results. • The need for maps showing one year of data or three years of data. • Not too many examples of this on the Internet. Solution • Automate labeling using VBScript Expression
Benefits of Scripting • Easy to update data on the map • Time frame of data shown can easily be changed • Results above an action level can be shown in bold to stand out. • Avoid typos and incorrect data. Data errors can be blamed on the lab. • Data is presented uniformly.
Process Dim w w = 2 bold="<_BOL>" unbold = "</_BOL>" Dim TheLabel If InStr([Res_results2.N2009_01], "<") Then [Res_results2.N2009_01] = Replace([Res_results2.N2009_01], "<", "<") Else [Res_results2.N2009_01] = [Res_results2.N2009_01] End If If IsNumeric(trim([Res_results2.N2009_01])) Then If cint(trim([Res_results2.N2009_01])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_01]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_01] & " (1/09)" & unbold bold="<_BOL>" unbold = "</_BOL>" End if If InStr([Res_results2.N2009_02], "<") Then [Res_results2.N2009_02] = Replace([Res_results2.N2009_02], "<", "<") Else [Res_results2.N2009_02] = [Res_results2.N2009_02] End If If IsNumeric(trim([Res_results2.N2009_02])) Then If cint(trim([Res_results2.N2009_02])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_02]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_02] & " (2/09)" & unbold end if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_03], "<") Then [Res_results2.N2009_03] = Replace([Res_results2.N2009_03], "<", "<") Else [Res_results2.N2009_03] = [Res_results2.N2009_03] End If If IsNumeric(trim([Res_results2.N2009_03])) Then If cint(trim([Res_results2.N2009_03])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_03]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_03] & " (3/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.A2009_04], "<") Then [Res_results2.A2009_04] = Replace([Res_results2.A2009_04], "<", "<") Else [Res_results2.A2009_04] = [Res_results2.A2009_04] End If If IsNumeric(trim([Res_results2.A2009_04])) Then If cint(trim([Res_results2.A2009_04])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.A2009_04]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.A2009_04] & " (4/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_06], "<") Then [Res_results2.N2009_06] = Replace([Res_results2.N2009_06], "<", "<") Else [Res_results2.N2009_06] = [Res_results2.N2009_06] End If If IsNumeric(trim([Res_results2.N2009_06])) Then If cint(trim([Res_results2.N2009_06])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_06]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_06] & " (6/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_07], "<") Then [Res_results2.N2009_07] = Replace([Res_results2.N2009_07], "<", "<") Else [Res_results2.N2009_07] = [Res_results2.N2009_07] End If If IsNumeric(trim([Res_results2.N2009_07])) Then If cint(trim([Res_results2.N2009_07])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_07]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_07] & " (7/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_08], "<") Then [Res_results2.N2009_08] = Replace([Res_results2.N2009_08], "<", "<") Else [Res_results2.N2009_08] = [Res_results2.N2009_08] End If If IsNumeric(trim([Res_results2.N2009_08])) Then If cint(trim([Res_results2.N2009_08])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_08]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_08] & " (8/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.A2009_09], "<") Then [Res_results2.A2009_09] = Replace([Res_results2.A2009_09], "<", "<") Else [Res_results2.A2009_09] = [Res_results2.A2009_09] End If If IsNumeric(trim([Res_results2.A2009_09])) Then If cint(trim([Res_results2.A2009_09])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.A2009_09]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.A2009_09] & " (9/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_11], "<") Then [Res_results2.N2009_11] = Replace([Res_results2.N2009_11], "<", "<") Else [Res_results2.N2009_11] = [Res_results2.N2009_11] End If If IsNumeric(trim([Res_results2.N2009_11])) Then If cint(trim([Res_results2.N2009_11])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_11]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_11] & " (11/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_12], "<") Then [Res_results2.N2009_12] = Replace([Res_results2.N2009_12], "<", "<") Else [Res_results2.N2009_12] = [Res_results2.N2009_12] End If If IsNumeric(trim([Res_results2.N2009_12])) Then If cint(trim([Res_results2.N2009_12])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_12]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_12] & " (12/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_03], "<") Then [Res_results2.N2010_03] = Replace([Res_results2.N2010_03], "<", "<") Else [Res_results2.N2010_03] = [Res_results2.N2010_03] End If If IsNumeric(trim([Res_results2.N2010_03])) Then If cint(trim([Res_results2.N2010_03])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_03]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_03] & " (3/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_06], "<") Then [Res_results2.N2010_06] = Replace([Res_results2.N2010_06], "<", "<") Else [Res_results2.N2010_06] = [Res_results2.N2010_06] End If If IsNumeric(trim([Res_results2.N2010_06])) Then If cint(trim([Res_results2.N2010_06])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_06]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_06] & " (6/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_07], "<") Then [Res_results2.N2010_07] = Replace([Res_results2.N2010_07], "<", "<") Else [Res_results2.N2010_07] = [Res_results2.N2010_07] End If If IsNumeric(trim([Res_results2.N2010_07])) Then If cint(trim([Res_results2.N2010_07])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_07]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_07] & " (7/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_09], "<") Then [Res_results2.N2010_09] = Replace([Res_results2.N2010_09], "<", "<") Else [Res_results2.N2010_09] = [Res_results2.N2010_09] End If If IsNumeric(trim([Res_results2.N2010_09])) Then If cint(trim([Res_results2.N2010_09])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_09]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_09] & " (9/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_10], "<") Then [Res_results2.N2010_10] = Replace([Res_results2.N2010_10], "<", "<") Else [Res_results2.N2010_10] = [Res_results2.N2010_10] End If If IsNumeric(trim([Res_results2.N2010_10])) Then If cint(trim([Res_results2.N2010_10])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_10]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_10] & " (10/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_11], "<") Then [Res_results2.N2010_11] = Replace([Res_results2.N2010_11], "<", "<") Else [Res_results2.N2010_11] = [Res_results2.N2010_11] End If If IsNumeric(trim([Res_results2.N2010_11])) Then If cint(trim([Res_results2.N2010_11])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_11]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_11] & " (11/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_12], "<") Then [Res_results2.N2010_12] = Replace([Res_results2.N2010_12], "<", "<") Else [Res_results2.N2010_12] = [Res_results2.N2010_12] End If If IsNumeric(trim([Res_results2.N2010_12])) Then If cint(trim([Res_results2.N2010_12])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_12]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_12] & " (12/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_01], "<") Then [Res_results2.N2011_01] = Replace([Res_results2.N2011_01], "<", "<") Else [Res_results2.N2011_01] = [Res_results2.N2011_01] End If If IsNumeric(trim([Res_results2.N2011_01])) Then If cint(trim([Res_results2.N2011_01])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_01]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2011_01] & " (1/11)" & unbold bold="<_BOL>" unbold = "</_BOL>" End if If InStr([Res_results2.N2011_02], "<") Then [Res_results2.N2011_02] = Replace([Res_results2.N2011_02], "<", "<") Else [Res_results2.N2011_02] = [Res_results2.N2011_02] End If If IsNumeric(trim([Res_results2.N2011_02])) Then If cint(trim([Res_results2.N2011_02])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End IF If trim([Res_results2.N2011_02]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_02] & " (2/11)"& unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_03], "<") Then [Res_results2.N2011_03] = Replace([Res_results2.N2011_03], "<", "<") Else [Res_results2.N2011_03] = [Res_results2.N2011_03] End If If IsNumeric(trim([Res_results2.N2011_03])) Then If cint(trim([Res_results2.N2011_03])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_03]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_03] & " (3/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_04], "<") Then [Res_results2.N2011_04] = Replace([Res_results2.N2011_04], "<", "<") Else [Res_results2.N2011_04] = [Res_results2.N2011_04] End If If IsNumeric(trim([Res_results2.N2011_04])) Then If cint(trim([Res_results2.N2011_04])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_04]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_04] & " (4/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_05], "<") Then [Res_results2.N2011_05] = Replace([Res_results2.N2011_05], "<", "<") Else [Res_results2.N2011_05] = [Res_results2.N2011_05] End If If IsNumeric(trim([Res_results2.N2011_05])) Then If cint(trim([Res_results2.N2011_05])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_05]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_05] & " (5/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_06], "<") Then [Res_results2.N2011_06] = Replace([Res_results2.N2011_06], "<", "<") Else [Res_results2.N2011_06] = [Res_results2.N2011_06] End If If IsNumeric(trim([Res_results2.N2011_06])) Then If cint(trim([Res_results2.N2011_06])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_06]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_06] & " (6/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_07], "<") Then [Res_results2.N2011_07] = Replace([Res_results2.N2011_07], "<", "<") Else [Res_results2.N2011_07] = [Res_results2.N2011_07] End If If IsNumeric(trim([Res_results2.N2011_07])) Then If cint(trim([Res_results2.N2011_07])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_07]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_07] & " (7/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_08], "<") Then [Res_results2.N2011_08] = Replace([Res_results2.N2011_08], "<", "<") Else [Res_results2.N2011_08] = [Res_results2.N2011_08] End If If IsNumeric(trim([Res_results2.N2011_08])) Then If cint(trim([Res_results2.N2011_08])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_08]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_08] & " (8/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_09], "<") Then [Res_results2.N2011_09] = Replace([Res_results2.N2011_09], "<", "<") Else [Res_results2.N2011_09] = [Res_results2.N2011_09] End If If IsNumeric(trim([Res_results2.N2011_09])) Then If cint(trim([Res_results2.N2011_09])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_09]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_09] & " (9/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_10], "<") Then [Res_results2.N2011_10] = Replace([Res_results2.N2011_10], "<", "<") Else [Res_results2.N2011_10] = [Res_results2.N2011_10] End If If IsNumeric(trim([Res_results2.N2011_10])) Then If cint(trim([Res_results2.N2011_10])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_10]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_10] & " (10/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_11], "<") Then [Res_results2.N2011_11] = Replace([Res_results2.N2011_11], "<", "<") Else [Res_results2.N2011_11] = [Res_results2.N2011_11] End If If IsNumeric(trim([Res_results2.N2011_11])) Then If cint(trim([Res_results2.N2011_11])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_11]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_11] & " (11/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_12], "<") Then [Res_results2.N2011_12] = Replace([Res_results2.N2011_12], "<", "<") Else [Res_results2.N2011_12] = [Res_results2.N2011_12] End If If IsNumeric(trim([Res_results2.N2011_12])) Then If cint(trim([Res_results2.N2011_12])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_12]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_12] & " (12/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2012_02], "<") Then [Res_results2.N2012_02] = Replace([Res_results2.N2012_02], "<", "<") Else [Res_results2.N2012_02] = [Res_results2.N2012_02] End If If IsNumeric(trim([Res_results2.N2012_02])) Then If cint(trim([Res_results2.N2012_02])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2012_02]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2012_02] & " (2/12)" & unbold End If TheLabel = Replace([Perchlorate_Monitoring_Locations.WC_Location], "&", "&") & TheLabel FindLabel = TheLabel End Function Flatten data tables (data from Lab or data validation) Join data to shapefile containing sample locations Write VBScript Expression
Flatten data tables • Pivot Table in Excel • Or build a query to output a flattened table in Microsoft Access • Also know as denormalizing a database This makes it easier to join your Sample/Well Locations to your sample data. Allows for simple access to data for scripting labels in ArcGIS. No need for data arrays or FOR NEXT programming Loops. Function FindLabel ( [Perchlorate_Monitoring_Locations.LOCATION], [Perchlorate_Monitoring_Locations.WC_Location] , [Perchlorate_Monitoring_Locations.PARID], [Res_results2.N2012_02] , [Res_results2.N2011_12] , [Res_results2.N2011_11] , [Res_results2.N2011_10] , [Res_results2.N2011_09] , [Res_results2.N2011_08] , [Res_results2.N2011_07] , [Res_results2.N2011_06] , [Res_results2.N2011_05] , [Res_results2.N2011_04] , [Res_results2.N2011_03] , [Res_results2.N2011_02] , [Res_results2.N2011_01], [Res_results2.N2009_01], [Res_results2.N2009_02], [Res_results2.N2009_03], [Res_results2.N2009_04], [Res_results2.N2009_06], [Res_results2.N2009_07], [Res_results2.N2009_08] , [Res_results2.N2009_09] , [Res_results2.N2009_11] , [Res_results2.N2009_12] , [Res_results2.N2010_03] , [Res_results2.N2010_06] , [Res_results2.N2010_07] , [Res_results2.N2010_09] , [Res_results2.N2010_10] , [Res_results2.N2010_11] , [Res_results2.N2010_12], [Res_results2.A2009_04] , [Res_results2.A2009_09] ) Dim w w = 2 bold="<_BOL>" unbold = "</_BOL>" Dim TheLabel If InStr([Res_results2.N2009_01], "<") Then [Res_results2.N2009_01] = Replace([Res_results2.N2009_01], "<", "<") Else [Res_results2.N2009_01] = [Res_results2.N2009_01] End If If IsNumeric(trim([Res_results2.N2009_01])) Then If cint(trim([Res_results2.N2009_01])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_01]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_01] & " (1/09)" & unbold bold="<_BOL>" unbold = "</_BOL>" End if If InStr([Res_results2.N2009_02], "<") Then [Res_results2.N2009_02] = Replace([Res_results2.N2009_02], "<", "<") Else [Res_results2.N2009_02] = [Res_results2.N2009_02] End If If IsNumeric(trim([Res_results2.N2009_02])) Then If cint(trim([Res_results2.N2009_02])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_02]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_02] & " (2/09)" & unbold end if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_03], "<") Then [Res_results2.N2009_03] = Replace([Res_results2.N2009_03], "<", "<") Else [Res_results2.N2009_03] = [Res_results2.N2009_03] End If If IsNumeric(trim([Res_results2.N2009_03])) Then If cint(trim([Res_results2.N2009_03])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_03]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_03] & " (3/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.A2009_04], "<") Then [Res_results2.A2009_04] = Replace([Res_results2.A2009_04], "<", "<") Else [Res_results2.A2009_04] = [Res_results2.A2009_04] End If If IsNumeric(trim([Res_results2.A2009_04])) Then If cint(trim([Res_results2.A2009_04])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.A2009_04]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.A2009_04] & " (4/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_06], "<") Then [Res_results2.N2009_06] = Replace([Res_results2.N2009_06], "<", "<") Else [Res_results2.N2009_06] = [Res_results2.N2009_06] End If If IsNumeric(trim([Res_results2.N2009_06])) Then If cint(trim([Res_results2.N2009_06])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_06]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_06] & " (6/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_07], "<") Then [Res_results2.N2009_07] = Replace([Res_results2.N2009_07], "<", "<") Else [Res_results2.N2009_07] = [Res_results2.N2009_07] End If If IsNumeric(trim([Res_results2.N2009_07])) Then If cint(trim([Res_results2.N2009_07])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_07]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_07] & " (7/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_08], "<") Then [Res_results2.N2009_08] = Replace([Res_results2.N2009_08], "<", "<") Else [Res_results2.N2009_08] = [Res_results2.N2009_08] End If If IsNumeric(trim([Res_results2.N2009_08])) Then If cint(trim([Res_results2.N2009_08])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_08]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_08] & " (8/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.A2009_09], "<") Then [Res_results2.A2009_09] = Replace([Res_results2.A2009_09], "<", "<") Else [Res_results2.A2009_09] = [Res_results2.A2009_09] End If If IsNumeric(trim([Res_results2.A2009_09])) Then If cint(trim([Res_results2.A2009_09])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.A2009_09]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.A2009_09] & " (9/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_11], "<") Then [Res_results2.N2009_11] = Replace([Res_results2.N2009_11], "<", "<") Else [Res_results2.N2009_11] = [Res_results2.N2009_11] End If If IsNumeric(trim([Res_results2.N2009_11])) Then If cint(trim([Res_results2.N2009_11])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_11]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_11] & " (11/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2009_12], "<") Then [Res_results2.N2009_12] = Replace([Res_results2.N2009_12], "<", "<") Else [Res_results2.N2009_12] = [Res_results2.N2009_12] End If If IsNumeric(trim([Res_results2.N2009_12])) Then If cint(trim([Res_results2.N2009_12])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2009_12]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_12] & " (12/09)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_03], "<") Then [Res_results2.N2010_03] = Replace([Res_results2.N2010_03], "<", "<") Else [Res_results2.N2010_03] = [Res_results2.N2010_03] End If If IsNumeric(trim([Res_results2.N2010_03])) Then If cint(trim([Res_results2.N2010_03])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_03]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_03] & " (3/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_06], "<") Then [Res_results2.N2010_06] = Replace([Res_results2.N2010_06], "<", "<") Else [Res_results2.N2010_06] = [Res_results2.N2010_06] End If If IsNumeric(trim([Res_results2.N2010_06])) Then If cint(trim([Res_results2.N2010_06])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_06]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_06] & " (6/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_07], "<") Then [Res_results2.N2010_07] = Replace([Res_results2.N2010_07], "<", "<") Else [Res_results2.N2010_07] = [Res_results2.N2010_07] End If If IsNumeric(trim([Res_results2.N2010_07])) Then If cint(trim([Res_results2.N2010_07])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_07]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_07] & " (7/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_09], "<") Then [Res_results2.N2010_09] = Replace([Res_results2.N2010_09], "<", "<") Else [Res_results2.N2010_09] = [Res_results2.N2010_09] End If If IsNumeric(trim([Res_results2.N2010_09])) Then If cint(trim([Res_results2.N2010_09])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_09]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_09] & " (9/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_10], "<") Then [Res_results2.N2010_10] = Replace([Res_results2.N2010_10], "<", "<") Else [Res_results2.N2010_10] = [Res_results2.N2010_10] End If If IsNumeric(trim([Res_results2.N2010_10])) Then If cint(trim([Res_results2.N2010_10])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_10]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_10] & " (10/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_11], "<") Then [Res_results2.N2010_11] = Replace([Res_results2.N2010_11], "<", "<") Else [Res_results2.N2010_11] = [Res_results2.N2010_11] End If If IsNumeric(trim([Res_results2.N2010_11])) Then If cint(trim([Res_results2.N2010_11])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_11]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_11] & " (11/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2010_12], "<") Then [Res_results2.N2010_12] = Replace([Res_results2.N2010_12], "<", "<") Else [Res_results2.N2010_12] = [Res_results2.N2010_12] End If If IsNumeric(trim([Res_results2.N2010_12])) Then If cint(trim([Res_results2.N2010_12])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2010_12]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2010_12] & " (12/10)" & unbold End if bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_01], "<") Then [Res_results2.N2011_01] = Replace([Res_results2.N2011_01], "<", "<") Else [Res_results2.N2011_01] = [Res_results2.N2011_01] End If If IsNumeric(trim([Res_results2.N2011_01])) Then If cint(trim([Res_results2.N2011_01])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_01]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2011_01] & " (1/11)" & unbold bold="<_BOL>" unbold = "</_BOL>" End if If InStr([Res_results2.N2011_02], "<") Then [Res_results2.N2011_02] = Replace([Res_results2.N2011_02], "<", "<") Else [Res_results2.N2011_02] = [Res_results2.N2011_02] End If If IsNumeric(trim([Res_results2.N2011_02])) Then If cint(trim([Res_results2.N2011_02])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End IF If trim([Res_results2.N2011_02]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_02] & " (2/11)"& unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_03], "<") Then [Res_results2.N2011_03] = Replace([Res_results2.N2011_03], "<", "<") Else [Res_results2.N2011_03] = [Res_results2.N2011_03] End If If IsNumeric(trim([Res_results2.N2011_03])) Then If cint(trim([Res_results2.N2011_03])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_03]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_03] & " (3/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_04], "<") Then [Res_results2.N2011_04] = Replace([Res_results2.N2011_04], "<", "<") Else [Res_results2.N2011_04] = [Res_results2.N2011_04] End If If IsNumeric(trim([Res_results2.N2011_04])) Then If cint(trim([Res_results2.N2011_04])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_04]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_04] & " (4/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_05], "<") Then [Res_results2.N2011_05] = Replace([Res_results2.N2011_05], "<", "<") Else [Res_results2.N2011_05] = [Res_results2.N2011_05] End If If IsNumeric(trim([Res_results2.N2011_05])) Then If cint(trim([Res_results2.N2011_05])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_05]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_05] & " (5/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_06], "<") Then [Res_results2.N2011_06] = Replace([Res_results2.N2011_06], "<", "<") Else [Res_results2.N2011_06] = [Res_results2.N2011_06] End If If IsNumeric(trim([Res_results2.N2011_06])) Then If cint(trim([Res_results2.N2011_06])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_06]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_06] & " (6/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_07], "<") Then [Res_results2.N2011_07] = Replace([Res_results2.N2011_07], "<", "<") Else [Res_results2.N2011_07] = [Res_results2.N2011_07] End If If IsNumeric(trim([Res_results2.N2011_07])) Then If cint(trim([Res_results2.N2011_07])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_07]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_07] & " (7/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_08], "<") Then [Res_results2.N2011_08] = Replace([Res_results2.N2011_08], "<", "<") Else [Res_results2.N2011_08] = [Res_results2.N2011_08] End If If IsNumeric(trim([Res_results2.N2011_08])) Then If cint(trim([Res_results2.N2011_08])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_08]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_08] & " (8/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_09], "<") Then [Res_results2.N2011_09] = Replace([Res_results2.N2011_09], "<", "<") Else [Res_results2.N2011_09] = [Res_results2.N2011_09] End If If IsNumeric(trim([Res_results2.N2011_09])) Then If cint(trim([Res_results2.N2011_09])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_09]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_09] & " (9/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_10], "<") Then [Res_results2.N2011_10] = Replace([Res_results2.N2011_10], "<", "<") Else [Res_results2.N2011_10] = [Res_results2.N2011_10] End If If IsNumeric(trim([Res_results2.N2011_10])) Then If cint(trim([Res_results2.N2011_10])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_10]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_10] & " (10/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_11], "<") Then [Res_results2.N2011_11] = Replace([Res_results2.N2011_11], "<", "<") Else [Res_results2.N2011_11] = [Res_results2.N2011_11] End If If IsNumeric(trim([Res_results2.N2011_11])) Then If cint(trim([Res_results2.N2011_11])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_11]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_11] & " (11/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2011_12], "<") Then [Res_results2.N2011_12] = Replace([Res_results2.N2011_12], "<", "<") Else [Res_results2.N2011_12] = [Res_results2.N2011_12] End If If IsNumeric(trim([Res_results2.N2011_12])) Then If cint(trim([Res_results2.N2011_12])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2011_12]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2011_12] & " (12/11)" & unbold End If bold="<_BOL>" unbold = "</_BOL>" If InStr([Res_results2.N2012_02], "<") Then [Res_results2.N2012_02] = Replace([Res_results2.N2012_02], "<", "<") Else [Res_results2.N2012_02] = [Res_results2.N2012_02] End If If IsNumeric(trim([Res_results2.N2012_02])) Then If cint(trim([Res_results2.N2012_02])) > w Then bold = "<BOL>" unbold = "</BOL>" End if End if If trim([Res_results2.N2012_02]) <> "" Then TheLabel = TheLabel&vbnewline & " " & bold & [Res_results2.N2012_02] & " (2/12)" & unbold End If TheLabel = Replace([Perchlorate_Monitoring_Locations.WC_Location], "&", "&") & TheLabel FindLabel = TheLabel End Function
Create One to Many Relationship One Location to many results.
The Script Sample_Monitoring_Locationsshapefile joined with Res_Results2 (lab results) Table. Function FindLabel ( [Sample_Monitoring_Locations.LOCATION], [Sample_Monitoring_Locations.WC_Location], [Sample_Monitoring_Locations.PARID], [Res_results2.N2012_02] , [Res_results2.N2011_12] , [Res_results2.N2011_11] , [Res_results2.N2011_10] , [Res_results2.N2011_09] , [Res_results2.N2011_08] … Define and populate your variables with data from the table. Sample Location Shapefile Parcel ID Column in Shapefile Column in Table (August 2009) Lab Results Table
One routine per month If the string contains < “less than” swap it out with an equivalent character code. If InStr([Res_results.N2009_01], "<") Then [Res_results2.N2009_01] = Replace([Res_results2.N2009_01], "<", "<") Else [Res_results2.N2009_01] = [Res_results2.N2009_01] End If If IsNumeric(trim([Res_results2.N2009_01])) Then If cint(trim([Res_results2.N2009_01])) > w Then bold = "<BOL>" End if End if If trim([Res_results2.N2009_01]) <> "" Then TheLabel = TheLabel & vbnewline & bold & [Res_results2.N2009_01] & " (1/09)" & unbold End if Parse number from String. If greater than MCL then Bold. If results are not null then include label. Trim removes blank spaces. This routine is repeated for every month of data Changing the date/Column name of course
End the function and replace ‘&’ TheLabel= Replace([sample_Monitoring_Locations.WC_Location], "&", "&") & TheLabel FindLabel= TheLabel End Function
Displaying < > and & SymbolsUsing Equivalent Character Codes ESRI Desktop Help mentions this work around: Function FindLabel ([LABELFIELD]) NewString = Replace([LABELFIELD],"&","&") FindLabel = "<ITA>" & NewString & "</ITA>" End Function I used this work around: If InStr([Res_results.N2009_01], "<") Then [Res_results2.N2009_01] = Replace([Res_results2.N2009_01], "<", "<") TheLabel = Replace([sample_Monitoring_Locations.WC_Location], "&", "&") & TheLabel
Resources • “Using VBSript to Build Complex Labels in ArcGIS” Arcuser Magazine, Oct-Dec 2004 (deals mostly with text formatting) • ESRI Help on building Label expressions • “Advanced Labeling in ArcMap with VBScript Findlabel Functions” by Chad Cooper • Note: Maplex was used mainly to stack label location name.