Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Imprimer ligne
|
Imprimer ligne ( {laTable ;} formulaire {; formData} {; zone1{; zone2}} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
laTable | Table |
![]() |
Table à imprimer, ou Table par défaut si ce paramètre est omis | |||||
formulaire | Chaîne, Objet |
![]() |
Nom (chaîne) du formulaire table ou projet à imprimer, ou Chemin POSIX (chaîne) d'un fichier .json décrivant le formulaire, ou Objet décrivant le formulaire |
|||||
formData | Objet |
![]() |
Data to associate to the form | |||||
zone1 | Entier long |
![]() |
Marqueur d’impression, ou Zone de départ (si zone2 est spécifié) | |||||
zone2 | Entier long |
![]() |
Zone de fin (si zone1 est spécifié) | |||||
Résultat | Entier long |
![]() |
Hauteur de la section imprimée | |||||
La commande Imprimer ligne imprime simplement formulaire avec les valeurs courantes des champs et des variables de laTable. Cette commande est généralement utilisée pour imprimer des états particulièrement complexes nécessitant un contrôle total du processus d'impression. Imprimer ligne ne gère pas les traitements d'enregistrements, ni les ruptures, sauts de pages, en-têtes ou pieds de pages. Vous devez vous-même prendre en charge ces opérations. Imprimer ligne imprime uniquement des champs et des variables avec une taille fixe, la commande ne gère pas les objets de taille variable.
Dans le paramètre formulaire, vous pouvez passer soit :
Comme la commande Imprimer ligne ne génère pas de saut de page après avoir imprimé un formulaire, elle vous permet de combiner facilement différents formulaires sur la même page. Ainsi, Imprimer ligne est idéale pour effectuer des impressions complexes impliquant plusieurs tables et plusieurs formulaires. Pour "forcer" 4D à effectuer un saut de page entre deux formulaires, utilisez la commande SAUT DE PAGE. Pour reporter sur la page suivante l'impression d'un formulaire dont la hauteur est supérieure à la place disponible, appelez la commande NE PAS VALIDER avant la commande SAUT DE PAGE.
Trois syntaxes peuvent être utilisées :
Syntaxe :
hauteur:=Imprimer ligne(maTable;monFormulaire)
Dans ce cas, Imprimer ligne imprime uniquement la zone de Corps du formulaire (zone située entre les marqueurs En-tête et Corps).
Syntaxe :
hauteur:=Imprimer ligne(maTable;monFormulaire;marqueur)
Dans ce cas, la commande imprimera la section désignée par marqueur. Passez dans le paramètre marqueur une des constantes du thème “Zone de formulaire” :
Constante | Type | Valeur |
Corps formulaire | Entier long | 0 |
Entête formulaire | Entier long | 200 |
Entête formulaire1 | Entier long | 201 |
Entête formulaire10 | Entier long | 210 |
Entête formulaire2 | Entier long | 202 |
Entête formulaire3 | Entier long | 203 |
Entête formulaire4 | Entier long | 204 |
Entête formulaire5 | Entier long | 205 |
Entête formulaire6 | Entier long | 206 |
Entête formulaire7 | Entier long | 207 |
Entête formulaire8 | Entier long | 208 |
Entête formulaire9 | Entier long | 209 |
Pied de page formulaire | Entier long | 100 |
Rupture formulaire0 | Entier long | 300 |
Rupture formulaire1 | Entier long | 301 |
Rupture formulaire2 | Entier long | 302 |
Rupture formulaire3 | Entier long | 303 |
Rupture formulaire4 | Entier long | 304 |
Rupture formulaire5 | Entier long | 305 |
Rupture formulaire6 | Entier long | 306 |
Rupture formulaire7 | Entier long | 307 |
Rupture formulaire8 | Entier long | 308 |
Rupture formulaire9 | Entier long | 309 |
Syntaxe :
hauteur:=Imprimer ligne(maTable;monFormulaire;zoneDébut;zoneFin)
Dans ce cas, la commande imprimera la section comprise entre les paramètres zoneDébut et zoneFin. Les valeurs saisies doivent être exprimées en pixels.
formData
En option, vous pouvez transmettre des paramètres au formulaire à l'aide de l'objet formData . Toutes les propriétés de l'objet formData seront alors disponibles dans le contexte du formulaire via la commande Form. Par exemple, si vous passez un objet contenant {"version", "12"} dans formData, vous pourrez obtenir ou définir la valeur de la propriété "version" dans le formulaire en appelant :
L'objet formData est disponible dans l'événement . formData vous permet de passer en toute sécurité des paramètres à vos formulaires, quel que soit le contexte d'appel. En particulier, si le même formulaire est appelé à différents endroits dans le même processus, vous pourrez toujours accéder à ses valeurs spécifiques en appelant simplement Form.myProperty.
Note : Si vous ne passez pas le paramètre formData ou si vous passez un objet non défini, Imprimer ligne crée automatiquement un nouvel objet vide lié au formulaire, disponible via la commande Form.
Valeur de retour
La valeur retournée par Imprimer ligne indique la hauteur de la zone d’impression. Cette valeur sera automatiquement prise en compte par la commande Lire hauteur imprimee.
Les boîtes de dialogue standard d'impression n'apparaissent pas lorsque vous utilisez la commande Imprimer ligne. L'état généré ne tient pas compte des paramètres d'impression définis en mode Développement pour le formulaire. Il y a deux manières de définir les paramètres d'impression avant d'effectuer une série d'appels à Imprimer ligne :
Imprimer ligne construit chaque page à imprimer en mémoire. La page n'est imprimée que lorsqu'elle est entièrement remplie ou lorsque vous appelez SAUT DE PAGE. Pour vous assurer que la dernière page d'une impression exécutée par l'intermédiaire Imprimer ligne soit effectivement imprimée, vous devez conclure par un appel à la commande SAUT DE PAGE (hormis dans le contexte d'un OUVRIR TACHE IMPRESSION, cf. note). Sinon, la dernière page, si elle n'est pas pleine, reste en mémoire et n'est pas imprimée.
Attention : Si la commande est appelée dans le contexte d'une tâche d'impression ouverte avec OUVRIR TACHE IMPRESSION, vous ne devez PAS appeler SAUT DE PAGE pour la dernière page car celle-ci est automatiquement imprimée par la commande FERMER TACHE IMPRESSION. Si vous appelez SAUT DE PAGE dans ce cas, une page vide est imprimée.
Cette commande imprime les zones et objets externes (par exemple des zones 4D Write ou 4D View). La zone est réinitialisée à chaque exécution de la commande.
Attention : Imprimer ligne n'imprime pas les sous-formulaires. Si vous voulez imprimer uniquement un formulaire comportant de tels objets, utilisez plutôt IMPRIMER ENREGISTREMENT.
Imprimer ligne ne génère qu'un événement Sur impression corps pour la méthode formulaire.
4D Server : Cette commande peut être exécutée sur 4D Server dans le cadre d'une procédure stockée. Dans ce contexte :
L'exemple suivant effectue la même chose que ce que ferait la commande IMPRIMER SELECTION. Cependant, l'état utilise deux formulaires différents suivant le type d'enregistrement (chèque émis ou dépôt) :
CHERCHER([Opérations]) ` Permettre à l'utilisateur de sélectionner les enregistrements
Si(OK=1)
TRIER([Opérations]) ` Permettre à l'utilisateur de trier les enregistrements
Si(OK=1)
PARAMETRES IMPRESSION ` Afficher les boîtes de dialogue d'impression
Si(OK=1)
Boucle($i;1;Enregistrements trouves([Opérations]))
Si([Opérations]Type="Chèque") ` Si c'est un chèque…
Imprimer ligne([Opérations];"SortieChèque") ` Utiliser un formulaire de chèque
Sinon ` Sinon c'est un dépôt donc…
Imprimer ligne([Opérations];"SortieDépôt") ` Utiliser un formulaire de dépôt...
Fin de si
ENREGISTREMENT SUIVANT([Opérations])
Fin de boucle
SAUT DE PAGE `S'assurer que la dernière page est imprimée
Fin de si
Fin de si
Fin de si
Reportez-vous à l'exemple de la commande FIXER TAQUET IMPRESSION.
Ce formulaire est utilisé comme dialogue, puis imprimé avec des modifications :
La méthode formulaire :
If(Form event code=On Printing Detail)
Form.lastname:=Uppercase(Form.lastname)
Form.firstname:=Uppercase(SUBSTRING(Form.firstname;1;1))+Lowercase(SUBSTRING(Form.firstname;2))
Form.request:=Lowercase(Form.request)
End if
Le code qui appelle la boîte de dialogue ensuite imprime son corps :
$formData:=New object
$formData.lastname:="Smith"
$formData.firstname:="john"
$formData.request:="I need more COFFEE"
$win:=Open form window("Request_obj";Plain form window;Horizontally centered;Vertically centered)
DIALOG("Request_obj";$formData)
$h:=Print form("Request_var";$formData;Form detail)
FIXER OPTION IMPRESSION
NE PAS VALIDER
PARAMETRES IMPRESSION
SAUT DE PAGE
Produit : 4D
Thème : Impressions
Numéro :
5
Nom intl. : Print form
Modifié : 4D 2004.5
Modifié : 4D v16 R6
Modifié : 4D v20
4D - Langage ( 4D v20 R7)