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 :

Utilisation des XMLC_Pivot et récupération en JScript


Sujet :

XMLRAD

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    jnl
    jnl est déconnecté
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 1
    Par défaut Utilisation des XMLC_Pivot et récupération en JScript
    Bonjour,
    en tant que nouveau venu sur ce forum je tiens en premier lieu à dire tout le bien que je pense du concept d'XMLRAD et de l'implémentation dans le framework XMLCLX. En espérant que je continue à avoir ces sentiments au fil de l'utilisation d'XMLRAD (la mariée est toujours belle au départ...).

    après cette apologie d'XMLRAD, voici mes questions:

    j'utilise les XMLC_Pivot pour pouvoir effectuer plusieurs mise à jour siumultanées dans la même table en utilisant la même DBbatch instruction.

    En revanche j'aimerais customiser la valeur de certains champs du update depuis un Jscript BeforeInternalInstruction dans le DBbatch.
    Comment peut on récupérer, dans le context, la valeur des paramètre du pivot ?


    XMLC_Pivo=TMAITRE

    ds le Form:
    input TMAITRE[position()].IDmaitre
    input TMAITRE[position()].chp1

    ds la requêtes:
    update Tmaitre
    set tmaitre.chp1=:chp1
    where idmaitre=:idmaitre


    dans le j script on recupère la valeur ds le context par
    GetValue("TMAITRE[1].chp1") et non par GetValue("chp1")
    alotrs que la reqête est bien valorisée par le champ "chp1".
    Comment peut on récupérer la valeur sans mettre le nom du pivot et surtout l'indice ?
    ou bien coimment connaitre le nombre max d'indice et l'indice courant (gérer par le Match Instruction à chaque itération) ?

  2. #2
    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
    Lorsque tu post un formulaire utilisant le XMLC_Pivot, ton application construit ce qui s'appelle un InputDoc. Ce dernier est un document XML qui contient les différents champs et valeurs de ton formulaire utilisant le XMLC_Pivot.

    Visiblement, dans ton formulaire tu as :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    XMLC_Pivot=TMAITRE
    TMAITRE[1].IDmaitre = 10
    TMAITRE[1].chp1 = Toto
    TMAITRE[2].IDmaitre = 11
    TMAITRE[2].chp1 = Tata
    TMAITRE[3].IDmaitre = 12
    TMAITRE[3].chp1 = Titi
    Ton application, lorsqu'il recoit ton formulaire, répère que tu utilises le XMLC_Pivot, avec pour valeur "TMAITRE". Il parse donc tous les champs du contexte pour crééer l'InputDoc correspondant aux valeurs de ton formulaire. Voilà ce à quoi il va ressembler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <document>
    <TMAITRE>
      <IDmaitre>10</IDmaitre>
      <chp1>Toto</chp1>
    </TMAITRE><TMAITRE>
      <IDmaitre>11</IDmaitre>
      <chp1>Tata</chp1>
    </TMAITRE><TMAITRE>
      <IDmaitre>12</IDmaitre>
      <chp1>Titi</chp1>
    </TMAITRE>
    </document>
    Ensuite, ton application éxécute ton XMLGram. Visiblement, il contient une instruction Match, avec un DBBatch à l'intérieur. L'instruction Match permet d'aller itérer sur les différents éléments TMAITRE de ton InputDoc. Pour chacun de ces éléments, le DBBatch va être éxécuté. Les valeurs des paramètres de ta requête sont écris sans les préfixes "TMAITRE[indice]", donc "chp1" et "idmaitre". En fait, l'instruction DBBatch détecte si l'InputDoc existe ou non. S'il existe, il va piocher les valeurs dans ce dernier et non pas dans le contexte ; c'est pour cela qu'on peut utiliser dans la requête les champs "chp1" et "idmaitre". Si tu veux modifier les valeurs de ces champs, tu n'as qu'à les modifié dans l'InputDoc. Dans ton BeforeInternalInstruction, tu vas modifié les valeurs de l'élément Input (qui correspond à l'élément courant de l'InputDoc) fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    chp1 := Input.GetValue('chp1');
    chp1 := chp1 + '_hopla';
    Input.SetValue('chp1', chp1);
    Voilà

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 75
    Par défaut
    Je rebondit sur ce sujet pour vous demandez un peut plus d'explications sur les "XMLC_Pivot" et les "Match".
    En effet, je cherche à ajouter à une forme standard de recherche la possibilité d'effectuer une mise à jour sur les enregistrements donnés en résultat (de la recherche).
    Chaque ligne de résultat est traité dans mon XSL par
    <template match="Individus"> et j'ai bien entendu ajouté un bouton SUBMIT avec comme action l'URL vers mon BModule (dans lequel je cherche à faire un Match qui ne fonctionne pas).

    Merci pour vos réponses.

    Lux

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Par défaut
    Vite fait,

    Une des petites limitations qu'on a avec les Framework avancés utilisant HTTP, c'est l'impossibilité de passer dans un formulaire <form> 2 champs portant le meme nom. Comment faire alors pour, par exemple, mettre à jour 2 enregistrements en une seule requete http ?
    La reponse apportée par XMLRAD est le InputDoc, qui est un document XML construit automatiquement par le Framework et utilisé par certaines instructions.

    Pour construire cet InputDoc, il faut passer le champ XMLC_Pivot
    <input type="hidden" name="XMLC_Pivot" value="ORG" /> et un ensemble de champs composant le ou les enregs :

    <input type="hidden" name="ORG[1].ORG_ID" value="1001"/>
    <input type="text" name="ORG[1].ORG_NAME" value="Bob S.A."/>

    <input type="hidden" name="ORG[2].ORG_ID" value="1002"/>
    <input type="text" name="ORG[2].ORG_NAME" value="Robert & Co"/>

    Tout juste apres l'événement BeforeXMLService, le XMLService va checker le Context pour trouver le XMLC_Pivot. S'il le trouve, il construit le InputDoc comme indiquer par Julien plus haut.

    Le Match va lui permettre de matcher sur chaque item de l'InputDoc.
    Pour chaque noeud dans l'InputDoc, le Match va effectuer les XMLInstructions filles en remplissant à chaque fois le Context avec les différentes valeurs.

    Pour un exemple : DataGrid et Update
    Bonne chance, Jim

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 75
    Par défaut
    Merci.
    Je me suis servit de la "DataGrid" comme exemple et y'a tout ce que je veux ........

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/04/2011, 18h31
  2. Récupération et utilisation des menus de windows en JAVA
    Par bibi7373 dans le forum Général Java
    Réponses: 4
    Dernier message: 01/02/2011, 09h20
  3. [MySQL] Utilisation des fonctions des récupérations des données
    Par Konrad Florczak dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/10/2006, 15h17
  4. [Crystal Report] Utilisation des vues de sql serveur
    Par Olivierakadev dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 15/11/2002, 17h44
  5. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01

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