PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2025 → Sablier Android
Sablier Android
Débuté par ap17, 16 déc. 2023 19:08 - 10 réponses
Membre enregistré
113 messages
Posté le 16 décembre 2023 - 19:08
Bonjour,
Lorsque j'essaye d'afficher un sablier
Sablier(vrai)
Traitement
Sablier(faux)

dans une appli Android, rien ne s'affiche. Le traitement se fait sans problème mais pas de sablier...
Rien ne s'affiche non plus avec FenAttenteDébut... FenAttenteFin

Est-ce que j'oublie quelque chose ? Faut-il par exemple définir l'image du sablier ? mais alors où ?

Merci de votre aide...
Membre enregistré
3 722 messages
Posté le 16 décembre 2023 - 20:53
Salut,
C'est normal.
C'est même écrit dans l'aide
Je cite
// Sous Android et IOS, mise à jour de la jauge pendant le traitement.
Multitâche(-1)

Encore dans l'aide :
Remarque : Lors de l'exécution de traitements longs, il est conseillé d'ajouter des appels à la fonction Multitâche dans le code afin de laisser le temps à la jauge de rafraîchir son affichage.
Message modifié, 16 décembre 2023 - 20:55
Membre enregistré
960 messages
Posté le 16 décembre 2023 - 20:54
Bonjour,
Avez-vous lu la doc :
https://doc.pcsoft.fr/?3071011

Avez-vous essayé avec :
Multitâche(-1)

Cdlt
Membre enregistré
113 messages
Posté le 19 décembre 2023 - 10:28
oui j'ai lu et relu l'aide avant de poster ma demande et oui il a des Multitache() dans le code du traitement...mais rien ne s'affiche
Posté le 19 décembre 2023 - 12:05
Votre traitement s'exécute bien dans le thread principal ?
Membre enregistré
1 341 messages
Posté le 19 décembre 2023 - 23:32
As-tu essayé FenAttenteDébut(message) et FenAttenteFin()?

--
Jean Turcotte
WX 28
Android 9.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Membre enregistré
489 messages
Posté le 22 janvier 2024 - 15:03
Bonjour

voilà comment je fais pour avoir le sablier qui s'affiche sous android, j'utilise les taches parallèles qui permettent également de ne pas avoir l'interface de bloqué :

Traitement_encours = Vrai

tp_0 est une TâcheParallèle
tp_0 = TâcheParallèleExécute(avant_traitement)

tp_1 est une TâcheParallèle
tp_1 = TâcheParallèleExécute(comptage_tournee,(Reg_company,Var_id_atelier))

tp2 est une TâcheParallèle
tp2 = TâcheParallèleExécuteAprès(tp_1,Apres_traitement)


//activation du sablier
PROCEDURE INTERNE avant_traitement()
ExécuteThreadPrincipal(ihm_avant_traitement)
FIN
PROCEDURE INTERNE ihm_avant_traitement()
Sablier(Vrai)
FIN
//********************************************************

//procedure interne(comptage_tournee)
//.........

//*****************************************************
//Désactivation sablier
PROCEDURE INTERNE Apres_traitement()
Traitement_encours = Faux
ExécuteThreadPrincipal(ihm_apres_traitement)
FIN

PROCEDURE INTERNE ihm_apres_traitement()
Sablier(Faux)
FIN


cdlt

DG
Posté le 07 octobre 2025 - 17:32
Dimitri G a écrit :
Bonjour

voilà comment je fais pour avoir le sablier qui s'affiche sous android, j'utilise les taches parallèles qui permettent également de ne pas avoir l'interface de bloqué :

Traitement_encours = Vrai

tp_0 est une TâcheParallèle
tp_0 = TâcheParallèleExécute(avant_traitement)

tp_1 est une TâcheParallèle
tp_1 = TâcheParallèleExécute(comptage_tournee,(Reg_company,Var_id_atelier))

tp2 est une TâcheParallèle
tp2 = TâcheParallèleExécuteAprès(tp_1,Apres_traitement)


//activation du sablier
PROCEDURE INTERNE avant_traitement()
ExécuteThreadPrincipal(ihm_avant_traitement)
FIN
PROCEDURE INTERNE ihm_avant_traitement()
Sablier(Vrai)
FIN
//********************************************************

//procedure interne(comptage_tournee)
//.........

//*****************************************************
//Désactivation sablier
PROCEDURE INTERNE Apres_traitement()
Traitement_encours = Faux
ExécuteThreadPrincipal(ihm_apres_traitement)
FIN

PROCEDURE INTERNE ihm_apres_traitement()
Sablier(Faux)
FIN


cdlt

DG


svp puis-je avoir le code de comptage_tournee
Posté le 07 octobre 2025 - 17:32
Dimitri G a écrit :
Bonjour

voilà comment je fais pour avoir le sablier qui s'affiche sous android, j'utilise les taches parallèles qui permettent également de ne pas avoir l'interface de bloqué :

Traitement_encours = Vrai

tp_0 est une TâcheParallèle
tp_0 = TâcheParallèleExécute(avant_traitement)

tp_1 est une TâcheParallèle
tp_1 = TâcheParallèleExécute(comptage_tournee,(Reg_company,Var_id_atelier))

tp2 est une TâcheParallèle
tp2 = TâcheParallèleExécuteAprès(tp_1,Apres_traitement)


//activation du sablier
PROCEDURE INTERNE avant_traitement()
ExécuteThreadPrincipal(ihm_avant_traitement)
FIN
PROCEDURE INTERNE ihm_avant_traitement()
Sablier(Vrai)
FIN
//********************************************************

//procedure interne(comptage_tournee)
//.........

//*****************************************************
//Désactivation sablier
PROCEDURE INTERNE Apres_traitement()
Traitement_encours = Faux
ExécuteThreadPrincipal(ihm_apres_traitement)
FIN

PROCEDURE INTERNE ihm_apres_traitement()
Sablier(Faux)
FIN


cdlt

DG


svp puis-je avoir le code de comptage_tournee
Membre enregistré
1 341 messages
Posté le 08 octobre 2025 - 15:09
Tu dois y mettre le traitement à exécuter pendant que le sablier s'affiche. :)
Membre enregistré
489 messages
Posté le 08 octobre 2025 - 16:41
comme te dis jean tu dois y mettre ton traitement après si ca te fais plaisir voila mon code mais cela te servira à rien ;)

PROCEDURE INTERNE comptage_tournee()

pour TOUT un_point_de_livraison de tab_point_livraison
//alimentation tableau temporaire qu'avec les UM du point de livraison concerné
Clogistique.charge_preparation_filtrer(un_point_de_livraison.picking_ordre,un_point_de_livraison.entrepot_chargement)
TableauSupprimeTout(TAB_um)
un_point_livraison_Total est un entier = 0
un_point_livraison_progression est un entier = 0

//comptage du nombre d'élément
// Attention plusieurs lignes rp dans une palette ne valent qu' 1
//d'où la mise en tableau afin de pouvoir supprimer les doublons
x est un entier

pour TOUT unite_manutention de Clogistique.Tab_preparation_filtrer
x = TableauAjoute(TAB_um)
TAB_um[x].umid = unite_manutention.um_id
TAB_um[x].umtype = unite_manutention.um_zone_type
FIN
TableauSupprimeDoublon(TAB_um,ttMembre,"umid")

//on comptabilise que ceux qui sont préparer
pour TOUT unite_manutention de TAB_um
SI unite_manutention.umtype = "preparation" ALORS
un_point_livraison_progression ++
FIN
FIN
un_point_livraison_Total = TAB_um..Occurrence
att_numero_livraison est une chaîne = un_point_de_livraison.picking_ordre + "_" + un_point_de_livraison.entrepot_chargement
ExécuteThreadPrincipal(ihm_compteur_point_livraison,att_numero_livraison,un_point_livraison_Total,un_point_livraison_progression)
FIN
FIN

PROCEDURE INTERNE ihm_compteur_point_livraison(numero_point_livraison est une chaîne,total_point_livraison est une entier,progression_point_livraison est une entier)
nligne est un entier = ZoneRépétéeCherche(ATT_mix,numero_point_livraison,rechercheIdentique)
SI nligne <> -1 ALORS
ZR_Liste_point_livraison[nligne].JAUGE_point_livraison.BorneMin = 0
ZR_Liste_point_livraison[nligne].JAUGE_point_livraison.BorneMax = total_point_livraison
ZR_Liste_point_livraison[nligne].JAUGE_point_livraison.Valeur = progression_point_livraison
ZR_Liste_point_livraison[nligne].JAUGE_point_livraison.Libellé = progression_point_livraison + "/" + total_point_livraison

SELON progression_point_livraison
CAS 0
ZR_Liste_point_livraison[nligne].IMG_Vague.CouleurFond = RougeClair
CAS 0<*<total_point_livraison
ZR_Liste_point_livraison[nligne].IMG_Vague.CouleurFond = OrangePastel
CAS total_point_livraison
ZR_Liste_point_livraison[nligne].IMG_Vague.CouleurFond = VertPastel

autre CAS

FIN
FIN
FIN