IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

XMLRAD Discussion :

Afficher une valeur du context


Sujet :

XMLRAD

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2003
    Messages
    211
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 211
    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

  2. #2
    RDM
    RDM est d�connect�
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Par d�faut
    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

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2003
    Messages
    211
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 211
    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)

  4. #4
    RDM
    RDM est d�connect�
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Par d�faut
    soit le document XML Output:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    <document>
      <Params>
        <MyValue>42</MyValue>
      </Params>
    </document>
    dans le XSL on fait:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <xsl:value-of select="/document/Params/MyValue"/>

  5. #5
    Membre �prouv�
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    85
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 85
    Par d�faut
    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+

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2003
    Messages
    211
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 211
    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 : S�lectionner tout - Visualiser dans une fen�tre � part
    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 ?? !!!

  7. #7
    RDM
    RDM est d�connect�
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Par d�faut
    dans ton XMLGram:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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 : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    <document>
      ... 
      <Params>
        <Val1>2</Val1>
        <Val2>2</Val2>
      </Params>
      ...
    </document>

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2003
    Messages
    211
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 211
    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 : S�lectionner tout - Visualiser dans une fen�tre � part
    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 ?

  9. #9
    Membre confirm�
    Inscrit en
    Novembre 2002
    Messages
    243
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Par d�faut
    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

  10. #10
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2003
    Messages
    211
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 211
    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 : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    - <PARAMS>
      <COMMENT /> 
      <ERROR_TEXT /> 
      </PARAMS>
    heu la ca devient compliqu� :-///

  11. #11
    RDM
    RDM est d�connect�
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Par d�faut
    ouch !
    peut-tu nous donner le code Delphi que tu mets dans les getionnaires d'�v�nements ?

  12. #12
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2003
    Messages
    211
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 211
    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 : S�lectionner tout - Visualiser dans une fen�tre � part
    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 : S�lectionner tout - Visualiser dans une fen�tre � part
    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 : S�lectionner tout - Visualiser dans une fen�tre � part
    Opération de pointeur incorrecte
    qd je regarde le log et bien j'ai bien la r�ponse "resultat" qui vient de mes DLL ...

  13. #13
    RDM
    RDM est d�connect�
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Par d�faut
    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[]

  14. #14
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2003
    Messages
    211
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 211
    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 :-)

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 6
    Dernier message: 09/01/2006, 17h25
  2. [dblookup] afficher une valeur par programmation
    Par let_me_in dans le forum Bases de donn�es
    R�ponses: 1
    Dernier message: 11/05/2005, 14h42
  3. [TMS320C31] Afficher une valeur � l'�cran
    Par miminou dans le forum Autres architectures
    R�ponses: 3
    Dernier message: 17/04/2005, 18h48
  4. [TP] Afficher une valeur avec outtext
    Par Bouilla dans le forum Turbo Pascal
    R�ponses: 4
    Dernier message: 06/03/2005, 09h57
  5. R�ponses: 3
    Dernier message: 28/01/2004, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo