Cambiar las propiedades de varios métodos a la vez por código

Traducido automáticamente de Deepl

Sabemos que a veces quieres cambiar las propiedades de varios métodos sin tener que abrir el diálogo de propiedades de cada método.

Por ejemplo, usted quiere establecer todos los métodos al estado«Puede ser ejecutado en modo preemptivo», y luego compilar su base de datos. Así, con los errores de compilación, obtendrá una visión general de los métodos a modificar para que sean preventivos.

Usando el comando METHOD GET NAMES para recuperar la lista de métodos de su base de datos, y luego usar el comando METHOD SET ATTRIBUTES para modificar los atributos, te permite modificarlos todos al mismo tiempo.

Aquí hay un ejemplo que establece todos los métodos del proyecto en modo preventivo:

ARRAY TEXT($arrName;0)
C_OBJECT ($attributes)

// Retrieve all methods in structure
METHOD GET NAMES ($arrName)

// Create object with the "preemptive" attribute set to "capable"
OB SET ($attributes; "preemptive"; "capable")

// Change the "preemptive" attribute value for all methods
For ($i;1;Size of array($arrName)
METHOD SET ATTRIBUTES ($arrName{$i};$attributes)
End for

Utilizar una colección para manipular propiedades

4D tiene ahora un nuevo tipo, las colecciones, y muchos métodos listos para usar para manejar colecciones.

¿Cómo se utiliza este nuevo tipo? Se insertan los nombres de los métodos y las propiedades en una colección para buscarlos, modificarlos o simplemente mostrarlos en un cuadro de lista de tipo colección.

Aquí hay un ejemplo para almacenar todas las propiedades de los métodos en una colección:

C_OBJECT$i$attributes($attributes)
C_COLLECTION (colMethod)
ARRAY TEXT ($arrName;0)
colMethod :=New collection()

// Retrieve all methods in structure
METHOD GET NAMES ($arrName)

For ($i;1;Size of array($arrName)
$attributes :=New object()
// Retrieve the attributes for each method
METHOD GET ATTRIBUTES ($arrName{$i};$attributes)

// Add item in the collection
colMethod .push(New object("nombre";$arrName{ xml

End for

Después de editar los atributos, puede guardar el resultado con un simple bucle en la colección:

C_OBJECT($item;$tmp)
// Loop for each item in the collection
For each ($item;colMethod)
// Save attributes
$tmp :=$item.attributes
METHOD SET ATTRIBUTES ($item.name;$tmp)
End for each

Demostración: Cambiar las propiedades de los métodos por código

Vanessa Talbot
• Propietario de producto - Vanessa Talbot llegó al equipo de 4D Program en junio de 2014. Como Propietario de producto, está a cargo de escribir las historias de los usuarios y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la funcionalidad entregada cumpla con las necesidades del cliente. Desde su llegada, ha trabajado en la definición de funcionalidades claves en 4D. Ha trabajado en la mayoría de las nuevas funcionalidades de multi hilo apropiativo y también en un tema muy complejo: la nueva arquitectura para la aplicación engined. Vanessa es licenciada por Telecom Saint-Etienne. Comenzó su carrera en el Instituto de Investigación Criminal como desarrolladora del departamento audiovisual. También ha trabajado en medios de comunicación y en el ámbito médico como experta en soporte técnico, producción y documentación de nuevas funcionalidades.