version 2004.5 (Modifiée)
Imprimer ligne ({laTable; }formulaire{; zone1{; zone2}}){ Numérique }
Paramètre | Type | Description | |
laTable | Table | Table à imprimer, ou | |
Table par défaut si ce paramètre est omis | |||
formulaire | Alpha | Formulaire à imprimer | |
zone1 | Numérique | Marqueur d'impression, ou | |
Zone de départ (si zone2 est spécifié) | |||
zone2 | Numérique | Zone de fin (si zone1 est spécifié) | |
Résultat | Numérique | Hauteur de la section imprimée |
Description
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 sous une forme fixe.
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 :
Impression du corps d'un formulaire
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).
Impression de zone de formulaire
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 |
Entête formulaire | Entier long | 200 |
Entête formulaire1...10 | Entier long | 201...210 |
Corps formulaire | Entier long | 0 |
Rupture formulaire0...9 | Entier long | 300...309 |
Pied de page formulaire | Entier long | 100 |
Impression de section
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.
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 :
Vous appelez PARAMETRES IMPRESSION. Dans ce cas, vous laissez l'utilisateur définir ses paramètres dans les boîtes de dialogue d'impression.
Vous appelez UTILISER PARAMETRES IMPRESSION. Dans ce cas, les paramètres sont définis par programmation.
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. Sinon, la dernière page, si elle n'est pas pleine, reste en mémoire et n'est pas imprimée.
A compter de la version 2004.5 de 4D, 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 :
Veillez à ce qu'aucune boîte de dialogue n'apparaisse sur le poste serveur (sauf besoin spécifique).
En cas de problème sur l'imprimante (plus de papier, imprimante déconnectée, etc.), aucun message d'erreur n'est généré.
Exemples
(1) 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
(2) Reportez-vous à l'exemple de la commande FIXER TAQUET IMPRESSION.
Référence
NE PAS VALIDER, PARAMETRES IMPRESSION, SAUT DE PAGE, UTILISER PARAMETRES IMPRESSION.