PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Problème avec un bloc d'itération contenant un état interne
Problème avec un bloc d'itération contenant un état interne
Iniciado por Nico47, 19,ene. 2005 15:13 - 6 respuestas
Publicado el 19,enero 2005 - 15:13
Bonjour, je suis débutant sur Windev et j'ai un soucis dans un état avec un bloc d'itération contenant un état interne.
J'ai un état représentant une fiche de tiers. Avant cet état on peut sélectionner
d'afficher ou non les informations comptables du tiers.
J'ai donc un état principal avec les informations générales, contenant un état interne avec les informations comptables. Cet état est composé des blocs suivants :
Début de document, Corps, Complément de corps et le bloc d'itération.
En fonction de la sélection, on affiche ou non le bloc d'itération qui contient l'état interne après l'avoir substitué avec le bloc complément de corps.
Le problème est que lors de l'édition de l'état, le contenu du bloc d'itération (l'état interne donc) s'affiche sur une seule et unique ligne alors qu'il en contient plus d'une trentaine ce qui le rend ilisible.
Où dois-je regarder pour résoudre ce problème ?
Publicado el 19,enero 2005 - 16:39
Pour info mes blocs ont ces propriétés :
- Bloc CORPS :
. Visible : coché
. Bloc sécable : coché
. Répété jusqu'en bas de page : décoché
. Saut de page après bloc : coché
. Complétion : décoché
. Prolonger les colonnes du tableau... : grisé car pas de tableau
- Bloc COMPLEMENT_CORPS :
. Position d'impression du bloc : Juste après le bloc "Corps"
. Visible : coché
. Bloc sécable : coché
. Saut de page après bloc : décoché
. Prolonger les colonnes du tableau... : grisé car pas de tableau
- Bloc CORPS :
. Visible : coché
. Bloc sécable : coché
. Répété jusqu'en bas de page : décoché
. Saut de page après bloc : coché
. Complétion : décoché
. Prolonger les colonnes du tableau... : grisé car pas de tableau
- Etat Interne :
. Visible : coché
. Auto-extensible : coché
. Sécable : coché

Voilà, merci d'avance pour votre aide.
Publicado el 20,enero 2005 - 11:57
Help
Publicado el 21,enero 2005 - 10:40
Du nouveau, j'ai compris le principe des blocs d'itération. Ce que je faisais auparavant n'était pas bon.
J'ai modifié mon traitement. Maintenant j'ai donc :
Dans mon état principal, j'ai les blocs, début document, corps et 1 bloc d'itération.
Mon état interne est donc dans le bloc d'itération car son impression est aléatoire (si on veut les infos comptables ou non). Donc j'imprime mes blocs début doc et corps et à la fin de celui-ci je contrôle : si infos compta = vrai alors iImprimeBloc(Bloc_Iteration) , tel que c'est expliqué dans l'aide en ligne ; et dans le bloc d'itération je fais un iImprimeEtat(MonEtat,Param1,Param2,...).
J'ai testé avec 2 états sans paramètres et ça fonctionne. Problème, dans ce cas là, mon état a des paramètres, l'état interne ne s'affiche pas, et un message d'erreur apparait :

********************************************
Vous avez appelé la fonction iImprimeBloc.
Erreur à la ligne 2 du traitement Après impression de CORPS.
Vous avez appelé la fonction iImprimeBloc.
Les paramètres d'ouverture de l'état 'Etat_INTERNE' sont incorrects : on attendait entre 5 et 10 paramètres et on en a reçu 0.
********************************************

Malgré le fait que dans le code du bloc d'itération, comme je le dis plus haut, j'ai bien un iImprimeEtat...
Après vérification, il n'est pas possible de passer des paramètres à la fonction iImprimeBloc.
Du coup je ne sais plus comment je dois faire ??
Aidez moi s'il vous plaît, je ne sais plus quoi faire.
Publicado el 24,enero 2005 - 16:12
En fait, on ne peut utiliser un état interne paramétré que si celui-ci est statique quoi !
Donc en fait, je vais devoir n'utiliser que des blocs d'itération, ce qui permettra de remédier à mon problème mais qui surchargera un seul état.
Publicado el 27,enero 2005 - 10:53
S'il vous plaît, un peu d'aide serait le bien venu !
Personne n'a déjà travaillé avec des blocs d'itération et des états interne ici ?
Publicado el 09,mayo 2005 - 18:55
Bonjour,

Récupères-tu bien tes paramètres passés à l'intérieur de ton état, pour les redistribuer aux états intégrés.

Ex Dans Ouverture de Ton Etat :
PROCEDURE OuvreEtat(sParam1, sParam2)



Avec réutilisation des param lors de l'appel des tes nouveaux états.


Ex:
Dans ton Bloc iteration :
iInitRequeteEtat(NouvelEtat, sParam1, sParam2)

Et dans ta recup. sur le nouvel état faire :
PROCEDURE OuvreEtat(sParam1, sParam2)
voire :
PROCEDURE OuvreEtat(sParam1="paramdefaut1", sParam2="paramdefaut2")