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

WinDev Discussion :

Syntaxe indirection sur champ indexé et lignes de table. [WD17]


Sujet :

WinDev

  1. #1
    Membre habitué
    Homme Profil pro
    *
    Inscrit en
    Avril 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : *

    Informations forums :
    Inscription : Avril 2012
    Messages : 84
    Points : 128
    Points
    128
    Par défaut Syntaxe indirection sur champ indexé et lignes de table.
    Bonjour,

    J'ai un petit soucis de syntaxe que j'aimerais améliorer.
    En fait, dans ma fenêtre j'ai une zone repetée dans laquelle je sais des infos quand au conditionnement, tarif de base de mon produit.
    je peux avoir 1 à X conditionnement.

    Dans un onglet de cette même fenêtre, j'ai une table qui va me permettre de calculer par ligne le cadencier pour X client certains n'ayant pas accés à certains produits.

    Dans un premier temps je clone en fonction du nombre de zone repétée (nb de conditionnement possible)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    POUR i=1 _A_ nbOccurenceZoneRepetee
    	ChampClone(COL_IDBouquetCadencier_,"COL_IDBouquetCadencier_"+i)
    	ChampClone(COL_Conditionnement_,"COL_Conditionnement_"+i)
    	ChampClone(COL_PrixDepart_,"COL_PrixDepart_"+i)
    FIN
    Ensuite je remplit ma table avec les informations relatives aux clients concernés via un type de modele produit jusque la pas de problème.
    Puis je re-parcours ma table afin d'affecter les informations relatives au conditionnement du produit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    POUR nBLigneTable=1 _A_ TableOccurrence(TABLE_CadencierClient)
    	POUR i=1 _A_ ZoneRépétéeOccurrence(ZR_ConditionnementColis)
    		TableSelectPlus(TABLE_CadencierClient,nBLigneTable)
     
    		{"COL_IDCadencier_"+i,indChamp}=ZR_ConditionnementColis[i].LIB_IdCadencierColis
    		{"COL_Conditionnement_"+i,indChamp}=ZR_ConditionnementColis[i].LIB_Conditionnement
    		{"COL_PrixDepart_"+i,indChamp}=ZR_ConditionnementColis[i].LIB_PrixDepart
    	FIN
    FIN


    En fait, ce que j'aimerais améliorez c'est au niveau du TableSelectPlus que j'aimerais supprimer et remplacer par une syntaxe au niveau de l'indirection du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"TABLE_CadencierClient[nBLigneTable].COL_IDCadencier_"+i,indChamp}=ZR_ConditionnementColis[i].LIB_IdCadencierColis
    Malheureusement ce code n'est pas fonctionnel si quelqu'un a une idée de la syntaxe adéquate?


    Cordialement.

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Je pense que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"TABLE_CadencierClient["+nBLigneTable+"].COL_IDCadencier_"+i,indChamp}=ZR_ConditionnementColis[i].LIB_IdCadencierColis
    sera mieux !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  3. #3
    Membre habitué
    Homme Profil pro
    *
    Inscrit en
    Avril 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : *

    Informations forums :
    Inscription : Avril 2012
    Messages : 84
    Points : 128
    Points
    128
    Par défaut
    Malheureusement ce code ne fonctionne pas, il me renvoi comme message d'erreur :
    Erreur à la ligne 91 du traitement Procédure locale CalculCadencierClient.
    Un champ n'a pas de sous-élément. L'opérateur '.' est interdit.
    je me demande si c'est possible ou si je vais pas devoir garder mon TableSelectPlus

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Et ça non plus ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {"TABLE_CadencierClient.COL_IDCadencier_"+i+"["+nBLigneTable+"]",indChamp}=ZR_ConditionnementColis[i].LIB_IdCadencierColis
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Bonjour,

    de manière générale, une indirection désigne un objet, et non un élément ou propriété d'un objet. Donc l'indice doit être mis à l'exterieur de l'indirection.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"TABLE_CadencierClient.COL_IDCadencier_"+i,indChamp}[nBLigneTable]=ZR_ConditionnementColis[i].LIB_IdCadencierColis

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Personnellement sur WD17 j'utilise les 2 syntaxes et elles sont supportées. Ceci dit la syntaxe de Ry_Yo a le mérite d'être plus claire !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  7. #7
    Membre habitué
    Homme Profil pro
    *
    Inscrit en
    Avril 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : *

    Informations forums :
    Inscription : Avril 2012
    Messages : 84
    Points : 128
    Points
    128
    Par défaut
    Malheureusement ce code ne fonctionne pas non plus, il me renvoi également comme message d'erreur :

    Erreur à la ligne 91 du traitement Procédure locale CalculCadencierClient.
    Un champ n'a pas de sous-élément. L'opérateur '.' est interdit.
    Étonnant si vous me dites que la syntaxe fonctionne bien chez vous

  8. #8
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Quelle version de Windev utilisez vous ?
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  9. #9
    Membre habitué
    Homme Profil pro
    *
    Inscrit en
    Avril 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : *

    Informations forums :
    Inscription : Avril 2012
    Messages : 84
    Points : 128
    Points
    128
    Par défaut
    justement la version 17

  10. #10
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Bizarre... et si vous ne préfixez pas avec le nom de la table ?
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  11. #11
    Membre habitué
    Homme Profil pro
    *
    Inscrit en
    Avril 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : *

    Informations forums :
    Inscription : Avril 2012
    Messages : 84
    Points : 128
    Points
    128
    Par défaut
    C'est bon cela fonctionne erreur de syntaxe lors du copié/coller.

    Merci à tous les deux et désolé pour le dérangement pour un problème qui aurait pu être résolu hier après midi si j'avais bien relu ma ligne de code (oubli d'un S du coup la colonne etait inexistante d'ou le message d'erreur).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur sur champ text pour un index Full-Text
    Par Steph82 dans le forum Outils
    Réponses: 5
    Dernier message: 06/01/2011, 14h08
  2. mise à jour des champs d'une ligne de table
    Par laurentSc dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/12/2009, 19h09
  3. Trim sur champ indexé
    Par sondo dans le forum SQL
    Réponses: 5
    Dernier message: 03/02/2009, 18h51
  4. Interrogation sur le verrouillage de ligne / index / prédicat
    Par vmolines dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/01/2007, 17h04
  5. Réponses: 4
    Dernier message: 15/06/2006, 16h42

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