<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Acquiring GPS points and fill fields from underlying layer in ArcPad Questions</title>
    <link>https://community.esri.com/t5/arcpad-questions/acquiring-gps-points-and-fill-fields-from/m-p/161985#M1140</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I (partially) solved my problems: the script now works because I created an apx which calls the GPS add-point function from the associated vbs. When the form loads the shape's vbs auto-fills correctly all the fields.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I have a last trouble because after the form closes clicking on "ok" arcpad returns a "run time error", it tells me that there's an undefined variable, source text unavailable. The problems is at the &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;Dim rsGrid&lt;/SPAN&gt;&lt;SPAN&gt; line of the trees.vbs file.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the finally working codes:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;arcpad.vbs&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="font-style:italic;"&gt;Option Explicit&lt;BR /&gt;&lt;BR /&gt;Sub AddTree&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Dim dblX, dblY, objToolButton, blnLyrExists&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'Get a reference to the tool button object. &lt;BR /&gt;&amp;nbsp;&amp;nbsp; Set objToolButton = ThisEvent.Object&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'Initialize blnLyrExists flag to False.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; blnLyrExists = False&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'If Trees layer exists, &lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'set the blnLyrExists flag to true.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Dim objLyr&lt;BR /&gt;&amp;nbsp;&amp;nbsp; For Each objLyr in Map.Layers&lt;BR /&gt; If StrComp (objLyr.Name, "Trees", 1) = 0 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; blnLyrExists = True&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit For&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Next&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'If Trees layer does not exist, &lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'notify the user, return the tool button to its original state, and exit.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; If Not blnLyrExists Then&lt;BR /&gt; MsgBox "The Trees layer is not present in the current map.", vbExclamation, "Layer not present"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objToolButton.Click&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub&lt;BR /&gt;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'If the Trees layer does exist,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'get the coordinates of the map where the user clicked.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; dblX = Map.PointerX&lt;BR /&gt;&amp;nbsp;&amp;nbsp; dblY = Map.PointerY&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'Get a reference to the Trees layer object.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Dim objLayer&lt;BR /&gt; Set objLayer = Map.Layers("Trees")&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'If the layer can be made editable, make it editable.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; If objLayer.CanEdit Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objLayer.Editable = True&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Add a new tree (point feature) at the clicked location.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call Map.AddFeatureXY(dblX,dblY)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Return the tool button to its original state.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objToolButton.Click&lt;BR /&gt;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt; End Sub&lt;BR /&gt;&lt;BR /&gt;Sub NewPoint&lt;BR /&gt;&lt;BR /&gt; Dim newX, newY&lt;BR /&gt;&lt;BR /&gt; If Application.GPS.IsValidFix = False Then&lt;BR /&gt;&amp;nbsp; MsgBox("No GPS fix! Assicurati che il GPS sia acceso e il segnale sia valido.")&lt;BR /&gt;&amp;nbsp; Exit Sub&lt;BR /&gt; End If&lt;BR /&gt;&lt;BR /&gt; newX = Application.GPS.X&lt;BR /&gt; newY = Application.GPS.Y&lt;BR /&gt;&lt;BR /&gt; If Not Application.Map.Layers("Trees").CanEdit Then&lt;BR /&gt;&amp;nbsp; Msgbox "Trees cannot be edited.",vbExclamation,"Error"&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Exit Sub&lt;BR /&gt; End If&lt;BR /&gt; &lt;BR /&gt; 'If the layer is not already editable, make it editable&lt;BR /&gt; If Not Application.Map.Layers("Trees").Editable Then&lt;BR /&gt;&amp;nbsp; Application.Map.Layers("Trees").Editable = True&lt;BR /&gt; End If&lt;BR /&gt; &lt;BR /&gt; 'Attempt to add a new point to the currently editable point layer at the current GPS location&lt;BR /&gt; 'Return an error message if the attempt fails&lt;BR /&gt; If Not Application.Map.AddFeatureXY(newX, newY) Then&lt;BR /&gt;&amp;nbsp; MsgBox "Error adding GPS Point.",vbExclamation,"Error"&lt;BR /&gt;&amp;nbsp; Exit Sub&lt;BR /&gt; End If&lt;BR /&gt;&lt;BR /&gt;End Sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;trees.vbs&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="font-style:italic;"&gt;Option Explicit&lt;BR /&gt;&lt;BR /&gt;' compila il campo dell'operatore in automatico&lt;BR /&gt;Public Sub MyFormOnLoad&lt;BR /&gt;Dim objFrmCtls&lt;BR /&gt; Set objFrmCtls = EDITFORM.Pages("Page1").Controls&lt;BR /&gt; 'Set objFrmCtls = ThisEvent.Object&lt;BR /&gt; 'Set objEFPageOneControls = objFrmCtls.Pages("Page1").Controls&lt;BR /&gt; 'objFrmCtls("edt_UserName").Enabled = False&lt;BR /&gt; objFrmCtls("edt_UserName").Value = Application.UserProperties("LoggedInEmployee")&lt;BR /&gt;&lt;BR /&gt;'compila il nome zona sorveglianza in automatico&lt;BR /&gt;&lt;BR /&gt; Dim rsCurrentXY&lt;BR /&gt; Set rsCurrentXY = Map.Layers("trees").records 'indica il il nome dello script vbs&amp;nbsp; e il layer target&lt;BR /&gt; rsCurrentXY.movelast&lt;BR /&gt; Dim objXYShape&lt;BR /&gt; Set objXYShape = rsCurrentXY.Fields.Shape&lt;BR /&gt; Dim pControls&lt;BR /&gt; Set pControls = EDITFORM.Pages("Page1").Controls&amp;nbsp; 'indica la pagina del form dove si trova il campo da compilare&lt;BR /&gt; &lt;BR /&gt; Dim rsZona&lt;BR /&gt; Set rsZona = Map.Layers("ZoneSorveglianzaPNGP").records 'indica il layer poligono da cui prendere il valore&lt;BR /&gt; rsZona.movefirst&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; Do While Not rsZona.eof&lt;BR /&gt;&amp;nbsp; If rsZona.fields.shape.Ispointin(objXYShape) Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'pControls("tipo").Enabled = False 'disabilita l'edit nella textbox ma solo se il campo è compilato in automatico&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pControls("tipo").value = rsZona.Fields("NOME").Value ' indica il controllo nella pagina del form da campilare e da quale campo del layer origine prendere il valore &lt;BR /&gt; Exit Do&lt;BR /&gt;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp; rsZona.Movenext&lt;BR /&gt;&lt;BR /&gt; Loop &lt;BR /&gt;&lt;BR /&gt; ' Clean Up&lt;BR /&gt; Set rsCurrentXY = Nothing&lt;BR /&gt; Set objXYShape = Nothing&lt;BR /&gt; Set rsZona = Nothing&lt;BR /&gt; Set pControls = Nothing&lt;BR /&gt;&lt;BR /&gt;' nomi valli in automatico&lt;BR /&gt; Dim rsCurrentXY1&lt;BR /&gt; Set rsCurrentXY1 = Map.Layers("trees").records 'indica il nome dello script vbs&amp;nbsp; e il layer target&lt;BR /&gt; rsCurrentXY1.movelast&lt;BR /&gt; Dim objXYShape1&lt;BR /&gt; Set objXYShape1 = rsCurrentXY1.Fields.Shape&lt;BR /&gt; Dim pControls1&lt;BR /&gt; Set pControls1 = EDITFORM.Pages("Page1").Controls&amp;nbsp; 'indica la pagina del form dove si trova il campo da compilare&lt;BR /&gt; &lt;BR /&gt; Dim rsValle&lt;BR /&gt;&amp;nbsp; Set rsValle = Map.Layers("Valli_PNGP_wgs84").records 'indica il layer poligono da cui prendere il valore&lt;BR /&gt; rsValle.movefirst&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; Do While Not rsValle.eof&lt;BR /&gt;&amp;nbsp; If rsValle.fields.shape.Ispointin(objXYShape1) Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'pControls1("edt_valle").Enabled = False ''disabilita l'edit nella textbox ma solo se il campo è compilato in automatico&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pControls1("edt_valle").value = rsValle.Fields("VALLE").Value ' indica il controllo nella pagina del form da campilare e da quale campo del layer origine prendere il valore&lt;BR /&gt; Exit Do&lt;BR /&gt;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp; rsValle.Movenext&lt;BR /&gt;&lt;BR /&gt; Loop &lt;BR /&gt;&lt;BR /&gt; ' Clean Up&lt;BR /&gt; Set rsCurrentXY1 = Nothing&lt;BR /&gt; Set objXYShape1 = Nothing&lt;BR /&gt; Set rsValle = Nothing&lt;BR /&gt; Set pControls1 = Nothing&lt;BR /&gt;&lt;BR /&gt;'nomi griglia in automatico&lt;BR /&gt;&lt;BR /&gt; Dim rsCurrentXY2&lt;BR /&gt; Set rsCurrentXY2 = Map.Layers("trees").records 'indica il nome dello script vbs&amp;nbsp; e il layer target&lt;BR /&gt; rsCurrentXY2.movelast&lt;BR /&gt; Dim objXYShape2&lt;BR /&gt; Set objXYShape2 = rsCurrentXY2.Fields.Shape&lt;BR /&gt; Dim pControls2&lt;BR /&gt; Set pControls2 = EDITFORM.Pages("Page1").Controls&amp;nbsp; 'indica la pagina del form dove si trova il campo da compilare&lt;BR /&gt; &lt;BR /&gt; Dim rsGrid&lt;BR /&gt;&amp;nbsp; Set rsGrid = Map.Layers("Grigliato_v2").records 'indica il layer poligono da cui prendere il valore&lt;BR /&gt; rsGrid.movefirst&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; Do While Not rsGrid.eof&lt;BR /&gt;&amp;nbsp; If rsGrid.fields.shape.Ispointin(objXYShape2) Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'pControls1("edt_valle").Enabled = False ''disabilita l'edit nella textbox ma solo se il campo è compilato in automatico&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pControls2("edt_cella").value = rsGrid.Fields("N__CELLA").Value ' indica il controllo nella pagina del form da campilare e da quale campo del layer origine prendere il valore&lt;BR /&gt; Exit Do&lt;BR /&gt;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp; rsGrid.Movenext&lt;BR /&gt;&lt;BR /&gt; Loop &lt;BR /&gt;&lt;BR /&gt; ' Clean Up&lt;BR /&gt; Set rsCurrentXY2 = Nothing&lt;BR /&gt; Set objXYShape2 = Nothing&lt;BR /&gt; Set rsGrid = Nothing&lt;BR /&gt; Set pControls2 = Nothing&lt;BR /&gt;&lt;BR /&gt;End Sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 18 Jun 2013 07:21:21 GMT</pubDate>
    <dc:creator>AndreaBressi</dc:creator>
    <dc:date>2013-06-18T07:21:21Z</dc:date>
    <item>
      <title>Acquiring GPS points and fill fields from underlying layer</title>
      <link>https://community.esri.com/t5/arcpad-questions/acquiring-gps-points-and-fill-fields-from/m-p/161984#M1139</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi all! I solved some troubles with this kind of problems, but I've one that's still here!!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've to auto-fill a field collecting the value from a specific polygon layer, but while the manual procedure works fine the GPS does not.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I use a fake GPS to test the procedure, and when I click on the proper icon Arcpad cacthes the right coords but fills the field with a value picked up from an adiacent polygon, I don't understand where is the matter! &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not a skilled programmer at all, so be patient! Thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here the code I use:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Option Explicit&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' autocomplete user name field&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Public Sub MyFormOnLoad&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim objFrmCtls&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objFrmCtls = EDITFORM.Pages("Page1").Controls&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; 'Set objFrmCtls = ThisEvent.Object&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; 'Set objEFPageOneControls = objFrmCtls.Pages("Page1").Controls&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; 'objFrmCtls("edt_UserName").Enabled = False&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; objFrmCtls("edt_UserName").Value = Application.UserProperties("LoggedInEmployee")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' autocomplete zone&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim rsCurrentXY&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set rsCurrentXY = Map.Layers("trees").records 'indica il il nome dello script vbs&amp;nbsp; e il layer target&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; rsCurrentXY.movelast&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim objXYShape&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objXYShape = rsCurrentXY.Fields.Shape&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim pControls&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set pControls = EDITFORM.Pages("Page1").Controls&amp;nbsp; 'indica la pagina del form dove si trova il campo da compilare&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim rsZona&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set rsZona = Map.Layers("ZoneSorveglianzaPNGP").records 'indica il layer poligono da cui prendere il valore&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; rsZona.movefirst&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Do While Not rsZona.eof&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; If rsZona.fields.shape.Ispointin(objXYShape) Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'pControls("tipo").Enabled = False 'disabilita l'edit nella textbox ma solo se il campo è compilato in automatico&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pControls("tipo").value = rsZona.Fields("NOME").Value ' tells which is the form page to complete and which is the interested layer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Do&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; rsZona.Movenext&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Loop &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; ' Clean Up&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set rsCurrentXY = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objXYShape = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set rsZona = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set pControls = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;' nomi valli in automatico&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim rsCurrentXY1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set rsCurrentXY1 = Map.Layers("trees").records 'indica il nome dello script vbs&amp;nbsp; e il layer target&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; rsCurrentXY1.movelast&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim objXYShape1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objXYShape1 = rsCurrentXY1.Fields.Shape&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim pControls1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set pControls1 = EDITFORM.Pages("Page1").Controls&amp;nbsp; 'indica la pagina del form dove si trova il campo da compilare&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim rsValle&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Set rsValle = Map.Layers("Valli_PNGP_wgs84").records 'indica il layer poligono da cui prendere il valore&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; rsValle.movefirst&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Do While Not rsValle.eof&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; If rsValle.fields.shape.Ispointin(objXYShape1) Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'pControls1("edt_valle").Enabled = False ''disabilita l'edit nella textbox ma solo se il campo è compilato in automatico&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pControls1("edt_valle").value = rsValle.Fields("VALLE").Value ' indica il controllo nella pagina del form da campilare e da quale campo del layer origine prendere il valore&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Do&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; rsValle.Movenext&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Loop &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; ' Clean Up&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set rsCurrentXY1 = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objXYShape1 = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set rsValle = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set pControls1 = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;'Sub AddGPSPoint&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim objLayerGPS ' compila il campo griglia con inserimento via GPS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; 'Get a reference to the first layer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objLayerGPS = Application.Map.Layers("trees")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim objEditFormGPS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objEditFormGPS = objLayerGPS.forms("EDITFORM")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim pControls3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set pControls3 = EDITFORM.Pages("Page1").Controls&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim newX, newY&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; newX = Application.GPS.X&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; newY = Application.GPS.Y&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; 'Call when adding a new feature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; If objEditFormGPS.Mode = 3 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; pControls3("edt_cella").value = ""&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; 'Find N_cella from grigliato Layer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Dim objParcelsGPS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Set objParcelsGPS = Application.Map.Layers("Grigliato_v2.shp")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Dim rsGridGPS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Set rsGridGPS = objParcelsGPS.Records&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Dim RecGPS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; RecGPS = rsGridGPS.FindNearestXY(newX,newY,0,map.Extent)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; If RecGPS &amp;gt; 0 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; rsGridGPS.MoveFirst&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; rsGridGPS.move(RecGPS -1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; pControls3("edt_cella").value = rsGridGPS.Fields("N__CELLA").Value&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objLayerGPS = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objEditFormGPS = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set pControls3 = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set newX = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set newY = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objParcelsGPS = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set rsGridGPS = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set RecGPS = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;'End sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;'Sub inserimento_manuale&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Dim objLayer 'compila il campo griglia in automatico con inserimento manuale&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; 'Get a reference to the first layer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objLayer = Application.Map.Layers("trees")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim objEditForm&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objEditForm = objLayer.forms("EDITFORM")&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim pControls2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set pControls2 = EDITFORM.Pages("Page1").Controls&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Dim dblX, dblY&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; dblX = Map.PointerX&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; dblY = Map.PointerY&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; 'Call when adding a new feature&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; If objEditForm.Mode = 3 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; pControls2("edt_cella").value = ""&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; 'Find N_cella from grigliato Layer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Dim objParcels&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Set objParcels = Application.Map.Layers("Grigliato_v2.shp")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Dim rsGrid&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Set rsGrid = objParcels.Records&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Dim Rec&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; Rec = rsGrid.FindNearestXY(dblX,dblY,0,map.Extent)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; If Rec &amp;gt; 0 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; rsGrid.MoveFirst&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; rsGrid.move(Rec -1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; pControls2("edt_cella").value = rsGrid.Fields("N__CELLA").Value&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objLayer = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objEditForm = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set pControls2 = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set dblX = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set dblY = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set objParcels = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set rsGrid = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Set Rec = Nothing&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;End sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Jun 2013 11:21:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcpad-questions/acquiring-gps-points-and-fill-fields-from/m-p/161984#M1139</guid>
      <dc:creator>AndreaBressi</dc:creator>
      <dc:date>2013-06-17T11:21:27Z</dc:date>
    </item>
    <item>
      <title>Re: Acquiring GPS points and fill fields from underlying layer</title>
      <link>https://community.esri.com/t5/arcpad-questions/acquiring-gps-points-and-fill-fields-from/m-p/161985#M1140</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I (partially) solved my problems: the script now works because I created an apx which calls the GPS add-point function from the associated vbs. When the form loads the shape's vbs auto-fills correctly all the fields.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I have a last trouble because after the form closes clicking on "ok" arcpad returns a "run time error", it tells me that there's an undefined variable, source text unavailable. The problems is at the &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;Dim rsGrid&lt;/SPAN&gt;&lt;SPAN&gt; line of the trees.vbs file.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the finally working codes:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;arcpad.vbs&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="font-style:italic;"&gt;Option Explicit&lt;BR /&gt;&lt;BR /&gt;Sub AddTree&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Dim dblX, dblY, objToolButton, blnLyrExists&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'Get a reference to the tool button object. &lt;BR /&gt;&amp;nbsp;&amp;nbsp; Set objToolButton = ThisEvent.Object&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'Initialize blnLyrExists flag to False.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; blnLyrExists = False&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'If Trees layer exists, &lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'set the blnLyrExists flag to true.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Dim objLyr&lt;BR /&gt;&amp;nbsp;&amp;nbsp; For Each objLyr in Map.Layers&lt;BR /&gt; If StrComp (objLyr.Name, "Trees", 1) = 0 Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; blnLyrExists = True&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit For&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Next&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'If Trees layer does not exist, &lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'notify the user, return the tool button to its original state, and exit.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; If Not blnLyrExists Then&lt;BR /&gt; MsgBox "The Trees layer is not present in the current map.", vbExclamation, "Layer not present"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objToolButton.Click&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exit Sub&lt;BR /&gt;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'If the Trees layer does exist,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'get the coordinates of the map where the user clicked.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; dblX = Map.PointerX&lt;BR /&gt;&amp;nbsp;&amp;nbsp; dblY = Map.PointerY&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'Get a reference to the Trees layer object.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Dim objLayer&lt;BR /&gt; Set objLayer = Map.Layers("Trees")&lt;BR /&gt;&amp;nbsp;&amp;nbsp; 'If the layer can be made editable, make it editable.&lt;BR /&gt;&amp;nbsp;&amp;nbsp; If objLayer.CanEdit Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objLayer.Editable = True&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Add a new tree (point feature) at the clicked location.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call Map.AddFeatureXY(dblX,dblY)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Return the tool button to its original state.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objToolButton.Click&lt;BR /&gt;&amp;nbsp;&amp;nbsp; End If&lt;BR /&gt; End Sub&lt;BR /&gt;&lt;BR /&gt;Sub NewPoint&lt;BR /&gt;&lt;BR /&gt; Dim newX, newY&lt;BR /&gt;&lt;BR /&gt; If Application.GPS.IsValidFix = False Then&lt;BR /&gt;&amp;nbsp; MsgBox("No GPS fix! Assicurati che il GPS sia acceso e il segnale sia valido.")&lt;BR /&gt;&amp;nbsp; Exit Sub&lt;BR /&gt; End If&lt;BR /&gt;&lt;BR /&gt; newX = Application.GPS.X&lt;BR /&gt; newY = Application.GPS.Y&lt;BR /&gt;&lt;BR /&gt; If Not Application.Map.Layers("Trees").CanEdit Then&lt;BR /&gt;&amp;nbsp; Msgbox "Trees cannot be edited.",vbExclamation,"Error"&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Exit Sub&lt;BR /&gt; End If&lt;BR /&gt; &lt;BR /&gt; 'If the layer is not already editable, make it editable&lt;BR /&gt; If Not Application.Map.Layers("Trees").Editable Then&lt;BR /&gt;&amp;nbsp; Application.Map.Layers("Trees").Editable = True&lt;BR /&gt; End If&lt;BR /&gt; &lt;BR /&gt; 'Attempt to add a new point to the currently editable point layer at the current GPS location&lt;BR /&gt; 'Return an error message if the attempt fails&lt;BR /&gt; If Not Application.Map.AddFeatureXY(newX, newY) Then&lt;BR /&gt;&amp;nbsp; MsgBox "Error adding GPS Point.",vbExclamation,"Error"&lt;BR /&gt;&amp;nbsp; Exit Sub&lt;BR /&gt; End If&lt;BR /&gt;&lt;BR /&gt;End Sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;trees.vbs&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN style="font-style:italic;"&gt;Option Explicit&lt;BR /&gt;&lt;BR /&gt;' compila il campo dell'operatore in automatico&lt;BR /&gt;Public Sub MyFormOnLoad&lt;BR /&gt;Dim objFrmCtls&lt;BR /&gt; Set objFrmCtls = EDITFORM.Pages("Page1").Controls&lt;BR /&gt; 'Set objFrmCtls = ThisEvent.Object&lt;BR /&gt; 'Set objEFPageOneControls = objFrmCtls.Pages("Page1").Controls&lt;BR /&gt; 'objFrmCtls("edt_UserName").Enabled = False&lt;BR /&gt; objFrmCtls("edt_UserName").Value = Application.UserProperties("LoggedInEmployee")&lt;BR /&gt;&lt;BR /&gt;'compila il nome zona sorveglianza in automatico&lt;BR /&gt;&lt;BR /&gt; Dim rsCurrentXY&lt;BR /&gt; Set rsCurrentXY = Map.Layers("trees").records 'indica il il nome dello script vbs&amp;nbsp; e il layer target&lt;BR /&gt; rsCurrentXY.movelast&lt;BR /&gt; Dim objXYShape&lt;BR /&gt; Set objXYShape = rsCurrentXY.Fields.Shape&lt;BR /&gt; Dim pControls&lt;BR /&gt; Set pControls = EDITFORM.Pages("Page1").Controls&amp;nbsp; 'indica la pagina del form dove si trova il campo da compilare&lt;BR /&gt; &lt;BR /&gt; Dim rsZona&lt;BR /&gt; Set rsZona = Map.Layers("ZoneSorveglianzaPNGP").records 'indica il layer poligono da cui prendere il valore&lt;BR /&gt; rsZona.movefirst&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; Do While Not rsZona.eof&lt;BR /&gt;&amp;nbsp; If rsZona.fields.shape.Ispointin(objXYShape) Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'pControls("tipo").Enabled = False 'disabilita l'edit nella textbox ma solo se il campo è compilato in automatico&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pControls("tipo").value = rsZona.Fields("NOME").Value ' indica il controllo nella pagina del form da campilare e da quale campo del layer origine prendere il valore &lt;BR /&gt; Exit Do&lt;BR /&gt;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp; rsZona.Movenext&lt;BR /&gt;&lt;BR /&gt; Loop &lt;BR /&gt;&lt;BR /&gt; ' Clean Up&lt;BR /&gt; Set rsCurrentXY = Nothing&lt;BR /&gt; Set objXYShape = Nothing&lt;BR /&gt; Set rsZona = Nothing&lt;BR /&gt; Set pControls = Nothing&lt;BR /&gt;&lt;BR /&gt;' nomi valli in automatico&lt;BR /&gt; Dim rsCurrentXY1&lt;BR /&gt; Set rsCurrentXY1 = Map.Layers("trees").records 'indica il nome dello script vbs&amp;nbsp; e il layer target&lt;BR /&gt; rsCurrentXY1.movelast&lt;BR /&gt; Dim objXYShape1&lt;BR /&gt; Set objXYShape1 = rsCurrentXY1.Fields.Shape&lt;BR /&gt; Dim pControls1&lt;BR /&gt; Set pControls1 = EDITFORM.Pages("Page1").Controls&amp;nbsp; 'indica la pagina del form dove si trova il campo da compilare&lt;BR /&gt; &lt;BR /&gt; Dim rsValle&lt;BR /&gt;&amp;nbsp; Set rsValle = Map.Layers("Valli_PNGP_wgs84").records 'indica il layer poligono da cui prendere il valore&lt;BR /&gt; rsValle.movefirst&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; Do While Not rsValle.eof&lt;BR /&gt;&amp;nbsp; If rsValle.fields.shape.Ispointin(objXYShape1) Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'pControls1("edt_valle").Enabled = False ''disabilita l'edit nella textbox ma solo se il campo è compilato in automatico&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pControls1("edt_valle").value = rsValle.Fields("VALLE").Value ' indica il controllo nella pagina del form da campilare e da quale campo del layer origine prendere il valore&lt;BR /&gt; Exit Do&lt;BR /&gt;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp; rsValle.Movenext&lt;BR /&gt;&lt;BR /&gt; Loop &lt;BR /&gt;&lt;BR /&gt; ' Clean Up&lt;BR /&gt; Set rsCurrentXY1 = Nothing&lt;BR /&gt; Set objXYShape1 = Nothing&lt;BR /&gt; Set rsValle = Nothing&lt;BR /&gt; Set pControls1 = Nothing&lt;BR /&gt;&lt;BR /&gt;'nomi griglia in automatico&lt;BR /&gt;&lt;BR /&gt; Dim rsCurrentXY2&lt;BR /&gt; Set rsCurrentXY2 = Map.Layers("trees").records 'indica il nome dello script vbs&amp;nbsp; e il layer target&lt;BR /&gt; rsCurrentXY2.movelast&lt;BR /&gt; Dim objXYShape2&lt;BR /&gt; Set objXYShape2 = rsCurrentXY2.Fields.Shape&lt;BR /&gt; Dim pControls2&lt;BR /&gt; Set pControls2 = EDITFORM.Pages("Page1").Controls&amp;nbsp; 'indica la pagina del form dove si trova il campo da compilare&lt;BR /&gt; &lt;BR /&gt; Dim rsGrid&lt;BR /&gt;&amp;nbsp; Set rsGrid = Map.Layers("Grigliato_v2").records 'indica il layer poligono da cui prendere il valore&lt;BR /&gt; rsGrid.movefirst&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; Do While Not rsGrid.eof&lt;BR /&gt;&amp;nbsp; If rsGrid.fields.shape.Ispointin(objXYShape2) Then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'pControls1("edt_valle").Enabled = False ''disabilita l'edit nella textbox ma solo se il campo è compilato in automatico&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pControls2("edt_cella").value = rsGrid.Fields("N__CELLA").Value ' indica il controllo nella pagina del form da campilare e da quale campo del layer origine prendere il valore&lt;BR /&gt; Exit Do&lt;BR /&gt;&amp;nbsp; End If&lt;BR /&gt;&amp;nbsp; rsGrid.Movenext&lt;BR /&gt;&lt;BR /&gt; Loop &lt;BR /&gt;&lt;BR /&gt; ' Clean Up&lt;BR /&gt; Set rsCurrentXY2 = Nothing&lt;BR /&gt; Set objXYShape2 = Nothing&lt;BR /&gt; Set rsGrid = Nothing&lt;BR /&gt; Set pControls2 = Nothing&lt;BR /&gt;&lt;BR /&gt;End Sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Jun 2013 07:21:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcpad-questions/acquiring-gps-points-and-fill-fields-from/m-p/161985#M1140</guid>
      <dc:creator>AndreaBressi</dc:creator>
      <dc:date>2013-06-18T07:21:21Z</dc:date>
    </item>
  </channel>
</rss>

