Sintaxis GeneXus "&SDT = New NombreSDT"
La utilización de SDT en GeneXus posibilita el hacer muchas cosas que antes eran mucho mas complicadas.
En particular, en el desarrollo del "Summarized by Pattern", estamos utilizando fuertemente los SDT para realizar el orden de un indicador sumarizado, para tener un ranking.
Si bien tiene muchas ventajas y son faciles de usar, hay una cosa en la sintaxis del manejo de los SDT que me "molesta", pues va contra los principios basicos de GeneXus y es el New.
La sintaxis que hoy se necesita es algo asi
Siempre me parecio medio innecesario la definicion de esta forma, pues GeneXus ya sabe de que tipo es la variable &SDTRenglon.
Se agrega a esto, que cuando voy a digitar el tipo, no tengo intellitips, ni forma de ayudarme y *creo* que hay un unico valor posible.
Otras contras son que es la unica referencia que conozco dentro del codigo genexus a tipos de datos, o dominios. Todos los demas, se hacen cuando se definen las variables.
Esto trae como inconveniente, que cuando se renombra un SDT, el codigo queda invalidado.
A mi me gustaria poder hacer algo asi como
o alguna sintaxis alternativa, que no obligue a dejar un tipo de datos en el codigo.
En particular, en el desarrollo del "Summarized by Pattern", estamos utilizando fuertemente los SDT para realizar el orden de un indicador sumarizado, para tener un ranking.
Si bien tiene muchas ventajas y son faciles de usar, hay una cosa en la sintaxis del manejo de los SDT que me "molesta", pues va contra los principios basicos de GeneXus y es el New.
La sintaxis que hoy se necesita es algo asi
&SdtRenglon = New SDTSummarizedBy.Renglones()donde previamente definí la variable &SDTType, como del tipo SDTSummarizedBy.Renglones
Siempre me parecio medio innecesario la definicion de esta forma, pues GeneXus ya sabe de que tipo es la variable &SDTRenglon.
Se agrega a esto, que cuando voy a digitar el tipo, no tengo intellitips, ni forma de ayudarme y *creo* que hay un unico valor posible.
Otras contras son que es la unica referencia que conozco dentro del codigo genexus a tipos de datos, o dominios. Todos los demas, se hacen cuando se definen las variables.
Esto trae como inconveniente, que cuando se renombra un SDT, el codigo queda invalidado.
A mi me gustaria poder hacer algo asi como
&SDTRenglon=Newo
&SDTRenglon.New()
o alguna sintaxis alternativa, que no obligue a dejar un tipo de datos en el codigo.
Enrique,
ResponderBorrarLa version 9.0 permite la sintaxis: &SdtRenglon = New(). Creo que es bastante parecido a lo que tu quieres.
Hubo mucha discusion en el equipo de desarrollo sobre que sintaxis era mejor para el New. Se opto por soportar ambas en prevision de futuras ampliaciones del lenguaje.
Muy bueno!, no conocía esta sintaxis.
ResponderBorrarGracias.