|
Iniciado por Fany, ago., 21 2018 5:04 PM - 4 respostas |
| |
| | | |
|
| |
Membro registado 365 mensagems Popularité : +12 (12 votes) |
|
Publicado em agosto, 21 2018 - 5:04 PM |
Bonjour à tous,
Après avoir pas mal cherché, je n'ai toujours pas réponse à mon problème. Dès que je veux afficher plusieurs fois un état principal contenant un etat interne, ça plante. Je m'explique :
J'ai un etat "ETAT_P" qui contient un champ "Etat interne" L'état secondaire "ETAT_S1" contenu dans le champ etat interne récupere une variable globale dont sa valeur est définie à l'ouverture de l'état "ETAT_P"
J'ai utilisé la description du champ pour faire lier mon champ état interne avec l'état "ETAT_S1" --> jusque là ok.
Dans "ouverture de ETAT_S1", j'ai mis ce code :
HExécuteRequête(REQ_MaRequete,hRequêteDéfaut,ETAT_P.gnIDProjet,1) HLitPremier(REQ_MaRequete)
Dans "Lecture des données de ETAT_S1"
TANTQUE HEnDehors(REQ_MaRequete)=Faux RENVOYER Vrai FIN
et ensuite j'affiche les infos que je souhaite dans "Avant impression de ETAT_S1"
LIB_Prescrit = REQ_MaRequete.Prescrit
HLitSuivant(REQ_MaRequete)
Le code pour ouvrir mon ETAT_P est le suivant :
iAperçu(i100) POUR TOUTE LIGNE SELECTIONNEE nIndice de TABLE_Gantt iEnchaînementAjoute(ETAT_Projet,TABLE_Gantt[nIndice].COL_IDProjet) FIN iEnchaînementImprime()
--> si je ne sélectionne qu'une ligne de mon champ TABLE_Gantt, ça fonctionne --> si je sélectionne plusieurs lignes de mon champ TABLE_Gantt --> CA FONCTIONNE PLUS Le message d'erreur me dit qu'il faut que je recompile mon code.
J'ai réussi à isoler le problème : si je met une variable bidon fixe à ma requete de ETAT_S1, ça fonctionne. Je dois me planter dans le passage de paramètre.
J'ai lu ici (https://doc.pcsoft.fr/?1013044&verdisp=160) que : "Etat secondaire basé sur une requête paramétrée Si l'état secondaire est basé sur une requête paramétrée, utilisez la fonction iInitRequêteEtat pour passer les paramètres à la requête. Cette fonction doit être utilisée dans le traitement "Avant impression" du bloc contenant le champ "Etat Interne"."
--> j'ai rajouté dans le code "Avant impression du bloc DEBUT DE DOCUMENT" :
iInitRequêteEtat(ETAT_S1,gnIDProjet,1)
--> rien ne marche.
Sincèrement j'ai essayé plein d'autres trucs, des solutions du dernier espoir, rien à faire. Je ne comprends pas comment faire.
Auriez vous s'il vous plait une piste à me donner ?
D'avance merci
Fany |
| |
| |
| | | |
|
| | |
| |
Membro registado 365 mensagems Popularité : +12 (12 votes) |
|
Publicado em agosto, 22 2018 - 4:19 PM |
Pas d'idée ? |
| |
| |
| | | |
|
| | |
| |
Membro registado 119 mensagems Popularité : +1 (1 vote) |
|
Publicado em setembro, 10 2018 - 3:39 PM |
Bonjour Fany Tu as trouvé le problème ? J'ai aussi un plantage avec iEnchaînementImprime() sur certains poste clients, je me demande si ce n'est pas suite à une mise à jour Windows
Merci José |
| |
| |
| | | |
|
| | |
| |
Publicado em setembro, 21 2018 - 9:11 PM |
Bonjour,
Ce n'est plus simple d'utiliser les états imbriqués ? J'utilise que des états imbriqués et je n'ai jamais rencontré ce genre de problème.
La notice dit ceci. Passer des paramètres à un état interne Les paramètres donnés à l'état (lors de l'appel à la fonction iImprimeEtat) sont automatiquement transmis à l'état interne. Attention, dans ce cas, le passage par adresse des paramètres n'est pas garanti.
Amicalement, |
| |
| |
| | | |
|
| | |
| |
Membro registado 365 mensagems Popularité : +12 (12 votes) |
|
Publicado em setembro, 24 2018 - 10:06 AM |
Bonjour,
Non je n'ai toujours pas trouvé le problème. Ce qui est étrange, c'est qu'avant, ça fonctionnait. Je pouvais imprimer plusieurs lignes de mon tableau. Et du jour au lendemain, ça ne marchait plus. Donc effectivement, peut être qu'un mise à jour peut en être la cause.
Merci Christophe pour votre réponse. Je pourrais comme vous dites utiliser les états imbriqués, mais sauf erreur de ma part, je crois que ces derniers ne s'affichent que les uns en dessous des autres, et cette mise en page ne correspondait pas vraiment à ce que je voulais afficher.... si vraiment je ne trouve pas de solution, je tenterai votre solution. Comme vous l'avez cité, "le passage par adresse des paramètres n'est pas garanti"... je confirme, vous avez raison ^^ |
| |
| |
| | | |
|
| | | | |
| | |
|