26 de abril de 2009

Utilizando _MemberData con el objeto _Screen

Por lo general no acostumbro utilizar variables públicas en mis aplicaciones. Siempre uso el objeto _SCREEN, le adiciono propiedades con valores que estarán disponibles para toda la aplicación. No obstante, al programar y usar Intellisense la presentación de las propiedades del objeto _SCREEN en el código se muestran siempre en minúsculas, lo cual me dejaba un tanto insatisfecho, dado que esto no ocurría con mis otras clases porque les añadía la propiedad _MemberData y lograba una mejor presentación en mi código.

Así que un día pensé, ¿qué pasaría si al objeto _SCREEN le agrego la propiedad _MemberData y le asigno el valor requerido?

Pues me di con la sorpresa que también funciona, y ahora con el Intellisense puedo tener en mi código una mejor presentación.




Les adjunto un pequeño código que se puede perfeccionar. Si por ejemplo, guardamos nuestras variables en una tabla junto con sus valores, usando SCAN podemos recorrerla e ir formando la cadena requerida para la propiedad _MemberData y a la vez ir agregando nuestras propiedades al objeto _SCREEN con el método AddProperty().
* Ejemplo de _MemberData en _Screen en VFP9 SP2

* Formando la propiedad _MemberData en formato XML
LOCAL cMemberData as String 
TEXT TO cMemberData NOSHOW PRETEXT 15
  <VFPData>
  <memberdata name="cconectbdsistema" type="property" display="cConectBDSistema"/>
  <memberdata name="cconnectioncatastro" type="property" display="cConnectionCatastro"/>
  <memberdata name="cconnectionrentas" type="property" display="cConnectionRentas"/>
  <memberdata name="cconnectionstring" type="property" display="cConnectionString"/>
  <memberdata name="cconnectiontramite" type="property" display="cConnectionTramite"/>
  <memberdata name="cconnectioncuentacte" type="property" display="cConnectionCuentaCte"/>
  </VFPData>
ENDTEXT 
_Screen.AddProperty("_MemberData", cMemberData)

* Agregando mis propiedades
_Screen.AddProperty("cconectbdsistema","")
_Screen.AddProperty("cconnectioncatastro","")
_Screen.AddProperty("cconnectionrentas","")
_Screen.AddProperty("cconnectionstring","")
_Screen.AddProperty("cconnectiontramite","")
_Screen.AddProperty("cconnectioncuentacte","")
Espero que les sirva.

Miguel Herbias, Lima, Perú

No hay comentarios. :

Publicar un comentario