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 régulier
    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
    Points : 85
    Points
    85
    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 émérite

    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
    Points : 2 927
    Points
    2 927
    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 régulier
    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
    Points : 85
    Points
    85
    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 émérite

    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
    Points : 2 927
    Points
    2 927
    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 régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 85
    Points : 99
    Points
    99
    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 régulier
    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
    Points : 85
    Points
    85
    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 émérite

    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
    Points : 2 927
    Points
    2 927
    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 régulier
    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
    Points : 85
    Points
    85
    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 habitué
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Points : 192
    Points
    192
    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 régulier
    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
    Points : 85
    Points
    85
    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 émérite

    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
    Points : 2 927
    Points
    2 927
    Par défaut
    ouch !
    peut-tu nous donner le code Delphi que tu mets dans les getionnaires d'événements ?

  12. #12
    Membre régulier
    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
    Points : 85
    Points
    85
    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 émérite

    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
    Points : 2 927
    Points
    2 927
    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 régulier
    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
    Points : 85
    Points
    85
    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. afficher une valeur par défault dans la combobox
    Par shadow31 dans le forum MFC
    Réponses: 6
    Dernier message: 09/01/2006, 18h25
  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, 15h42
  3. [TMS320C31] Afficher une valeur à l'écran
    Par miminou dans le forum Autres architectures
    Réponses: 3
    Dernier message: 17/04/2005, 19h48
  4. [TP] Afficher une valeur avec outtext
    Par Bouilla dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 06/03/2005, 10h57
  5. Réponses: 3
    Dernier message: 28/01/2004, 15h55

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