- Ce sujet est vide.
-
Sujet
-
Bonjour tout le forum,
je partage avec vous un script.je cherchais comment générer du texte avec des champs de formulaire alignés et nommés correctement.
J’ai découvert avec le script de bebarth ici la fonction this.flattenPages() (aplatir)
En faisant des recherches, j’ai trouvé que l’on pouvait aplatir uniquement les champs visibles à l’impression avec le paramètre this.flattenPages({nNonPrint:1});
Du coup, j’ai fait un script qui génère des champs visibles à l’impression avec des champs invisibles à l’impression qui sont alignés.
Les champs invisibles sont nommés comme on le souhaite.
Ensuite, le formulaire est aplati avec this.flattenPages({nNonPrint:1});
Les champs restants deviennent visibles à l’impression
Voir le fichier joint et le code :Code:console.clear();// Début des variables à configurer ////////////////////////////////////////
// Nombre de question
var nbrQuestion = 3;// Numéro de la page
var numPage = 0;// Numéro de la première question
var numQuestion = 1;// Position de la première question par rapport à la gauche de la feuille
var posGauche = 14;// Position de la première question par rapport au bas de la feuille
var posBas = 700;// Hauteur du champ
var hauteurChamp = 20;// Décalage entre les questions
var declageVertical = 40;////////////////// les champs question //////////////////
// Longueur
var longueurChampQ = 150;
// Police d’écriture
var policeEcritureQ = “Verdana”;
// Taille du texte
var tailleTexteQ = 12;
// Alignement
var alignementQ = “right”;
// Style des bordures
var styleBordureQ = border.s;
// Couleur de la bordure
var couleurBordureQ = [“T”];// transparent;
// Lecture seule
var lectureQ = true;// Les questions
var tabQuestion =
[
“Nom de famille : “,
“Prénom : “,
“Date de naissance : “
]////////////////// les champs réponses //////////////////
// Longueur
var longueurChampR = 150;
// Police d’écriture
var policeEcritureR = “Verdana”;
// Taille du texte
var tailleTexteR = 12;
// Alignement
var alignementR = “center”;
// Style des bordures
var styleBordureR = border.s;
// Couleur de la bordure
var couleurBordureR = color.black;
// Lecture seule
var lectureR = false;
// Impression
var impressionR = display.noPrint;// Les noms des champs des réponses
var tabReponse =
[
“nomFamille”,
“prenom”,
“dateDeNaissance”
]// Fin des variables à configurer ////////////////////////////////////////
var positionVertical = 0;
var numTab = 0;for(var i = 1; i <= nbrQuestion; i++){
// Générer les champs pour les questions
this.addField
(
numPage + “.question.text.” + numQuestion,
“text”,
numPage,
[
posGauche,
posBas – positionVertical,
posGauche + longueurChampQ,
posBas – positionVertical – hauteurChamp
]
);// Configurer les champs pour les questions
var champQuestion = this.getField(numPage + “.question.text.” + numQuestion);
// Valeur par défaut
champQuestion.defaultValue = tabQuestion[numTab];
// Police d’écriture
champQuestion.textFont = policeEcritureQ;
// Taille du texte
champQuestion.textSize = tailleTexteQ;
// Alignement
champQuestion.alignment = alignementQ;
// La bordure
champQuestion.borderStyle = styleBordureQ;
// Couleur de la bordure
champQuestion.strokeColor = couleurBordureQ;
// Lecture seule
champQuestion.readonly = lectureQ;// Générer les champs pour les réponses
this.addField
(
numPage + “.” + tabReponse[numTab] + “.text.” + numQuestion,
“text”,
numPage,
[
posGauche + longueurChampQ,
posBas – positionVertical,
posGauche + longueurChampQ + longueurChampR,
posBas – positionVertical – hauteurChamp
]
);// Configurer les champs pour les réponses
var champReponse = this.getField(numPage + “.” + tabReponse[numTab] + “.text.” + numQuestion);
// Police d’écriture
champReponse.textFont = policeEcritureR;
// Taille du texte
champReponse.textSize = tailleTexteR;
// Alignement
champReponse.alignment = alignementR;
// La bordure
champReponse.borderStyle = styleBordureR;
// Couleur de la bordure
champReponse.strokeColor = couleurBordureR;
// Lecture seule
champReponse.readonly = lectureR;
// Impression
champReponse.display = impressionR;numQuestion++;
numTab++;
positionVertical = positionVertical + hauteurChamp + declageVertical;
}// Initialiser le formulaire
resetForm();
// Aplatir le formulaire (uniquement les champs visible à l’impression)
this.flattenPages({nNonPrint:1});// Rendre visible à l’impression les champs restants (les réponses)
for(var i = 0; i < this.numFields; i++){
var nomChamp = this.getNthFieldName(i);
this.getField(nomChamp).display = display.visible;
}
- Vous devez être connecté pour répondre à ce sujet.