Me da la impresión que con ésto del Clarion somos muy "virgueros" pero no tenemos ni puta idea de programar Clases.
Yo conseguí programar alguna. Pero dentro de una App. el problema que tengo es que quiero una Clase que sea EXPORTABLE y no tener que definirla para APP.
Necesitaría que igual que se Programa un PROCEDURE exportable pudiera exportar MÉTODOS de la CLASE o la CLASE completa. Hasta el momento IMPOSIBLE.
En cuanto a crear una Clase con las "3 capas", ahí dejo ésto:
- En el Global, Embeds, Source en la sección del "Global Data":
!===Declaración (Atributos y Métodos de la Clase ===========
WasteTypeAttribs CLASS, TYPE !(19/05/15) Atributos del <Waste<Doc>Type .. > en las Cabeceras de Doc's XML E3L vía Web Services.
!-- Atributos de la Clase
xsi STRING(45)
xsd STRING(35)
...
!-- Métodos de la Clase
putWT PROCEDURE (STRING ps_xsi, STRING ps_xsd, ... )
END
- En el mismo Embeds del "Global", Source en sección "Program Procedures":
!=== Implementación de los Métodos de la Clase =======
WasteTypeAttribs.putWT PROCEDURE (STRING ps_xsi, STRING ps_xsd, ...)
CODE
!--- xsi y xsd, por defecto si llegan vacíos.
If clip(ps_xsi) = '' Then Self.xsi = 'http://www.w3.org/2001/XMLSchema-instance' |
Else Self.xsi = ps_xsi.
If clip(ps_xsd) = '' Then Self.xsd = 'http://www.w3.org/2001/XMLSchema'
Else Self.xsd = ps_xsd.
Self.Code = ps_Code
...
Return
- Uso de la Clase, Declaración de Objeto de Clase, en "Local Variables"
oWTAtt &WasteTypeAttribs
- Uso de Objeto de Clase, Instanciación y Carga del Objeto:
oWTAtt &= NEW(WasteTypeAttribs) !CREACION del Objeto Referencia.
oWTAtt.putWT('','', clip(RSM14:LIBRE48), '', '',Today(), ... ) !Envío de Valores a sus Atributos
... Y si ahora alguien es capaz de decirme de qué manera podría Crear la Clase y Definir sus Métodos en una App que éstos pudieran ser exportados para usar en otra App sería ESTUPENDO!!!