[WD11] iImprimeEtat et paramètres

Le
Olivier
Bonjour,
J'ai un état générique qui me sert à imprimer aussi bien une facture
qu'un devis ou un rapport d'intervention. Je lance donc l'impression
par l'appel à une procédure :

iImprimeEtat(ETAT_Facture, Client.CLCLEUNIK, Client.CLCLEUNIK, "Devis")

Et à l'ouverture de l'état :

PROCEDURE ETAT_Facture(_CleUnik_B1, _CleUnik_B2, _TypeEtat = "Facture")

C'est un état borné sur la clé unique transmise et une chaine pour
choisir le type de l'état. Seulement voila, sous le debugger on
s'apperçoit que les paramètres arrivent dans un ordre différent de
celui transmis et donc ça imprime n'importe quoi ou rien du tout ou
pire il me sort une erreur :

Erreur à la ligne 4 du traitement Clic sur IMP_FACTURE.
Vous avez appelé la fonction iImprimeEtat.
Les paramètres d'ouverture de l'état 'ETAT_Facture' sont incorrects :
on attendait entre 2 et 3 paramètres et on en a reçu 1.

Avez-vous déjà rencontrer ce type de problème et comment l'avez-vous
résolu.

Merci pour votre aide, Olivier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
SSX99
Le #17686031
Bonjour,

reintegrer l'etat et recompiler
si vous avez le groupware developpeur activé

autre possibilite effacer le rep .cpl et recompiler le projet

Bon dev
@+


"Olivier" 4908cc25$0$14763$
Bonjour,
J'ai un état générique qui me sert à imprimer aussi bien une facture qu'un
devis ou un rapport d'intervention. Je lance donc l'impression par l'appel
à une procédure :

iImprimeEtat(ETAT_Facture, Client.CLCLEUNIK, Client.CLCLEUNIK, "Devis")

Et à l'ouverture de l'état :

PROCEDURE ETAT_Facture(_CleUnik_B1, _CleUnik_B2, _TypeEtat = "Facture")

C'est un état borné sur la clé unique transmise et une chaine pour choisir
le type de l'état. Seulement voila, sous le debugger on s'apperçoit que
les paramètres arrivent dans un ordre différent de celui transmis et donc
ça imprime n'importe quoi ou rien du tout ou pire il me sort une erreur :

Erreur à la ligne 4 du traitement Clic sur IMP_FACTURE.
Vous avez appelé la fonction iImprimeEtat.
Les paramètres d'ouverture de l'état 'ETAT_Facture' sont incorrects : on
attendait entre 2 et 3 paramètres et on en a reçu 1.

Avez-vous déjà rencontrer ce type de problème et comment l'avez-vous
résolu.

Merci pour votre aide, Olivier




Olivier
Le #17686621
J'avais essayé cette solution que je connaissais de Wd5, mais ça n'a
rien changé.
Olivier

Il se trouve que SSX99 a formulé :
Bonjour,

reintegrer l'etat et recompiler
si vous avez le groupware developpeur activé

autre possibilite effacer le rep .cpl et recompiler le projet

Bon dev
@+


"Olivier" 4908cc25$0$14763$
Bonjour,
J'ai un état générique qui me sert à imprimer aussi bien une facture qu'un
devis ou un rapport d'intervention. Je lance donc l'impression par l'appel
à une procédure :

iImprimeEtat(ETAT_Facture, Client.CLCLEUNIK, Client.CLCLEUNIK, "Devis")

Et à l'ouverture de l'état :

PROCEDURE ETAT_Facture(_CleUnik_B1, _CleUnik_B2, _TypeEtat = "Facture")

C'est un état borné sur la clé unique transmise et une chaine pour choisir
le type de l'état. Seulement voila, sous le debugger on s'apperçoit que les
paramètres arrivent dans un ordre différent de celui transmis et donc ça
imprime n'importe quoi ou rien du tout ou pire il me sort une erreur :

Erreur à la ligne 4 du traitement Clic sur IMP_FACTURE.
Vous avez appelé la fonction iImprimeEtat.
Les paramètres d'ouverture de l'état 'ETAT_Facture' sont incorrects : on
attendait entre 2 et 3 paramètres et on en a reçu 1.

Avez-vous déjà rencontrer ce type de problème et comment l'avez-vous
résolu.

Merci pour votre aide, Olivier






mat
Le #17686731
Olivier wrote on 29.10.2008 :
...
iImprimeEtat(ETAT_Facture, Client.CLCLEUNIK, Client.CLCLEUNIK, "Devis")

Et à l'ouverture de l'état :

PROCEDURE ETAT_Facture(_CleUnik_B1, _CleUnik_B2, _TypeEtat = "Facture")


...
Les paramètres d'ouverture de l'état 'ETAT_Facture' sont incorrects : on
attendait entre 2 et 3 paramètres et on en a reçu 1.



Bonsoir,

L'état reçoit les paramètres dans le même ordre que iImprimeEtat les
envoie. L'explication est bien dans le message d'erreur: l'état attend
2 ou 3 paramètres mais ne reçoit qu'un seul. Donc vérifier la valeur
des paramètres dans iImprimeEtat.

Salutations
Mat
Olivier
Le #17689421
mat avait écrit le 29/10/2008 :
Olivier wrote on 29.10.2008 :
...
iImprimeEtat(ETAT_Facture, Client.CLCLEUNIK, Client.CLCLEUNIK, "Devis")

Et à l'ouverture de l'état :

PROCEDURE ETAT_Facture(_CleUnik_B1, _CleUnik_B2, _TypeEtat = "Facture")


...
Les paramètres d'ouverture de l'état 'ETAT_Facture' sont incorrects : on
attendait entre 2 et 3 paramètres et on en a reçu 1.



Bonsoir,

L'état reçoit les paramètres dans le même ordre que iImprimeEtat les envoie.
L'explication est bien dans le message d'erreur: l'état attend 2 ou 3
paramètres mais ne reçoit qu'un seul. Donc vérifier la valeur des paramètres
dans iImprimeEtat.

Salutations
Mat



Bonjour,
J'ai vérifié et revérifié. J'ai bien mes 3 paramètres qui partent dans
l'ordre et qui arrivent dans le désordre. C'est à dire que le 1 er
paramètre (_CleUnik_B1) qui est égale à la clé unique de la fiche, me
donne dans l'ouverture de l'état _CleUnik_B1 = "Devis".
C'est quand même hallucinant !

Slt, Olivier
patrice
Le #17690591
"Olivier" news:4908cc25$0$14763$
Bonjour,
J'ai un état générique qui me sert à imprimer aussi bien une facture
qu'un devis ou un rapport d'intervention. Je lance donc l'impression
par l'appel à une procédure :

iImprimeEtat(ETAT_Facture, Client.CLCLEUNIK, Client.CLCLEUNIK, "Devis")




attention, y'a un risque en windev
Les parametres sont passés par adresses (modifiable par l'appelant)
donc en gros, si iImprimeEtat change la position courante de ton fichier
client, la valeur Client.CLCLEUNIK change aussi

exemple:
hlitrecerchepremier(client,clclunik,"macle")
titi(client.clcleunik)


procedure titi(s est une chaine)
hlitpremier(client)
info(s)


il va afficher tout sauf ce que tu attend

Avec les fichiers, pense à utiliser la notation () qui permet de faire une
copie du parametre
exemple:
titi((client.clcleunik))
iImprimeEtat(ETAT_Facture, (Client.CLCLEUNIK), (Client.CLCLEUNIK), "Devis")
Eric Laurent
Le #17690891
Une solution que j'utilisais en Windev 5.5 consitait à utiliser des
variables globales:
Au lieu de passer des paramètres, il suffit de valider les variables
globales que l'on utilisera à l'ouverture de l'état.
C'est un cache-misère mais ça marche.

Cordialement,

Eric

--
Eric Laurent

(enlever nospam.)
mat
Le #17699091
Olivier wrote on 30.10.2008 :
mat avait écrit le 29/10/2008 :
Bonsoir,

L'état reçoit les paramètres dans le même ordre que iImprimeEtat les
envoie. L'explication est bien dans le message d'erreur: l'état attend 2 ou
3 paramètres mais ne reçoit qu'un seul. Donc vérifier la valeur des
paramètres dans iImprimeEtat.

Salutations
Mat



Bonjour,
J'ai vérifié et revérifié. J'ai bien mes 3 paramètres qui partent dans
l'ordre et qui arrivent dans le désordre. C'est à dire que le 1 er paramètre
(_CleUnik_B1) qui est égale à la clé unique de la fiche, me donne dans
l'ouverture de l'état _CleUnik_B1 = "Devis".
C'est quand même hallucinant !

Slt, Olivier



Bonsoir,

Les messages d'erreur de Windev sont généralement corrects et celui en
question dit que l'état ne reçoit que 1 paramètre, pas les 2 ou trois
qu'il attend. Vraisemblablement iImprimeEtat n'envoie pas de valeur
pour la clé unique (Null) ce qui fait que le seul paramètre qui arrive
est "Devis", en première position. Un DEBUG sur les paramètres
d'iImprimeEtat peut éclaircir cela.

Sinon, essayer avec cela
//Début
ID est entier = Client.CLCLEUNIK
// tester la valeur de l'ID
info(ID)
iImprimeEtat(ETAT_Facture, ID, ID, "Devis")
//Fin

Si info() montre une valeur et l'état plante toujours, je contacterais
le ST de PC Soft qui ont peut-être déjà vu ce phénomène.

Salutations
Mat
mat
Le #17699081
mat wrote on 30.10.2008 :
Bonsoir,

Les messages d'erreur de Windev sont généralement corrects et celui en
question dit que l'état ne reçoit que 1 paramètre, pas les 2 ou trois qu'il
attend. Vraisemblablement iImprimeEtat n'envoie pas de valeur pour la clé
unique (Null) ce qui fait que le seul paramètre qui arrive est "Devis", en
première position. Un DEBUG sur les paramètres d'iImprimeEtat peut éclaircir
cela.

Sinon, essayer avec cela
//Début
ID est entier = Client.CLCLEUNIK
// tester la valeur de l'ID
info(ID)
iImprimeEtat(ETAT_Facture, ID, ID, "Devis")
//Fin

Si info() montre une valeur et l'état plante toujours, je contacterais le ST
de PC Soft qui ont peut-être déjà vu ce phénomène.

Salutations
Mat




une autre idée: probablement l'état utilise un contexte Hyperfile
indépendant. Dans ce cas pour l'état aucun enregistrement est lu, donc
Null, ignoré par Windev.

Mat
Moua
Le #17700341
Le 29/10/2008, Olivier a supposé :
Bonjour,
J'ai un état générique qui me sert à imprimer aussi bien une facture qu'un
devis ou un rapport d'intervention. Je lance donc l'impression par l'appel à
une procédure :

iImprimeEtat(ETAT_Facture, Client.CLCLEUNIK, Client.CLCLEUNIK, "Devis")

Et à l'ouverture de l'état :

PROCEDURE ETAT_Facture(_CleUnik_B1, _CleUnik_B2, _TypeEtat = "Facture")

C'est un état borné sur la clé unique transmise et une chaine pour choisir le
type de l'état. Seulement voila, sous le debugger on s'apperçoit que les
paramètres arrivent dans un ordre différent de celui transmis et donc ça
imprime n'importe quoi ou rien du tout ou pire il me sort une erreur :

Erreur à la ligne 4 du traitement Clic sur IMP_FACTURE.
Vous avez appelé la fonction iImprimeEtat.
Les paramètres d'ouverture de l'état 'ETAT_Facture' sont incorrects : on
attendait entre 2 et 3 paramètres et on en a reçu 1.

Avez-vous déjà rencontrer ce type de problème et comment l'avez-vous résolu.

Merci pour votre aide, Olivier


Bonjour,

Je pense résumer les commentaires :

Quelle drôle d'idée de passer en paramètre l'adresse mémoire d'un champ
d'un fichier qui risque d'être parcouru par l'état.

Il faut passer le paramètre par valeur et non par adresse, ou utiliser
des variables intermédiaires.
Daireaux Jean-Baptiste
Le #17700981
Olivier a écrit :
Bonjour,
J'ai un état générique qui me sert à imprimer aussi bien une facture
qu'un devis ou un rapport d'intervention. Je lance donc l'impression par
l'appel à une procédure :

iImprimeEtat(ETAT_Facture, Client.CLCLEUNIK, Client.CLCLEUNIK, "Devis")

Et à l'ouverture de l'état :

PROCEDURE ETAT_Facture(_CleUnik_B1, _CleUnik_B2, _TypeEtat = "Facture")

C'est un état borné sur la clé unique transmise et une chaine pour
choisir le type de l'état. Seulement voila, sous le debugger on
s'apperçoit que les paramètres arrivent dans un ordre différent de celui
transmis et donc ça imprime n'importe quoi ou rien du tout ou pire il me
sort une erreur :

Erreur à la ligne 4 du traitement Clic sur IMP_FACTURE.
Vous avez appelé la fonction iImprimeEtat.
Les paramètres d'ouverture de l'état 'ETAT_Facture' sont incorrects : on
attendait entre 2 et 3 paramètres et on en a reçu 1.

Avez-vous déjà rencontrer ce type de problème et comment l'avez-vous
résolu.

Merci pour votre aide, Olivier





Quand le comportement est bizarre, je refait un nouvelle état où je
copie tout les éléments de l'ancien sans changé une ligne de code. Et
bien souvent le problème disparé. Il arrive que des états ou des fenêtre
de windev se mette à déconner sans que la recompilation ou la
suppression des CPL ne la rétablisse.

J.B.D.
Publicité
Poster une réponse
Anonyme