Fonctionnements particuliers

Un article de Documentation 8sens.
Jump to: navigation, search

(Exemple sur le modèle de gestion "Etat simple stats cli.8print" : ce modèle est à glisser dans le dossier PCV de votre dossier des modèles. Exemple sur le modèle de comptabilité "Relance Client Formules.8print", ce modèle est à glisser dans le dossier ECR de votre dossier des modèles.)


Regroupement

(notion de Rupture ou de Changement), menu Modèle

  • Faire glisser les champs voulus dans la liste des regroupements.
  • Les ordonner comme souhaité (en les faisant glisser plus haut ou plus bas dans la liste).
  • Les écarts sont compris par rapport à la liste (l'ensemble des zones de type liste).
  • Pour chacun, indiquer les options de présentation voulues (changement de page, encadrement...).


Par défaut, le programme propose de trier les données selon les regroupements, mais on peut changer les critères de tri, leur ordre et leur sens.


Pour placer une zone ou un tracé "dans" un regroupement, il suffit de sélectionner cet objet et de choisir le regroupement voulu dans le menu local "Etat" en bas de la palette : "avant", signifie que l'objet sera placé dans l'espace avant le groupe ; "après", dans l'espace après.


Cocher "Total général de l'état" dans l'écran des regroupements permet de placer des totaux.


NB : les objets des regroupements "avant" et "après" sont tous contenus dans la hauteur des zones de type "ligne". Par contre, le total général n'est pas compté et risque de dépasser de la liste : laissez-lui un peu d'espace sous les zones de type "ligne".

Identifiants dans un texte

Une des questions les plus fréquemment posée : est-il possible d'imprimer le lieu ou je me trouve suivi de la date du jour de l'heure de l'impression (utile pour des impressions de statistiques) ?

Prenons l'exemple suivant : Paris, le [datj] à [time]. Les signes "[" et "]" sont les délimiteurs de début et de fin d'identifiant. Pour obtenir ces délimiteurs, vous devez maintenir les touches Alt + Maj + Parenthèses soit :

- Alt + Maj + Parenthèse gauche = [

- Alt + Maj + Parenthèse droite = ]

8sens vous propose des identifiants par défaut. Vous les trouverez selon vos besoins dans les boutons en bas de l'écran de texte.

Fenetre texte.png

Revenons à notre exemple de "Paris, le...". Nous allons nous servir du bouton "Formules" (identifiants à 4 lettres fixés par le programme).


Créer un champ de type texte, saisissez votre libellé : Paris, le ; puis cliquez sur le bouton "Formule" et sélectionnez "Date du jour", tapez un espace, puis à, suivi d'un espace et sélectionnez "Heure". Vous obtenez le résultat ci-dessous :

Paris.png

Cliquez sur "OK". À l'impression, le programme remplace simplement [datj] par la date, [time] par l'heure. Ce champ s'imprimera avec la date du jour et l'heure en cours au moment de l'impression. Nous avons imprimé à titre d'exemple : " Paris, le 06/06/2018 à 16h15".


Extrait des identifiants du bouton "Formules" :

  • "datj" donne la date d'impression ;
  • "time" donne l'heure d'impression ;
  • "nume" donne le numéro de document (= n° de page si un seul document par page) ;
(cette zone doit se trouver en type "Entête" et non pas en "Pied").
  • "numx" donne le numéro d'exemplaire d'une étiquette par rapport à la quantité imprimée de cette même étiquette.
  • "lins" donne le nombre d'enregistrements lus ;
  • "sele" donne la sélection effectuée ;

D'autres identifiants sont disponibles (cf. le détail du bouton "Formules").


Il est également possible d'intégrer des champs de pièces dans une zone de texte. 8sens vous propose par défaut et selon le type de modèle, différents identifiants dans le bouton "Champs". L'exemple typique est de vouloir imprimer sur une même ligne le code postal et la ville de l'adresse de facturation du client.

Vous saisirez : [PcvPAdpZip] [PcvPAdpCity] séparés par un espace. Cette zone imprimera le code postal suivi de la ville de l'adresse de facturation du client.


Extrait des identifiants du bouton "Champs" :

  • [PcvDate] : date pièce ;
  • [PcvCode] : n° de pièce de vente ;
  • [PcvLib] : libellé de la pièce ;
  • [CliCode] : code client ;
  • [MocTel] : téléphone ;
  • [MocMail] : Email ;
  • [PchModeNuf] : type de règlement ;

D'autres identifiants sont disponibles (cf. le détail du bouton "Champs").

Calculs : sous-totaux

Le champ SomDeb a pour valeur : ∑ [EcrDebit] / [CptCode]

Elle signifie que l'on veut le total de la colonne EcrDebit par CptCode, c'est-à-dire le total des débits pour ce compte.

EcrDebit et CptCode sont les noms de colonne visibles dans la liste des champs.

CptCode est un regroupement du modèle.

L'opérateur ∑ appelle la somme ; si la deuxième partie (/ [CptCode]) est absente, la somme sera totale pour l'impression.

Le champ est de type Montant : il représente en effet un montant.


De même, le champ SomCred a pour formule : ∑ [EcrCredit] / [CptCode] et est de type Montant.

Elle signifie que l'on veut le total de la colonne EcrCredit par CptCode, c'est-à-dire le total des crédits pour ce compte.


Attention : les champs de sous-totaux doivent être placés en regroupements "après" ou "total général" ; placés en ligne, ils afficheront le cumul progressif de leur valeur.


      • Nouveauté 8print v1.2.22: les formules peuvent contenir des expressions comme ∑ [EcrCredit] / [CptCode] et donc être utilisées dans d'autres formules (cf ci-dessous)


Formules

Le montant restant dû du modèle de relance a pour valeur : [Formul1].


Les formules sont gérées par un écran spécial, voir Formules au menu Modèle.

Elles ont pour but de calculer et de renvoyer une valeur, par la fonction "Print" (qui est obligatoire, sinon aucune valeur n'est renvoyée par la formule).

Le langage est du Basic, donc les termes sont en anglais.


Il existe deux types de formules :

  • les formules de visibilité (en jaune pâle dans la liste des formules).
  • les autres (en vert pâle dans la liste).


Une formule de visibilité doit renvoyer la valeur "VISIBLE".


Exemple dans un modèle de devis :

Nom de la formule: MtSup1000

Formule :

if [PcvMtHT] > 1000 then

Print "VISIBLE"

end


if [PcvMtHT] > 1000 then <-- "if" introduit la condition et "then" dit que si cette condition est vraie, les lignes suivantes vont être éxécutées jusqu'au premier "end"

Print "VISIBLE" <-- "Print" est obligatoire dans une formule, il doit renvoyer une chaine de caractères (ici VISIBLE entre des doubles cotes) end <-- "end" termine les instructions introduites par le then


Type: Caractères

Elle signifie que telle zone est visible si le montant net du devis est supérieur à 1000.

Cette formule se retrouve dans la palette de mise en forme de la maquette, dans le pop menu en bas du groupe "Objets": vous pouvez l'affecter à n'importe quel(s) objet(s) de la maquette (textes, tracés, images).


Formule de calcul

Exemple dans un modèle de devis :

Nom de la formule: QteSpec

Formule :

dim wd as double

wd = [PlvQteUV] * 2

if wd > 5 then

Print Format([PlvQteUS] * 2, "0")

else

Print Format([PlvQteUS] * 3, "0")

end


dim wd as double <-- "dim" permet de définir une variable, ici wd, "as" donne le type de cette variable, ici "double" qui signifie "montant"

wd = [PlvQteUV] * 2 <-- on affecte le double de la quantité en unité de vente à la variable wd

if wd > 5 then <-- test

Print Format([PlvQteUS] * 2, "0") <-- Print renvoie le double de la qté en u. de stock, avec un format de nombre qui affiche au moins un chiffre

else <-- ce qu'on fait si le test est faux

Print Format([PlvQteUS] * 3, "0") <-- Print renvoie le triple de la qté en u. de stock, avec un format de nombre qui affiche au moins un chiffre

end <-- fin des instructions suivant le test ci-dessus, qu'il soit vrai ou faux


Et pour revenir au modèle de relance :

La formule "Formul1" a pour formule :

Print Format( [SomDeb] - [SomCred], "-###,##0.00")

Elle sert à imprimer la différence des deux champs précédents SomDeb et SomCred, avec un format de montant qui affiche le signe du résultat, un séparateur de milliers si le montant le nécessite, et deux chiffres après la virgule (attention, les formats sont toujours en basic, c'est à dire que les séparateurs de milliers doivent être des virgules et le séparateur décimal un point, et l'affichage se fera correctement selon vos réglages utilisateur de 8sens).


Attention : le champ contenant la Formul1 doit être placé en Pied car il fait intervenir des champs qui contiennent des sous totaux.


      • A partir de 8print v1.2.22, on peut placer un ∑ dans une formule, par ex: ∑ [EcrDebit] / [CptCode]


Elle signifie que l'on veut le total de la colonne EcrDebit par CptCode, c'est-à-dire le total des débits pour ce compte.

EcrDebit et CptCode sont les noms de colonne visibles dans la liste des champs.

CptCode est un regroupement du modèle.

L'opérateur ∑ appelle la somme ; si la deuxième partie (/ [CptCode]) est absente, la somme sera totale pour l'impression.

La formule est de type Montant : elle représente en effet un montant.

On peut ainsi utiliser cette formule dans une autre formule, exemple de formules dans un modèle de pièce :

  • SomQtePiece : ∑[PlvQteUS]/[PlvCodePcv]
  • SomQteSup10 : if [SomQtePiece] >= 10 then print "visible"

Résultat : en affectant la formule de visibilité SomQteSup10 à une zone, celle-ci n'apparaîtra sur l'impression que si la quantité totale de la pièce est supérieure ou égale à 10.

NB : il n'est pas nécessaire de placer une formule dans une zone pour qu'elle soit calculée, il suffit qu'elle existe dans le modèle.


Affichage de dates


Les formules permettent d'afficher les dates avec tous les formats possibles.

Une date se présente comme ceci : "2014-06-26"


Dim wj, wm, wa As Integer

wj = Val(Right([PcvDate], 2))

wm = Val(Mid([PcvDate], 6, 2))

wa = Val(Left([PcvDate], 4))

Print Format(wa, "0000") + "-" + Format(wm, "00")


Apres avoir déclaré les 3 variables qui vont récupérer jour, mois et année, on découpe la date pour remplir ces variables: le jour est sur 2 caractères à droite, etc

Enfin le Print va donner comme résultat dans cet exemple : 2014-06


Affichage de nombres et montants

Voici des exemples en basic pour les formats d'affichage :

NB : le . (point) donne toujours le séparateur décimal ; la , (virgule) le séparateur de milliers.

#.## pour 1.784 donne 1.78 --> le # affiche le chiffre s'il est présent

#.0000 pour 1.3 donne 1.3000 --> le 0 affiche un zero même si pas de chiffre

0000 pour 5 donne 0005

#% pour 0.25 donne 25%

###,###.## pour 145678.5 donne 145,678.5

-#.## pour -3.7 donne -3.7 --> le - affiche un - si le nombre est négatif, rien si positif

+#.## pour 3.7 donne +3.7 --> le + affiche un - si le nombre est négatif, un + si positif

#.##;(#.##);\z\e\r\o pour 3.7 donne 3.7

#.##;(#.##);\z\e\r\o pour -3.7 donne (3.7)

#.##;(#.##);\z\e\r\o pour 0 donne zero


Pour mieux comprendre l'application des formules, vous trouverez quelques exemples sur la page suivante: Formules

Champs demandés à l'impression

Cet écran (au menu Modèle) permet de cocher les champs de type texte (texte pur, sans nom de colonne ou ∑) pour que leur valeur soit demandée au moment de l'impression

Lors de l'impression, un écran s'affiche demandant les nouvelles valeurs : ce sont celles-ci qui sont imprimées, mais non sauvegardées.



Retour à la Modèles et formules

Retour à la page Accueil

8sens Logiciels

Site web : http://www.8sens.com