Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Outils > XMLRAD
XMLRAD Environnement de développement Web XML/XSL. Avant de poster -> F.A.Q XMLRAD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/06/2006, 14h51   #1
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Par défaut Génération ProgressBar Delphi, XMLRAD

Bonjour,
J'ai bien suivi les indications trouvées ici pour piloter ma progress depuis Delphi.

J'ai d'abord :

Code :
1
2
3
4
 
XMLInstruction := XMLGram.GetXMLInstruction('MyProgress');
if(XMLInstruction = nil) then showmessage('Instruction Progress non trouvée !');
Progress := TProgress(XMLInstruction.Get_ObjectReference);
Puis, dans un repeat (sur le contenu d'un dossier), j'ai :

Code :
1
2
3
 
Progress.Current := 0;
Progress.MaxField := IntToStr(var);
Mon pb : à l'affichage, ma progress indique un max toujours égal à 100, ne tenant apparement pas compte de l'affection précédente ! Qq'un a t'il une idée ?

Merci de votre indulgence ...

NB
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2006, 16h21   #2
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
http://xmlrad.com/DelosXMLRADBin/Del...01015#Progress

MaxField est le nom du champ dans le Context qui contient la valeur max.
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2006, 16h40   #3
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Ok j'ai donc fais dans Delphi :

Code :
1
2
Context.SetValue('MaxField',IntToStr(nbLinesCSV));
Context.SetValue('Current','0');
puis dans XMLRAD dans le champ MaxField : {$MaxField}

ainsi que dans le ProgressLabel :

Code :
{$Current} / {$MaxField}
et bien sûr, j'ai rajouté en params de mon XMLGramOnly Current et MaxField. (Source Context, Destination Field Output) ...

Mon progress label affiche bien le bon maxfield transmis (Delphi=>Context=>XMLRAD) mais le compteur semble ne pas tenir compte de cette affectation en Context ! (il affiche tjs /100).

Si tu as une idée ... ? Merci d'avance

NB
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2006, 20h12   #4
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
nop, dans MaxFields il doit y a voir le nom du champs du Context

example:
Code :
Context.SetValue('nbLinesCSV',IntToStr(nbLinesCSV));
puis dans XMLRAD dans le champ MaxField : nbLignesCSV

pour le progressLabel c'est ok, il faut bien des templates properties pour récupérer la valeur du context !
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2006, 09h26   #5
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Effectivement ...

Merci

NB
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2006, 10h41   #6
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Le maxfield fonctionne donc, mais le curent semble additionner les valeurs des précédentes progress. Dans delphi j'ai en fait:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
repeat
...
   if() then
   begin
      Context.SetValue('MaxFieldA',IntToStr(nbLinesCSVA));
      for i:=0 to nbLinesCSV-1 do
      begin
         Context.SetValue('CurrentA',IntToStr(i+1));
         ProgressA.DoProcess(Context, InputDoc, OutputDoc);
         ...
      end;
   end;
 
   if() then
   begin
      Context.SetValue('MaxFieldB',IntToStr(nbLinesCSVB));
      for i:=0 to nbLinesCSVB-1 do
      begin
         Context.SetValue('CurrentB',IntToStr(i+1));
         ProgressB.DoProcess(Context, InputDoc, OutputDoc);
         ...
      end;
   end;
   ... suivi d'autres ifs identiques
 
until
Le pb est qu'à l'affichage, celà me génère à la fin par ex : 236/183 alors que, pour débuguer, celà affiche bien dans mon progress label ({$CurrentB} / {$MaxFieldB}) : 186/186 ... Après débug, A retourne effectivement 236-186=50results. Le current de la progress n'est donc pas RAZ ! Pourtant à chaque for, i retourne bien 0, et le renvoie en context.

Si tu peux m'aider à terminer ca, après je t'embète plus (sur la progress )
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2006, 13h27   #7
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
en fait les barres de progression partage dans le context le XMLC_Progress.Current qu'il te faut réinitialiser à 0 ou à blanc
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2006, 13h35   #8
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Oui en effet, j'aurai voulu te dire que j'avais mis Context.SetValue('XMLC_Progress.Current','0'); après recherches, mais le site était off, sorry .. Il me reste maintenant à comprendre pourquoi le nextaction de mon XMLGramOnly (contenant mes progress) ne semble pas tenir compte du NextAction (PS: je suis dans une iframe, ca pose pb ?)

A bientot

NB
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2006, 13h48   #9
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
le NextAction ne peut pas fonctionner quand on utilise des ProgressBar
il faut qu'il y ait une action utilisateur a partir de la page ou il y al es progress ou la page contenant l'iframe...
pourquoi ?
parce que les progressbar utilise une technique spéciale d'écriture de la réponse au fur et à mesure.Or a partir du moment ou les progressbar sont démarrés, la réponse à la requête qui les a déclenchée est déjà envoyé au navigateur, donc trop tard pour effectuer un autre XMLService et renvoyer une autre page HTML.
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2006, 13h54   #10
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Ma page contient un formulaire qui poste le resultat dans l'iframe (XMLGramOnly avec plusieurs progress), de manière à garder les critères visibles lorsque déroulent les progress en dessous. A la fin du traitement, j'aurai voulu redirigé (dans mon iframe via le nextaction) un sorte de bilan des tâches effectuées. En y repensant, peut etre aurait-il été possible de créer un DIV à la place d'iframe et de piloter via AJAX l'état de mes progress, permettant le NextAction cette fois ... hum
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2006, 14h25   #11
Nouveau Membre du Club
 
Inscription : avril 2003
Messages : 94
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 94
Points : 27
Points : 27
Pb contourné :
- création d'une progressFake
- rajout de document.location.href='url'; sur le EndScript de celle ci et voilà ...
... étant donné que j'avais pas le droit au nextaction :-)
LeCaméléon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2006, 22h50   #12
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
oui voila tu as trouvé la solution
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h41.


 
 
 
 
Partenaires

Hébergement Web