|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Débuté par leadrica, 16 juin 2025 14:10 - 4 réponses |
| |
| | | |
|
| |
Membre enregistré 4 messages |
|
| Posté le 16 juin 2025 - 14:10 |
🔧 Je teste la nouvelle fonctionnalité PDF de WinDev… et j’ai un cas tordu 🧩
WinDev permet désormais de publiposter des formulaires PDF directement depuis une appli, et c’est super pratique. Mais je tombe sur un cas particulier :
📄 Mon document contient plusieurs champs ayant exactement le même nom, notamment pour gérer des interrupteurs ou choix multiples (chaque champ vaut 0 ou 1 selon la sélection).
❓Et là , c’est le flou : WinDev ne remplit pas les bonnes valeurs.
Exemple : J’utilise un sélecteur avec deux options (Option1 et Option2) dans Windev je coche Option2 et sur mon document c’est Option1 qui est coché (pour les 2 options le champ est nommé « Accident » dans mon document).
👉 Est-ce que quelqu’un a déjà contourné ça ? Une astuce, une façon propre de cibler chaque champ indépendamment, même si le nom est dupliqué ?
Merci d’avance à celles et ceux qui ont eu à gérer ce genre de formulaires un peu capricieux 🙏 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 230 messages |
|
| Posté le 16 juin 2025 - 15:05 |
Bonjour,
Si 2 champs ont le mĂŞme nom c'est qu'il s'agit d'une liste ou d'un tableau. Il faut donc utiliser la syntaxe nom_du_champ[0], nom_du_champ[1]... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 messages |
|
| Posté le 16 juin 2025 - 15:32 |
Dav a écrit :
Bonjour,
Si 2 champs ont le mĂŞme nom c'est qu'il s'agit d'une liste ou d'un tableau. Il faut donc utiliser la syntaxe nom_du_champ[0], nom_du_champ[1]...
Bonjour et merci. C'est bien des champs interrupteurs, j'ai déjà essayé les indices, ça ne fonctionne pas. J'utilise un tableau associatif pour faire le mappage entre ma fenêtre et mon formulaire PDF
C:\Users\leadr\Documents\Publipostage\Modèle\Accident du travail\s6200_declaration_accident_travail-accident_trajet_cnam_0.pdf [accident] 0 Interrupteur [Nom et prénom ou raison sociale de lemployeur] Champ de saisie [Adresse] Champ de saisie [Code postal] Champ de saisie [adresse 2 employeur] Champ de saisie [téléphone employeur] Champ de saisie [Nom service santé] Champ de saisie [Code RISQUE] Champ de saisie [Siret etablt attache] Champ de saisie [adresse service santé] Champ de saisie [Code postal service santé] Champ de saisie [N dimmatriculation] Champ de saisie [accident] 0 Interrupteur [clé immat] Champ de saisie [sexe] 0 Interrupteur [sexe] 0 Interrupteur [date naissance] Champ de saisie [Nom et prénom victime] Champ de saisie [Adresse_victime] Champ de saisie [nationalité] 0 Interrupteur [nationalité] 0 Interrupteur [nationalité] 0 Interrupteur [Adresse_victime 2] Champ de saisie [Code postal victime] Champ de saisie [date embauche] Champ de saisie [Profession] Champ de saisie [qualification professionnelle] Champ de saisie [ancienneté dans le poste] Champ de saisie [contrat] 0 Interrupteur [contrat] 0 Interrupteur [contrat] 0 Interrupteur [contrat] 0 Interrupteur [contrat] 0 Interrupteur [lieu] 0 Interrupteur [date accident] Champ de saisie [heure] Champ de saisie [lieu accident] Champ de saisie [lieu] 0 Interrupteur [lieu] 0 Interrupteur [lieu] 0 Interrupteur [lieu] 0 Interrupteur [lieu] 0 Interrupteur [Siret lieu accident] Champ de saisie [activité victime] Champ de saisie [nature accident] Champ de saisie [objet en contact victime] Champ de saisie [Eventuelles réserves motivées] Champ de saisie [Eventuelles réserves motivées2] Champ de saisie [Siège des lésions] Champ de saisie [Nature des lésions] Champ de saisie [lieu transport] Champ de saisie [autres victimes] 0 Interrupteur [autres victimes] 0 Interrupteur [accident constaté] 0 Interrupteur [horaire1] Champ de saisie [horaire4] Champ de saisie [horaire3] Champ de saisie [horaire2] Champ de saisie [date constat accident] Champ de saisie [heure constat accident] Champ de saisie [constaté par préposés] 0 Interrupteur [constaté par employeur] 0 Interrupteur [accident décrit par la victime] 0 Interrupteur [accident connu] 0 Interrupteur [accident inscrit registres AT bénins] 0 Interrupteur [date inscription accident] Champ de saisie [n° AT benin] Champ de saisie [conséquences] 0 Interrupteur [conséquences] 0 Interrupteur [conséquences] 0 Interrupteur [rapport police] 0 Interrupteur [rapport police] 0 Interrupteur [témoin] 0 Interrupteur [coord rapport police] Champ de saisie [témoin] 0 Interrupteur [nom et prenom temoin] Champ de saisie [adresse temoin] Champ de saisie [Code postal temoin] Champ de saisie [accident cause par tiers] 0 Interrupteur [accident cause par tiers] 0 Interrupteur [nom_ prenom _adresse tiers] Champ de saisie [assurance tiers] Champ de saisie [nom et prenom signataire] Champ de saisie [qualité signataire] Champ de saisie [lieu declaration] Champ de saisie [date declaration] Champ de saisie [LD1] Champ de saisie [LD2] Champ de saisie [LD3] Champ de saisie Message modifié, 16 juin 2025 - 15:46 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 messages |
|
| Posté le 16 juin 2025 - 15:37 |
Voici un bout de code :
tabCorrespondance est un tableau associatif de chaînes
tabCorrespondance["accident"] = INT_Accident.ATV tabCorrespondance["Nom et prénom ou raison sociale de lemployeur"] = SAI_RaisonSociale tabCorrespondance["Adresse"] = SAI_Adresse tabCorrespondance["Code postal"] = SAI_Code_Postal tabCorrespondance["adresse 2 employeur"] = SAI_LieuDit tabCorrespondance["téléphone employeur"] = Remplace(SAI_Téléphone,".","") tabCorrespondance["Nom service santé"] = SAI_SST tabCorrespondance["Code RISQUE"] = SAI_NumRisqueSecSoc tabCorrespondance["Siret etablt attache"] = Remplace(SAI_SiretEmployeur," ","") tabCorrespondance["adresse service santé"] = SAI_Adresse_1_SST tabCorrespondance["Code postal service santé"] = SAI_Code_Postal_SST tabCorrespondance["N dimmatriculation"] = SAI_NSS tabCorrespondance["accident"] = INT_Accident.ATJ tabCorrespondance["clé immat"] = SAI_CléSS tabCorrespondance["sexe"] = SAI_Genre tabCorrespondance["sexe"] = SAI_Genre |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 messages |
|
| Posté le 16 juin 2025 - 16:42 |
J'ai trouvé la solution avec ce petit bout de code :
valAccident est un tableau de chaîne = [INT_Accident.ATJ, INT_Accident.ATV] indice est un entier = 1 SI champ.Nom = "accident" ET champ.Type = typInterr ALORS SI indice <= TableauOccurrence(valAccident) ALORS champ..Valeur = valAccident[indice] indice +=1 FIN FIN |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|