PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Tableau de bord, Acces Fenetre interne
Tableau de bord, Acces Fenetre interne
Débuté par Flo, 28 fév. 2014 16:54 - 9 réponses
Posté le 28 février 2014 - 16:54
Bonjour,

Sur la page d'accueil de mon projet, un tableau de bord est situé avec divers éléments de statistiques(stats, graphe,...). Je cherche à relancer le traitement de ces statistiques et de ces graphes lors d'un ajout dans la base grâce à la fonction executeTraitement() et ne souhaite pas utiliser de Trigger :

ExécuteTraitement(FEN_MENU.TDB_MENU.FI_GRAPHE,trtInit)


Rien à faire, je n'ai pas accès à la FI_interne, même en attaquant directement la FI_interne par le code suivant :

ExécuteTraitement(FI_GRAPHE,trtInit)


Fi_Graphe est inconnu, quelqu'un aurait -il une solution à me proposer?

Bonne journée, Florent.
Posté le 28 février 2014 - 18:17
Bonjour,

Tu as une fenêtre A
Tu as un champs fenêtre interne B
Et dans ce champs, tu as une fenêtre interne C
Dans la fenêtre interne C, tu as une procédure f_init().


Une syntaxe qui marche à partir de n'importe quel bouton ou menu de A, c'est :

B.f_init()
Membre enregistré
102 messages
Popularité : +4 (6 votes)
Posté le 01 mars 2014 - 10:25
Bonjour,

Une autre idée consiste à rafraîchir les informations de la fenêtre interne sans pour autant l’exécuter depuis la fenêtre principale.
tout d'abord :
1 créer un timer dans la fenêtre interne exécutant le code voulu.
pour vérifier les mises à jour sur les tables utiliser la fonction hversion(nomtable) pour s'assurer des mises à jour.

--
HRS TECHNOLOGIE
Email : sales@hrs-technologie.com
http://www.hrs-technologie.com
Membre enregistré
163 messages
Popularité : +2 (2 votes)
Posté le 01 mars 2014 - 18:15
Bonjour,

Pourquoi ne pas utiliser les fonctions du tableau de bord ?

http://doc.pcsoft.fr/fr-FR/?1000021048

--
Manuel Santisteban,
Création de sites internet & logiciels
www.xenero-developpement.com
Posté le 03 mars 2014 - 09:12
Mon tableau de bord est constitué de deux fenêtres internes, la première est une fenêtre rempli par programmation avec différentes requêtes, la deuxième est un graphe représentant le budget restant rempli par programmation également.

A l’ajout ou la modification d'une facture, je dois mettre à jour le graphe et à l'ajout ou la modif d'une session de Formation je dois mettre à jour la fenêtre avec les requêtes.
Les codes suivant ne fonctionnent pas :

HAjoute(Facture)
TDBAffiche(FEN_MENU.TDB_MENU,FI_Graphe)


Est ce parce que je passe par programmation que lors du débug je me rend compte que le mise à jour ne passe pas la procedure init_graph?

ExécuteTraitement(FI_Graphe.GRF_budget,trtInit)

La FI est inconnu.

Je peux toujours passer par un Timer mais celle ci ne me convient pas, la mise à jour du tableau de bord doit être possible
Posté le 03 mars 2014 - 09:51
Bonjour,

Il faut être précis dans ta question, et il faut lire les réponses qu'on te donne.

Tu as une fenêtre A.
Dans cette fenêtre, tu as un champs fenêtre interne B
Et dans ce champs, tu as une fenêtre interne C

Il faut pointer sur B et pas sur C.

A priori, vu les conventions de nommage habituelles de Windev, tu pointes sur C.


Imagine que tu as 2 CHAMPS fenêtre interne , avec la même fenêtre interne dans les 2 champs, mais que tu veuilles actualiser un seul des 2 champs ... tout va devenir clair instantanément.
Posté le 03 mars 2014 - 10:16
Oui je suis d'accord mais dans les deux cas rien ne s'actualise. J'ai ma fenêtre principale de menu qui comporte mon tableau de bord qui lui comporte mes différentes fenêtres internes.

De n'importe quel endroit dans le projet je veux mettre à jour mon tableau de bord, je fais bien :

TDBAffiche(TDB_Menu)
Posté le 03 mars 2014 - 10:24
Flo avait soumis l'idée :
Bonjour,

Sur la page d'accueil de mon projet, un tableau de bord est situé avec divers
éléments de statistiques(stats, graphe,...). Je cherche à relancer le
traitement de ces statistiques et de ces graphes lors d'un ajout dans la base
grâce à la fonction executeTraitement() et ne souhaite pas utiliser de
Trigger :

ExécuteTraitement(FEN_MENU.TDB_MENU.FI_GRAPHE,trtInit)


Rien à faire, je n'ai pas accès à la FI_interne, même en attaquant
directement la FI_interne par le code suivant :

ExécuteTraitement(FI_GRAPHE,trtInit)


Fi_Graphe est inconnu, quelqu'un aurait -il une solution à me proposer?

Bonne journée, Florent.


Pour mettre à jour les graphes des fenêtres interne il faut d'une part
utiliser la fonction TBAffiche mais il ne faut pas oublier de mettre du
code dans les fenêtres internes dans "Rafraîchissement du Widget".
C'est ce code la qui sera exécuté lors du lancement de TBAffiche.
J'ai un tableau de bord ou les graphes peuvent être raffraîchi soit à
la demande soit dans un interval à définir soit sur modification d'un
fichier.
Posté le 03 mars 2014 - 10:25
Flo a émis l'idée suivante :
Oui je suis d'accord mais dans les deux cas rien ne s'actualise. J'ai ma
fenêtre principale de menu qui comporte mon tableau de bord qui lui comporte
mes différentes fenêtres internes.

De n'importe quel endroit dans le projet je veux mettre à jour mon tableau de
bord, je fais bien :

TDBAffiche(TDB_Menu)


Comme mentionné dans un autre message il faut ajouter du code dans les
pages internes pour que celles-ci se mettent à jour.
Posté le 03 mars 2014 - 12:10
C'est bon ça marche, merci beaucoup.

Je ne connaissais pas ce bloc d'instructions "Rafraîchissement".

Bonne journée.