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 17/04/2003, 16h36   #1
Membre du Club
 
Inscription : février 2003
Messages : 194
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 194
Points : 42
Points : 42
Par défaut Afficher une valeur du context

Bon j'avoue j'ai honte de poser une question pareil mais la je galère pour rien et puis la recherche sur le forum ne marche (il y a trop de monde :-//) donc je vous embête ...
voila ma question est simple je n'arrive pas a faire afficher une variable du context ... (penser a me répondre qd vous aurez finis de rigoler :p)

Merci d'avance
[DreaMs] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2003, 17h16   #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
il faut l'assigner dans le document Output
avec une instruction Assign
puis dans le fichier xsl faire un xsl:value-of sur l'element
__________________
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 18/04/2003, 09h29   #3
Membre du Club
 
Inscription : février 2003
Messages : 194
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 194
Points : 42
Points : 42
Par défaut Hum ...

Bon je crois que je vais faire mon chieur jusqu'au bout ... Je sais que ma valeur est dans le context puisque je l'a vois dans les logs. Je l'assign dansl e document Output dans le XMLGram. Mais après qd je fais un xsl:value-of dans mon XSL il me propose pas cette valeur dans al liste de choix et puis quand j'essai de la rentrer manuellement je ne dois pas faire la bonne syntaxe ... Je crois que j'ai besoin d'un complément d'aide !

(tant qu'a poser une question bête et simple autant faire en sorte de comprendre la réponse)
[DreaMs] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2003, 13h48   #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
soit le document XML Output:
Code :
1
2
3
4
5
<document>
  <Params>
    <MyValue>42</MyValue>
  </Params>
</document>
dans le XSL on fait:

Code :
<xsl:value-of select="/document/Params/MyValue"/>
__________________
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 18/04/2003, 16h38   #5
Membre régulier
 
Inscription : janvier 2003
Messages : 85
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 85
Points : 92
Points : 92
Fais attention à ce que la valeur de l'attribut "select" de ton "xsl:value-of" soit correcte. En effet, XML est XPath sont Case Sensitive. Une simple erreur de majuscule et tu n'obtiendras pas la bonne valeur.

Sinon, as-tu également vérifié la présence de la valeur de ton paramètre au sein du document XML généré ? Pour vérifier cela, rajoutes dans l'url de ton action, le paramètre XMLC_OutputFormat=XML.

Sinon envois nous ton XMLGram et ton XSL pour qu'on puisse t'indiquer si t'as fais des erreurs

A+
__________________
Julien C.
Julien C. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2003, 11h48   #6
Membre du Club
 
Inscription : février 2003
Messages : 194
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 194
Points : 42
Points : 42
Par défaut Bouh :-/

Je vais finir par déprimer d'être stopper par un petit détail comme ca. Je dois avoir rater quelque chose dans ma compréhension XMLRad.
Bref j'ai fait afficher le XMLC_OutputFormat et effectivement ma valeur ne se trouve pas dedans (pourtant je l'a vois dans les logs dans :

Code :
1
2
3
4
Current ContextName Value 
val1 2 
val2 2 
resultat 7
(ici "val1" et "val2" sont des valeurs d'entrer que j'envoi dans une DLL delphi et qui me retourne "resultat" ... l'appel de cette DLL est fait dans le beforeXMLGram <<== c peut etre la mon problème ?) comment mettre cette valeur dans les params ?? !!!
[DreaMs] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2003, 12h01   #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
dans ton XMLGram:

Code :
1
2
3
4
5
6
7
8
9
10
<Assign Name="Params">
  <Fields>
    <Field>
      <Name>Val1</Name>
    </Field>
    <Field>
      <Name>Val2</Name>
    </Field>
  </Fields>
</Assign>
L'instruction Assign écrira dans le document Output, dans un élément Params:

Code :
1
2
3
4
5
6
7
8
<document>
  ... 
  <Params>
    <Val1>2</Val1>
    <Val2>2</Val2>
  </Params>
  ...
</document>
__________________
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 25/04/2003, 14h26   #8
Membre du Club
 
Inscription : février 2003
Messages : 194
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 194
Points : 42
Points : 42
Par défaut J'abandonne !

Bon je tente une dernière fois ma chance ... soit je suis très con soit XMLRad ne m'aime pas mais y a quelque chose la ...

Donc pour résumer j'ai 2 Form ..
FormIN ou je demande a l'utilisateur de rentrer 2 chiffres ...
FormOUT ou je dois lui afficher le résultat

Le résultat doit être calculer ç l'aide d'une DLL delphi (c'est en fait un programme test ...).

Dans ma DLL delphi j'utilise les 2 variables de la FormIN et je retourne le resultat :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TTestDLL.FormOUTBeforeXMLService(XMLService: IXMLService;
  var Handled: Boolean);
 
var
  E1,E2,S1 : string;
 
 
begin
        E1 := Context.Values['val1'];
        E2 := Context.Values['val2'];
        plus(E1,E2,S1);
        Context.Values['resultat'] := S1;
 
end;
Je lance l'utilisation de la DLL dans le Before_XMLGram de FormOUT

Je sais que le calcul s'effectue correctement puisque je vois dans les logs de XMLRad les bons résultats dans : Current_Context (comme expliquer plus haut).

Par contre dans le XMLGram du FormOUT je ne vois pas trop comment obtenir les lignes de RDM alors je les ai mis a la main comme il faut.
Donc voici le XMLGram :

Mais bon ca ne marche tj pas ... il reste encore quelqu'un de patient ?
[DreaMs] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2003, 15h16   #9
Membre habitué
 
Inscription : novembre 2002
Messages : 243
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 243
Points : 149
Points : 149
Le mieux serait que tu mettes dans le xmlgram de FormOUT(comme le dit RDM) une instruction Assign et tu définis les choses ainsi :
Destination : OutputDoc
Destination Field resultat (en fait le nom que tu mets dans le context)
Source Context
Source Field resultat
Tu n'oublies pas de clicker sur le petit plus :o
Le code que tu as écris dans le BeforeXMLService tu le mets plutôt dans le BeforeXMLGram.
Enfin, dans ton FormOUT.xsl, tu récupère ta valeur en faisant
<xsl:value-of select="/document/Params/resultat"/>

Ca devrait marcher
Pierre FORAZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2003, 16h28   #10
Membre du Club
 
Inscription : février 2003
Messages : 194
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 194
Points : 42
Points : 42
Par défaut On progresse !!!!

Ok, donc la j'arrive en fait a afficher une valeur qd je n'utilise pas une DLL mais que je mets simplement du code direct dans delphi dans mon évenement ... après lorsque j'utilise ma DLL (tj dans delphi) et bien la ca ne marche qu'une fois sur 15 (je me demande comment ca a marcher une fois !!!) j'ai parfois ce message :

TXMLDocument.Destroy Violation d'accès à l'adresse 02134DAC dans le module 'TestParams.dll'. Lecture de l'adresse 00000054

parfois :

Opération de pointeur incorrecte

ou alors ca ne veut carrement pas me lancer l'application ...


et souvent les params deviennent :

Code :
1
2
3
4
- <PARAMS>
  <COMMENT /> 
  <ERROR_TEXT /> 
  </PARAMS>
heu la ca devient compliqué :-///
[DreaMs] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2003, 16h42   #11
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
ouch !
peut-tu nous donner le code Delphi que tu mets dans les getionnaires d'événements ?
__________________
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 25/04/2003, 16h54   #12
Membre du Club
 
Inscription : février 2003
Messages : 194
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 194
Points : 42
Points : 42
Par défaut Aïe

Koi ? c grave ? j'ai fait une bêtise ? !!
Pourtant je pensais que ct simple ce que j'avais fait en delphi ...

Alors voici ce que j'ai dans ma DLL de mon projet XMLRad :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 function plus(var E1,E2 : string;
              var S1 : string): boolean; stdcall;
  external 'ProjetCreationDLL.dll' name 'procedure1';
 
procedure TTestDLL.FormOUTBeforeXMLGram(XMLGram: IXMLGram; InputDoc,
  OutputDoc: IXMLCursor; var Skip: Boolean);
 
 
var
  E1,E2,S1 : string;
 
begin 
        E1 := Context.Values['val1']; 
        E2 := Context.Values['val2']; 
        plus(E1,E2,S1);
        Context.Values['resultat'] := S1;
end;
et voici le contenu de la DLL que j'appel :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function plus(var E1,E2 : string;
              var S1 : string): boolean;stdcall;
 
implementation
 
function plus(var E1,E2 : string;
                   var S1 : string): boolean;stdcall;
var entreeA,
    entreeB,
    sortieA : real;
begin
   entreeA := strtofloat(E1);
   entreeB := strtofloat(E2);
   // Calcul
   sortieA:=entreeA*entreeB+3;
   // TTD => S
   S1 := Floattostr(sortieA);
   // Modèle accompli
end;
exports plus name 'procedure1';// exporte plus qui sera atteignable par le nom procedure1
:-/ a vous les studios pour un eventuelle débogage

PS: (si jamais il y a une erreur de syntaxe dans la déclaration de ma fonction c normal j'avais essayer de la transformé en procédure et tou tmais ca marchait ca et puis je rapel que même lorsque ca me mets

Code :
Opération de pointeur incorrecte
qd je regarde le log et bien j'ai bien la réponse "resultat" qui vient de mes DLL ...
[DreaMs] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2003, 13h33   #13
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
aïaïaïaïaïe !!
tu utilises le type string pour une fonction exportée de DLL !
je suppose que tu dois utiliser l'unité ShareMem (avec BORLNDMM.DLL) si ce n'est pas le cas, pas etonnant que ca pete dans tous les sens !
je n'ai dailleurs aucune idée du comportement que ca pourrait avoir avec l'utilisation du BORLNDMM.DLL et de IIS.
bref il faut soit utiliser des PCHAR soit des String[]
__________________
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 28/04/2003, 13h49   #14
Membre du Club
 
Inscription : février 2003
Messages : 194
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 194
Points : 42
Points : 42
Par défaut Merci bcp

Bon-:p ca fait du bien d'avoir affaire a des gens qui non seulement savent de koi il parlent mais en plus n'hésitent pas a s'abaisser au niveau des personnes comme moi qui débutent... bref un grand merci et je vais corriger tout ca :-)
[DreaMs] 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 14h48.


 
 
 
 
Partenaires

Hébergement Web