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 :

[WD 11] Etat sur zone mémoire


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 121
    Points : 65
    Points
    65
    Par défaut [WD 11] Etat sur zone mémoire
    Bonjour,

    Voilà mon souci.
    Je dois alimenter un état à partir d'une zone mémoire.
    Cette zone, je la remplis à partir d'une table qui est remplie par programmation (table mémoire donc), dans laquelle je sélectionne les enregistrements à imprimer en les ajoutant à la zone mémoire par leur identifiant (chaque élément de la table est un article, repéré par son identifiant au sein de la table Article hyperfile).

    Bref, je remplis ma zone mémoire, j'affiche le nombre d'enregistrements contenus dedans : 2. Tout est ok.

    De là j'appelle mon état, et à l'ouverture de celui-ci il me met : "pas de données à imprimer". Alors que l'état est correctement basé sur la bonne zone mémoire.

    Voici le code :

    Remplissage de la zone mém.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    MemCrée("Zmem")
    POUR iInd = 1 A TableOccurrence(TAB_ARTPROMO)
    	SI SEL ET REFPERM_ASSOC[iInd]<>"" ALORS
    		MemAjoute("Zmem",REFPERM_ASSOC[iInd],REFPERM_ASSOC[iInd])
    		//hlitrecherche(ARTICLE,AR.AR_REF,REFPERM_ASSOC[iInd])
    		//si htrouve alors
    		//	memajoute("Zmem",HNumEnr,REFPERM_ASSOC[iInd])
    		//FIN			
    	FIN
    FIN
    iAperçu(1)
    iImprimeEtat(LISTE_PROMOPERM,"Zmem")
    MemSupprimeTout("Zmem")
    Affichage des enregistrements dans l'état :
    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
     
    Lecture des données de LISTE_PROMOPERM
     
    MemPremier("Zmem")
    TANTQUE PAS MemEnDehors("Zmem")
    	AR_REF=MemRécupère("Zmem",MemEnCours("Zmem"))
    	hlitrecherchepremier("ARTICLE",ARTICLE.AR_REF,AR_REF)
    	AR_LIBEL1=AR.AR_LIBEL1
    	AR_CDT=AR.AR_CDT
    	AR_PA=AR.AR_PA
    	recherche de la marge et du pvm
    	hlitrecherchepremier("PRIX",PRIX.AR_REF,AR_REF)	
    	AR_MARGEM=PX.PX_MARGE
    	AR_PVM=PX.PX_PVM
    	MemSuivant("Zmem")
    FIN

    A noter que je ne sais pas exactement où afficher ce code-ci. Est-il bien placé dans le code de l'état > lecture des enregistrements? ou bien dois-je le mettre dans le code du bloc "corps"? ou bien mettre une partie de la boucle dans une section et la fin de la boucle dans une autre section? je suis un peu perdu

    A noter également que, dans le code du remplissage de la zone mémoire, si j'active le code qui est ici en commentaire à la place du code actuellement activé, ma zone se remplit et mon état fonctionne, mais affiche 2 fois la meme référence alors qu'elles doivent être différentes...

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 121
    Points : 65
    Points
    65
    Par défaut
    J'ai trouvé :

    remplissage zone mém.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    MemCrée("Zmem")
    POUR iInd = 1 A TableOccurrence(TAB_ARTPROMO)
    	SI SEL ET REFPERM_ASSOC[iInd]<>"" ALORS
    		//memajoute("Zmem",iInd,REFPERM_ASSOC[iInd])
    		HLitRecherche(ARTICLE,AR.AR_REF,REFPERM_ASSOC[iInd])
    		SI HTrouve ALORS
    			MemAjoute("Zmem",HNumEnr,REFPERM_ASSOC[iInd])
    		FIN			
    	FIN
    FIN
    iAperçu(1)
    iImprimeEtat(LISTE_PROMOPERM,"Zmem")
    MemSupprimeTout("Zmem")
    Etat :
    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
    21
    22
    23
    24
    25
    26
    Ouverture de LISTE_PROMOPERM
     
    (code d'initialisation divers)
     
    MemPremier("Zmem")
     
     
     
     
    Avant Impression de CORPS
     
    //tantque pas memendehors("Zmem")
    	AR_REF=MemRécupère("Zmem",MemEnCours("Zmem"))
    	HLitRecherchePremier("ARTICLE",ARTICLE.AR_REF,AR_REF)
    	AR_LIBEL1=AR.AR_LIBEL1
    	AR_CDT=AR.AR_CDT
    	AR_PA=AR.AR_PA
    	//recherche de la marge et du pvm
    	HLitRecherchePremier("PRIX",PRIX.AR_REF,AR_REF)	
    	AR_MARGEM=PX.PX_MARGE
    	AR_PVM=PX.PX_PVM	
    //FIN
     
    Après Impression de CORPS
     
    MemSuivant("Zmem")

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

Discussions similaires

  1. Etat vue vers Zone mémoire
    Par rippoz dans le forum WinDev
    Réponses: 5
    Dernier message: 30/10/2007, 10h57
  2. Etat sur zone mémoire et SQL Server
    Par Beetle dans le forum WinDev
    Réponses: 4
    Dernier message: 17/10/2007, 08h30
  3. [WD 9] Etat sur zone mémoire : pas de données !
    Par Thanor dans le forum WinDev
    Réponses: 5
    Dernier message: 18/04/2007, 09h55
  4. Réponses: 9
    Dernier message: 17/03/2007, 05h49
  5. DirectGraphics Texture Zone Mémoire
    Par Cartman dans le forum DirectX
    Réponses: 2
    Dernier message: 02/03/2004, 21h33

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