PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Publipotage et case à cocher
Publipotage et case à cocher
Débuté par Céline, 06 aoû. 2020 14:26 - 5 réponses
Membre enregistré
10 messages
Posté le 06 août 2020 - 14:26
Bonjour,
Dans un publipostage fait avec Windev 23, est-il possible d'avoir des cases à cocher ?
Je sais positionner du contenu, faire de la mise en page, mais je ne trouve pas la solution pour avoir un champ de type "case à cocher" qui permette à l'utilisateur de cocher une option d'un clic…

Merci d'avance si vous connaissez l'astuce !

Et si vous savez que c'est possible avec une version ultérieure de Windev, ça m'intéresse aussi de le savoir.
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 07 août 2020 - 14:05
Bonjour,
Céline a écrit :
Et si vous savez que c'est possible avec une version ultérieure de Windev, ça m'intéresse aussi de le savoir.

Avec une version antérieure, oui. Jusqu'à la V20 ou21, dans le code du champ interrupteur dans un état, il y avait l'évènement clic.
Dorénavant, cette option ne figure que dans la doc.

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
10 messages
Posté le 13 août 2020 - 14:16
J'ai encore cherché… Que ce soit avec un champ traitement de texte ou avec un "LanceAppliAssociée" de Word, rien à faire...
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 17 août 2020 - 13:47
Résumons,
Tu désires créer un formulaire que tu envoies aux utilisateurs,
Les utilisateurs doivent cocher des cases et (à priori, sinon je ne vois pas l'utilité) renvoyer le résultat qui sera traité.

Après un test, il s'avère que l'importation d'un état créé sous WD20 ftp://ftp.pcsoft.fr/wx20_41k/fr/ prend en compte l'option "Etat cliquable" https://doc.pcsoft.fr/?1013283&name=champ_cliquable_dans_etat, à condition que la partie "clic" de l'interrupteur ait été remplie.
L'idée est donc de créer l'état sous WD20 et de l'importer dans le projet.

Une solution est de
1-Créer le formulaire sous WD 20 ( sans oublier le champ "Envoyer" (un libellé)) en mettant "quelque chose" (// suffit") dansla partie clic
2-Importer le formulaire dans le projet
3-Coder le formulaire.

Développons la partie 3 (On se limitera à 3 champs interrupteur)
2 choses sont à prendre en compte
-INT_A renvoie, dans la plupart des cas, non pas 0 ou 1 mais le caractère correspondant à Coché, non coché
(254 et 48.)
-Il faut rafraîchir le formulaire lors d'un changement de valeur.

L'idée est de lier les interrupteurs à des variables globales. Pour des raison de simplicité de traitement de l'envoi et de la réception des résultats, on utilisera l'instance d'une classe.
Il serait aussi possible d'utiliser l'instance d'une structure, mais l'utilisation d'une classe, surtout si elle est mappée, permet de récupérer certaines données concernant l'utilisateur entre autre son ID, si l'on a besoin de savoir s'il a répondu ou pas.

CFormulaire est une Classe
m_bIntA est un booléen
m_bIntB est un booléen
m_bIntC est un booléen
FIN


RQ, Si on veut faire propre (au sens POO du terme,) il faut déclarer les membres comme privés et créer les propriétés correspondantes.

Afin d'utiliser cette classe, il faut déclarer une instance globale de cette classe. On va le faire dans la partie "Avant impression"
Procedure ETAT_TestCaseACocher(gclEtatCoche est CFormulaire)

Il n'y a plus qu'à lier comme on le ferait avec une fenêtre. (Si on a fait "propre", c'est la propriété qui doit être liée)

Le plus dur est fait, il n'y a plus qu'à coder.

Clic sur INT_A
gclEtatCoche:m_bIntA=PAS gclEtatCoche:m_bIntA

RafraichirEtat(ETAT_TestCaseACocher)


Procedure RafraichirEtat(sNomEtat est chaîne)
iAperçu(iapZoomDéfaut)
iImprimeEtat(sNomEtat,gclEtatCoche)


--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 17 août 2020 - 15:25
Je suis parti du pré supposé que le destinataire disposais d'une application écrite en Windev.
Si ce n'est pas le cas, il faut passer par un formulaire PDF. Et là, même en WD 25, la plupart des fonctions sont limitées en lecture. Il va falloir te tourner vers l'assemblage .NET iText7 (iTextSharp est deprecated).

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
10 messages
Posté le 18 août 2020 - 14:37
Merci Voroltinquo d'avoir répondu, et de manière aussi détaillée.
Cela dit, on souhaite rester dans du publipostage et non un état.
Ce n'est pas moi qui ai trouvé la solution : il s'avère qu'après avoir cherché du coté de Windev, le pb semble plutôt venir de Word qui ne faisait pas bien la fusion.
En partant d'un nouveau "document de base", on arrive enfin à récupérer correctement nos champs fusionnés et à avoir des cases à cocher.
Dans Windev, on utilise la méthode FusionPublipostage proposée par PCSOFT puis un "LanceAppliAssociée".