Anvaigo Mobile App / Fonctionnalités de l’application de base / Légende dynamique des tuiles dans le menu principal
C'est une traduction automatique. Le message original est disponible en Anglais.

Légende dynamique des tuiles dans le menu principal

Le changement dynamique des légendes des tuiles dans le menu principal s’effectue dans le OnOpenMenu Trigger du menu principal correspondant. De cette façon, l’icône, la couleur et le texte de la tuile peuvent être ajustés.

Icônes/Couleurs

L’icône et la couleur des tuiles du menu principal sont stockées dans le tableau ACF Anvaigo Page Element Menu. Pour modifier ces valeurs sur l’application, il faut d’abord identifier l’entrée correspondante dans le tableau. Toutes les entrées de menu qui n’appartiennent pas à une Anvaigo Page sont marquées par le champ Code de Anvaigo Page vide.

local anvaigoPageElementMenu = Record('ACF Anvaigo Page Element Menu');

-- [[get Main Menu Entry for My Messages]]
anvaigoPageElementMenu:SETRANGE('Anvaigo Page Code','');
anvaigoPageElementMenu:SETRANGE('Action Code','');
anvaigoPageElementMenu:SETRANGE('Linked Anvaigo Page','ASLS_NOTIFICATIONS');
anvaigoPageElementMenu:FINDFIRST();

Dans cette entrée, le symbole et la couleur de fond peuvent être modifiés dynamiquement en modifiant les champs Background Color et Icon Description. Un exemple complet des notifications pourrait ressembler à ceci :

local anvaigoPageElementMenu = Record('ACF Anvaigo Page Element Menu');
local ACFNotification = Record('ACF Notification');
local colorRed = '#bd3939';
local colorGreen = '#00b050';
local colorBlue = '#5b9bd5';
local colorGray = '#7c7c7c';

-- [[get Main Menu Entry for My Messages]]
anvaigoPageElementMenu:SETRANGE('Anvaigo Page Code','');
anvaigoPageElementMenu:SETRANGE('Action Code','');
anvaigoPageElementMenu:SETRANGE('Linked Anvaigo Page','ASLS_NOTIFICATIONS');
anvaigoPageElementMenu:FINDFIRST();
--[[check if there are unread Notifications]]
ACFNotification:SETRANGE('Status', 5);
if ACFNotification:ISEMPTY() then
--[[no unread messages]]
--[[set the background color to gray and set the symbol to "mail"]]
anvaigoPageElementMenu:SETVALUE('Background Color', colorGray);
anvaigoPageElementMenu:SETVALUE('Icon Description', 'mail');
anvaigoPageElementMenu:MODIFY(false);
else
--[[there are unread messages]]
--[[set the background color to red and set the symbol to "mail_open"]]
anvaigoPageElementMenu:SETVALUE('Background Color', colorRed);
anvaigoPageElementMenu:SETVALUE('Icon Description', 'mail_open');
anvaigoPageElementMenu:MODIFY(false);
end;

Texte

Les textes des entrées du menu principal sont définis dans la table ACF Multilanguage. Ils sont identifiés par le table number, les zones PK et la language. Le champ contient le texte affiché. Pour le tableau ACF Anvaigo Page Element Menu (dans lequel sont stockées les tuiles du menu principal), celles-ci peuvent être trouvées et modifiées comme suit :

local anvaigoPageElementMenu = Record('ACF Anvaigo Page Element Menu');
anvaigoPageElementMenu:SETRANGE('Anvaigo Page Code','');
anvaigoPageElementMenu:SETRANGE('Action Code','');
anvaigoPageElementMenu:SETRANGE('Linked Anvaigo Page','ASLS_NOTIFICATIONS');
anvaigoPageElementMenu:FINDFIRST();

--[[Get Multilanguage Entry for currently selected Language and Main Menu entry]]
local multilanguage = Record('ACF Multilanguage');
multilanguage:SETRANGE('PK Table No.', anvaigoPageElementMenu:GETTABLENO());
multilanguage:SETRANGE('Language', GLOBALLANGUAGECODE());
multilanguage:SETRANGE('PK No. 1', anvaigoPageElementMenu:GETVALUE('Anvaigo Page Element Line No.'));
multilanguage:SETRANGE('PK No. 2', anvaigoPageElementMenu:GETVALUE('Entry No.'));
multilanguage:FINDFIRST();
multilanguage:SETVALUE('Value','Hello World');
multilanguage:MODIFY(false);

Exemple de modification de la Tuile de notification des applications de base Anvaigo

L’exemple pour les avis ressemble alors à ce qui suit, y compris la modification des textes :

local function changeText(anvaigoPageElementMenu,text)
--[[Get Multilanguage Entry for currently selected Language and Main Menu entry]]
local multilanguage = Record('ACF Multilanguage');
multilanguage:SETRANGE('PK Table No.', anvaigoPageElementMenu:GETTABLENO());
multilanguage:SETRANGE('Language', GLOBALLANGUAGECODE());
multilanguage:SETRANGE('PK No. 1', anvaigoPageElementMenu:GETVALUE('Anvaigo Page Element Line No.'));
multilanguage:SETRANGE('PK No. 2', anvaigoPageElementMenu:GETVALUE('Entry No.'));
multilanguage:FINDFIRST();
multilanguage:SETVALUE('Value',text);
multilanguage:MODIFY(false);
end;

local anvaigoPageElementMenu = Record('ACF Anvaigo Page Element Menu');
local ACFNotification = Record('ACF Notification');
local colorRed = '#bd3939';
local colorGreen = '#00b050';
local colorBlue = '#5b9bd5';
local colorGray = '#7c7c7c';

-- [[get Main Menu Entry for My Messages]]
anvaigoPageElementMenu:SETRANGE('Anvaigo Page Code','');
anvaigoPageElementMenu:SETRANGE('Action Code','');
anvaigoPageElementMenu:SETRANGE('Linked Anvaigo Page','ASLS_NOTIFICATIONS');
anvaigoPageElementMenu:FINDFIRST();
--[[check if there are unread Notifications]]
local total = ACFNotification:COUNT();
ACFNotification:SETRANGE('Status', 5);
local unread = ACFNotification:COUNT();
if ACFNotification:ISEMPTY() then
--[[no unread messages]]
--[[set the background color to gray and set the symbol to "mail"]]
anvaigoPageElementMenu:SETVALUE('Background Color', colorGray);
anvaigoPageElementMenu:SETVALUE('Icon Description', 'mail');
anvaigoPageElementMenu:MODIFY(false);
--[[change Text accordingly]]
changeText(anvaigoPageElementMenu,GETTEXT('ASLS_NOTIFICATIONS',total));
else
--[[there are unread messages]]
--[[set the background color to red and set the symbol to "mail_open"]]
anvaigoPageElementMenu:SETVALUE('Background Color', colorRed);
anvaigoPageElementMenu:SETVALUE('Icon Description', 'mail_open');
anvaigoPageElementMenu:MODIFY(false);
--[[change Text accordingly]]
changeText(anvaigoPageElementMenu,GETTEXT('ASLS_NOTIFICATIONS_UNREAD',total,unread));
end;