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.
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 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")
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...
Partager