Descubra todas las opciones para utilizar las acciones estándar

Traducido automáticamente de Deepl

Algunos desarrolladores creen que las acciones automáticas son para los principiantes. Sin embargo, es posible que se hayan perdido muchas de las posibilidades que hemos añadido en los últimos años. Las acciones estándar, como First Record o color?value=redpueden asignarse a un botón de la interfaz de usuario o mediante programación. La acción puede ser asignada a un elemento del menú, al menú contextual, o invocada con un comando. Una ventaja es que 4D también maneja automáticamente el ítem de menú o la desactivación del botón cuando la acción no es aplicable (por ejemplo, como si no hay un registro siguiente).

Y a partir de 4D v16 R3, la lista de acciones estándar crece: se han añadido más de 100 nuevas acciones estándar para 4D Write Pro y Styled Text, permitiendo construir, por ejemplo, una barra de herramientas sin escribir una línea de código.

Como resumen, puede utilizar las acciones estándar de 3 maneras diferentes:

  • Asociar una acción estándar a un objeto: en la fase de diseño (utilizando la lista de propiedades) o mediante programación
  • Asociar una acción estándar a un elemento del menú: en la fase de diseño (utilizando la caja de herramientas) o mediante programación
  • Utilice los nuevos INVOKE ACTION y Get action info comandos

Asociar una acción estándar a un objeto

En la fase de diseño

Con la lista de propiedades puede asociar una acción estándar a un objeto de formulario activo. En este ejemplo, la acción estándar Eliminar registro se asocia a un botón.

Delete Record action in Property List

Para más detalles, consulte este artículo de la documentación.

Mediante la programación

Durante el tiempo de ejecución de la aplicación, puede asociar dinámicamente para el proceso actual una acción estándar a un objeto mediante programación. Así, se sobrescribe la acción estándar definida por la lista de propiedades.

Por ejemplo, usted quiere asociar la acción Delete Record acción estándar a un botón «btnBorrar»:

OBJECT SET ACTION(*; "btnDelete";ak delete record)o si utiliza el valor en lugar de la constante:

OBJECT SET ACTION(*; "btnDelete"; "deleteRecord")

Y si usas el valor en lugar de la constante, también puedes pasar un parámetro con la acción. En este ejemplo, se aplica el color magenta a un texto seleccionado.

OBJECT SET ACTION(*; "btnDelete"; "color?value=magenta")

Para más detalles, consulte la documentación de estos comandos:

Asociar una acción estándar a un elemento del menú

En la fase de diseño

Puede asignar una acción estándar a un elemento de menú mediante el editor de menús. Por ejemplo, para añadir un elemento de menú que abra el Centro de Mantenimiento y Seguridad 4D, basta con seleccionar la acción msc como acción estándar asociada en el menú emergente:

blank

Cuando se ejecuta la aplicación, se muestra el menú:

blank

Puede crear un submenú con alguna acción estándar. Por ejemplo, para añadir un submenú para aplicar el estilo de letra (como Negrita, Cursiva…), sólo tiene que seleccionar la acción fontStyle como acción estándar asociada en el menú emergente:

Create a font style menu with standard automatic action

Cuando se ejecuta la aplicación, se muestra el menú:

Menu fontStyle with standard automatic action

Para más detalles, consulte este artículo de la documentación.

Mediante la programación

También puede pasar una acción estándar al comando SET MENU ITEM PROPERTY . Desde 4D v16 R3, si pasa la constante ak standard action title en lugar de un nombre de título al comando APPEND MENU ITEM; 4D utiliza el nombre de la acción localizada.

Por ejemplo, en un menú emergente para añadir un elemento de menú para ir al primer, último o siguiente registro, se escribe el siguiente código:

  • En el método Form:

Case of
: (Form event=On Load) := ( ; ) ( ;-1; ; ) ( ; ) ( ;-1; ; ) ( ; ) ( ;-1; ; ) : ( = ) ( )
// create menu
menuCreate menu
//insert first record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak first record
//insert last record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak last record
//insert next record menu item
APPEND MENU ITEMmenuak standard action title
SET MENU ITEM PROPERTYmenuAssociated standard actionak next record
Form eventOn Unload
// release menu
RELEASE MENUmenu
End case

  • En el método del botón que muestra el menú emergente:

$val:=Dynamic pop up menu(menu )

Entonces, cuando ejecutes tu aplicación en otro idioma, el menú se mostrará:

blank

Para más detalles, consulte la documentación de estos comandos:

INVOKE ACTION comando

El comando INVOKE ACTION añadido en 4D v16 R3, activa la acción estándar definida por el parámetro de acción, opcionalmente en el target contexto. Para saber si la acción estándar es aplicable y válida en el contexto actual, puede utilizar el nuevo Get action info comando.

La sintaxis es:

INVOKE ACTION ( action {; target} )

Por ejemplo, para cambiar la apertura del MSC, puede escribir:

C_OBJECT($actionInfo)
// Check if this standard action is available and valid in this current context
$actionInfo :=Get action info(ak paste;ak current form)
If (OB Get($actionInfo; "enabled"))
// This standard action is enabled
INVOKE ACTION (ak paste;ak current form)
Else
ALERT ("Esta acción es imposible. El portapapeles está vacío")
End if

Para más detalles, lea la documentación de estos comandos:

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.