Esdeveniment de botó

imatge.png

Personalitzar els botons amb Ninext

Amb Ninext podeu modificar l'aparença dels botons de Ninox definint una funció anomenada onUpdate a l'activador «Display only if». Aquesta funció ha de retornar un objecte que descrigui els elements visuals que cal modificar, i l'script ha d'acabar amb un booleà que indiqui si el botó s'ha de mostrar.

Amb aquest enfocament podeu:

  • Canviar el text del botó.
  • Actualitzar el text d'ajuda (o títol) del botó.
  • Canviar el color del botó fent servir classes predefinides.
  • Mostrar un badge per destacar informació important.

Visió ràpida de les propietats JSON

PropietatDescripcióExemple / Ús
captionEl text que es mostra al botó."Send" / "Cancel"
tooltip o titleEl text que apareix en passar el ratolí per sobre, com a text d'ajuda."Click to send"
buttonColorLa classe de color que cal aplicar al botó (per exemple, "blue", "red", "grey")."blue"
badgeUn objecte que descriu el badge que cal mostrar al botó.Vegeu-ne els detalls més avall
badge.captionEl text, el nombre o el símbol que es mostra al badge."3" or "!"
badge.colorEl color del badge (per defecte o personalitzat)."red" or "#4970ff"

Funcionament general

  1. Definiu la funció onUpdate
    Al codi de l'activador «Display only if» del botó, declareu una funció anomenada onUpdate. Aquesta funció retorna un objecte (en format JSON) que descriu els elements que cal modificar.
  2. Retorneu un booleà per a la visibilitat
    L'activador ha d'acabar retornant un booleà (true o false) per indicar si el botó s'ha de mostrar.
  3. Ninext aplica les modificacions
    Quan s'obre o es refresca el registre, Ninext executa la funció onUpdate, llegeix l'objecte retornat i aplica dinàmicament els canvis d'aparença al botó.

Implementació

Un sol bloc de codi a l'activador «Display only if»

"Declaration of the onUpdate function that customizes the button";
function onUpdate(buttonValues : any) do
 let count := this.Count;
 {
      caption: if count > 0 then
          "Send (" + count + ")"
      else
          "Send"
      end,
      tooltip: "Click to send your request",
      buttonColor: if count > 0 then "red" else "blue" end,
      badge: {
           caption: if count > 0 then text(count) else "" end,
           color: "red"
      }
 }
end;

"Determination of the button's visibility";
this.Count >= 0

Comentaris:

  • La funció onUpdate construeix un objecte que permet modificar el text del botó (amb un indicador numèric si Count és positiu), el text d'ajuda, el color del botó i mostrar-hi un badge.
  • El bloc de codi final retorna un booleà per determinar si el botó s'ha de mostrar.

Exemple mínim (només badge)

"Declaration of the onUpdate function to display only a badge";
function onUpdate(buttonValues : any) do
 let newItems := this.newItems;
 {
      badge: {
           caption: if newItems > 0 then text(newItems) else "" end,
           color: "red"
      }
     }
end;
"The button is always displayed";
true

Comentaris:

  • Només es retorna la propietat badge per mostrar un valor si NewItems és més gran que 0.
  • El botó es mostra sense condicions.

Punts importants

  • Retorn booleà final
    Sense retornar true o false al final, el botó no serà visible.