1 votos

Añadir un botón al formulario de ArcPad

Estoy intentando añadir un botón a un formulario de ArcPad que establezca los valores Cereal y Maíz. Esto es lo más lejos que he llegado y estoy atascado.


Hice apl que tiene un formulario. Obtengo los valores en el formulario utilizando el gestor de datos arcpad de ArcMap. se rellena el formulario que me da cuadros combinados. Lo que necesito es un botón que hará que sea más fácil elegir valores específicos de los cuadros combinados. Así que en lugar de desplazarse hacia abajo los cuadros combinados para hacer mi elección y pulsar OK. Quiero simplemente pulsar el botón de maíz y, a continuación, que actualiza los cuadros combinados y añade el formulario y lo cierra. En la imagen se puede entender lo que es lo que tengo que hacer. Esto es para el trabajo de campo y cuanto más fácil sea para insertar algunos tipos de cultivos más rápido se hace.

'once called updates the fields to add in corn to the form then closes the form
Sub InsertCorn(ByVal layerName, ByVal pageName)

   Dim objEditForm
   Dim objTheLayer 
   Dim objEFPageControls
   Set objTheLayer = Application.Map.Layers.item(layerName)
   Set objEditForm = objTheLayer.Forms(1)
   Set objEFPageControls= objEditForm.Pages(pageName).Controls

   objEFPageControls("cboAGRLU_ClassGRP").value = "Cereal"
   objEFPageControls("cboCropType_Varietal").value = "Corn"

   Set objEFPageControls= Nothing
   Set objEditForm = Nothing
   Set objTheLayer = Nothing
End sub

y luego en el evento onclick del botón:

  Call InsertCorn("Corn", "PAGE1")

ArcPad Form

1voto

Hameno Puntos 129

Es necesario hacer referencia al nombre de la capa de ArcPad que está aplicando la actualización del valor y llamar a su Sub a través del evento onClick por @Hornbydd comentario, ver código de ejemplo a continuación:

Sub InsertCorn(ByVal layerName, ByVal pageName)

  Dim objEditForm, objTheLayer, objEFPageControls
  Set objTheLayer = Application.Map.Layers.item(layerName)
  Set objEditForm = objTheLayer.Forms(1)
  Set objEFPageControls= objEditForm.Pages(pageName).Controls

  objEFPageControls("cboAGRLU_ClassGRP").value = "Cereal"
  objEFPageControls("cboCropType_Varietal").value = "Corn"

  Set objEFPageControls= Nothing
  Set objEditForm = Nothing
  Set objTheLayer = Nothing

End Sub

0voto

abhinav sharma Puntos 48

Por fin lo tengo funcionando sin errores. Este es el código terminado. Parece hacer todo lo que yo como para él. Muchas gracias artwork21 por toda su ayuda.

Sub InsertCrop(Byval className, Byval cropName)
  Dim objEditForm
  Dim objTheLayer 
  Dim objEFPageControls
  Set objTheLayer = Application.Map.Layers.item("STB_EOS_DCT")
  Set objEditForm = objTheLayer.Forms("EDITFORM")
  Set objEFPageControls= objEditForm.Pages("PAGE1").Controls

  objEFPageControls("cboAGRLU_ClassGRP").value = className
  objEFPageControls("cboCropType_Varietal").value = cropName
  objEFPageControls("txtFIELDNOTES").value = ""

 objEditForm.Close(True)
 Set objEFPageControls= Nothing
 Set objEditForm = Nothing
 Set objTheLayer = Nothing

End sub

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X