Carte du site
 Remerciements
 Netiquette
 Bugs
 Tables
 Requêtes
 Formulaires
 États (rapports)
 Modules
 APIs
 Chaînes
 Date/Time
 Général
 Ressources
 Téléchargeables

 Termes d'usage

États: Bordure avec dimension variable

Author(s)
Thomas M. Brittell

---Soumis par Thomas M. Brittell---

Contrôle avec bordure de dimension variable.

    Télécharger une base de données  Access 97  d'exemple.

Fonctionnement.

blanks: StringBLine(StringCnt([Text],Chr(13))+(Int((Len([Text])/46)+0.5))+1)


    Il nous faut décider quel contrôle gouverne la hauteur de l'impression. La plupart du temps, il s'agit d'un champ de type mémo possédant quelque commentaire ou description.

    Dans la requête, on calcule le nombre de lignes requis. Ceci est accompli de par deux procédures et une règle, cette dernière étant qu'on utilise une police de caractères à espacement régulier fixe, tel que Courier ou Courier New.

    La première procédure est StringCnt (strIn, strFind). Cette procédure examine  ‘strIn’ et y dénombre le nombre de ’strFind’ qu'on y retrouve. Dans cet exemple, j'utilise ‘Chr(13)’, un retour de chariot. Maintenant, si toutes les lignes possédaient effectivement un retour de chariot, c'en serait terminé. Malheureusement, ce n'est pas le cas, un défilement automatique des mots étant la norme, vous risquez de trouver une vingtaine de lignes pour un retour de chariot. Pour pallier à cela, divisons la largeur totale que prend le texte par le nombre de caractères qu'on peut placer par ligne. Ici, dans l'exemple, j'utilise 46 et j'effectue un arrondi. J'ajoute une ligne comme marge de manoeuvre et rendre la lecture plus aisée de la dernière ligne. La seconde procédure, StringBLine (intCnt), génère une ligne blanche basée sur le décompte fourni. Cela fourni l'information requise pour forcer une boîte à avoir la largeur requise. Minimiser le nombre de boîtes en les disposant stratégiquement entre les endroits où elles sont requises (voir l'exemple). Prière de prendre note que le mémo ne possède pas de bordure, en soi, c'est la boîte qui, par derrière, fourni le cadre.

    Considérations. Certes, c'est approximatif, mais pour un grand nombre de lignes, c'est rapide. Vous pouvez raffiner les calculs. Dans un cas, j'ai inclus le compte de majuscules, d'espaces et de changement de lignes... mais cela prit une éternité à calculer. Maintenant, je construit de petits exemples que je teste pour vérifier si des besoins de raffinement sont requis ou non.

© 1998-2001, Dev Ashish, All rights reserved. Optimized for Microsoft Internet Explorer